2016-11-11 22 views
1

モバイルアプリケーションは認証されていないCognitoフローを使用してデバイスを認証します。私たちはベアラトークンを期待する私たちのバックエンドに対してOauth認証を使用します。このベアラトークンを取得する代わりに、クライアントにclientid/secretを保存する代わりに、そのコグニートユーザプールのapiゲートウェイを呼び出してからベアラトークンを返すoauthサービスプロバイダにプロキシすることを計画しています。クライアントはこのベアラトークンを使用してさらにバックエンドコールを行います。認証されていないコグニートのAPIゲートウェイとOauth認証

私たちはhttpプロキシをテストしました。これはapi gateway consoleからうまく機能しています。私たちが実行している問題は、承認者の問題です。私たちの認証メカニズムは、Cognitoのユーザープールです。したがって、認可者をテストするために、コンソールはIDトークンを要求します。アイデンティティトークンが何であるかはわかりません。認証されていないCognitoユーザーのためにiOS SDKで取得したcognitoI、openTokenでテストしようとしましたが、いずれも動作しません。ログからのメッセージは「許可されていないリクエスト:」

誰かが解決策を提案できますか?

答えて

0

連合アイデンティティから生成されたトークンのように見えていたようです。あなたのアプリにuser poolsを設定しましたか?ユーザーとサインインすると、IDトークン、アクセストークン、更新トークンの3つのトークンが取得されます。そのidトークンはあなたが必要とするものです。これは、これを取得するためにサインインする必要があるため、認証されていないことは必然的にややこしいことを意味します。

+0

ありがとうJeff。サインインするとどういう意味ですか?認証されていないため、次のような内容になります。 credentialsProvider = AWSCognitoCredentialsProvider(regionType:、identityPoolId:identityPoolId)を許可します。 credentialsProviderはidentityIdを持ちますが、これはcognitoIdだけです。それにも、鍵/秘密とセッショントークンを持つ資格証明オブジェクトがあります。 また、yesのユーザープールがアプリケーション用に設定されています – PGA

+0

基本的には、サインインなしで認証メカニズムとしてユーザープールを使用することはできません。認証されていないアクセスとユーザープールは相互に排他的です。ユーザプールを使用するには、ユーザプールにサインインする必要があります。 –

+0

意味が分かります、今のところ認証されていないので、それをどうやって調べる必要がありますか – PGA

関連する問題