0

Androidアプリでは、CognitoIdTokenとCognitoAccessTokenを返すCognitoで正常に認証できます。Android、Cognito:サインインできますが、認証済みのAWSコールは作成できません

しかし、実際に認証された呼び出しにLambdaやS3を使用する方法を理解できません。 CognitoIdentityProviderとCognitoCredentialsProviderの間には隙間があるようです(私はそうではありません)。

アイコン、またはCognitoとの認証済みコール/ロールを使用するサンプルへのポインタにも感謝します。

[編集]ボーナスに関する質問:なぜAWSCognito *とAmazonCognito *があるのか​​説明できますか?

答えて

1

awsコンソールでフェデレーションIDプールを確認してください。アイデンティティ・ブラウザで、(ログから)認証されているidentityIdを探します。

ここで重要なことがあります。アイデンティティIDがログインを表示しない場合、決して認証されていません。 *私がログインと言うと、各アイデンティティにログイン数があり、アイデンティティIDをクリックすると、認証が発生したidentityProviderNameが表示されます。

認証されたログインがある場合は、これは簡単なテストです。あなたがしなければ、あなたはそうではありません。今AWSの文書のどれもが...まあ、知っている人はいません。

あなたが認証されていれば、SDKはトークンを保存します。あなたはそれを心配する必要はありません。あなたはサービス設定でawsで作業を始めることができます。

(回答はIOS SDKに基づいていますが、これらの事項は同じです - The diagrams in here may help you、これはIOS SDKのノートですが、Androidで試したことはありません)。

+0

ありがとうございます。 AWS *が認証していると思うかどうかを確認すると便利です。 –

+0

参照しているダイアグラムへのリンクは404. – chapeljuice

+0

@chapeljuiceありがとうございます。それは、私が何らかのクリーンアップをしたときに失われた欠けた枝を指していました。ごめんなさい。今修正されました。 – Bruce0

0

私は最終的に私は資格情報プロバイダにトークンを設定するための呼び出しを行方不明になったと判断:

Constants.COGNITO_USER_POOL_LOGIN_STRINGは「cognito-idp.us-west-2.amazonaws.com/」のようなものです
final CognitoCachingCredentialsProvider credentialsProvider = getCredentialsProvider(applicationContext); 

    Map<String, String> logins = new HashMap<String, String>(); 
    logins.put(Constants.COGNITO_USER_POOL_LOGIN_STRING, cognitoUserSession.getIdToken().getJWTToken()); 
    credentialsProvider.setLogins(logins); 

+ MY_COGNITO_USER_POOL_ID。これを実行した後で、TransferUtilityオブジェクトは認証でダウンロードできました。 TransferUtilityはこれまでに次のように取得されました(編集済み):

CognitoCredentialsProvider cp = . . . 
AmazonS3Client s3Client = new AmazonS3Client(cp); 
TransferUtility s3transferUtility = new TransferUtility(s3Client); 
関連する問題