CognitoAuth認証オブジェクトをAWS-SDK認証情報に変換する方法

ポンペイマグナス

私はcognitoユーザープールを持っており、次のコードでアプリに正常にログインできます。

const authData = {
        ClientId : '2222222222222', // Your client id here
        AppWebDomain : '1111111111.auth.us-east-1.amazoncognito.com',
        TokenScopesArray : ['openid'],
        RedirectUriSignIn : 'https://app.domain.com',
        RedirectUriSignOut : 'https://app.domain.com'
    };
    const CognitoAuth = AmazonCognitoIdentity.CognitoAuth;

    const auth = new CognitoAuth(authData);



    auth.userhandler = {
        /**onSuccess: <TODO: your onSuccess callback here>,
         onFailure: <TODO: your onFailure callback here>*/

        onSuccess: function(result: any) {
            console.log("COGNITO SUCCESS!");
            console.log(result);
        },
        onFailure: function(err: any) {
            console.log("COGNITO FAIL!");
            console.log(err);
        }
    };

    auth.getSession();

    const curUrl = window.location.href;
    auth.parseCognitoWebResponse(curUrl);

アタッチされたロールで正しいポリシーを想定して、アイテムをS3バケットに一覧表示できるように、所有しているaws-sdkのある種の認証情報にパーレイしたい認証オブジェクトができました。

このようなものですが、これは機能しないことに注意してください。

AWS.config.credentials = auth.toCredentials();  //<== hoping for magic
const s3 = new AWS.S3();
s3.listObjectsV2(listObjectsV2Params, function(err: any, data: any) {
        if (err) console.log(err, err.stack); // an error occurred
        else     console.log(data.Contents[0]);           // successful response
    });

これは可能ですか?もしそうなら、どうすればいいですか?

UDPATE

受け入れられた答えはうまくいき、大きな助けとなり、私が遭遇した問題の線に沿って明確にするためにいくつかの追加を追加しました。

const creds = new AWS.CognitoIdentityCredentials({
                IdentityPoolId: 'us-east-1:b111111-1111-1111-1111-1111111',  // <-- This is in your Federated Identity if you have that set up, you have to "edit" the identity pool to get it, logging into cognito its a different screen.
                Logins: {
                    "cognito-idp.us-east-1.amazonaws.com/us-east-1_BBBB1BBBBV2B": result.idToken.jwtToken  // <- this login [POOL ID] is not the pool ARN, you need it in this format.
                }
            });

このリンクは私を助けました。

アシャン

これは可能であり、以下の手順があります。

  • AWSリソースがAWSUserpoolユーザーにアクセスできるようにするには、UserPoolをプロバイダーとして登録するAWS IdentityPoolを設定する必要もあります。
  • 認証されたユーザーに割り当てられたIAMロールは、S3にアクセスできる必要があります。
  • AWS SDK for Identity Poolを使用すると、UserPools JWTトークンを一時的なAccessKeyおよびSecretKeyと交換して、AWS SDK forS3を使用できます。

        AWS.config.credentials = new AWS.CognitoIdentityCredentials({
          IdentityPoolId: IDENTITY_POOL_ID,
          Logins: {
            [USER_POOL_TOKEN]: result.idToken.jwtToken
          }
        });
    
        AWS.config.credentials.refresh((error) => {
          if (error) {
            console.error(error);
          } else {
            console.log('Successfully logged!');
          }
        });
    
  • AWS.config.credentials.refreshコールバック内では、S3を呼び出すことができます。これは、メソッドが内部的に一時的な認証情報の取得を処理するためです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS認証情報CSVをオブジェクトに変換する

分類Dev

GoogleAPIと認証情報ページからオブジェクトにアクセスする方法

分類Dev

AndroidプロジェクトでAWS認証情報を処理する適切な方法は何ですか?

分類Dev

認証トークンにサインオンする情報

分類Dev

Google AppEngineに外部認証情報を安全に保存する方法

分類Dev

AWS認証情報をDockerに渡す

分類Dev

Firebase認証の認証情報を保存する方法は?

分類Dev

DialogflowAPIをgcloud認証情報で認証する方法

分類Dev

AWS が 1 回のリクエストで認証情報を使用する方法

分類Dev

AWS Cloudwatchログクライアントに認証情報を指定する

分類Dev

Firebase Admin SDK for PHPは、Firebaseの認証情報を非表示にする効果的な方法ですか?

分類Dev

一時的な認証情報を使用して Postman から AWS API Gateway にリクエストする方法

分類Dev

AWS Lambda関数で外部認証情報を(適切に)使用する方法は?

分類Dev

AWS認証情報を自動的に更新してオンプレミスサーバーからS3オブジェクトにアクセスすることは可能ですか?

分類Dev

AWS JSSDKでECS認証情報を使用する方法

分類Dev

PythonでAWS認証情報を設定する方法

分類Dev

非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

分類Dev

基本情報を後で使用するために保存するオブジェクトに変換する方法

分類Dev

Google APIプロジェクトの認証情報の所有権を他の人に渡す方法は?

分類Dev

AWS ECRget-loginに新しい認証情報を使用する

分類Dev

リクエストせずにAWS認証情報が存在するかどうかを確認します

分類Dev

Nodeプロジェクトに複数のBigQueryJSON認証情報ファイルを追加する

分類Dev

Intellij IDEA 14でリモートリポジトリの認証情報(認証)を変更する

分類Dev

CLIとSDKの両方で機能するようにAWS認証情報を設定します

分類Dev

変数の認証情報を使用してAWS SDKを実行するにはどうすればよいですか?

分類Dev

フロントエンドにAWS認証情報を保存する

分類Dev

AWS認証情報を取得してDockerのS3にアクセスする方法

分類Dev

Google Firebase admin SDKの認証情報が正しいかどうかを確認する方法

分類Dev

Rubyクライアントスクリプトに認証資格情報を安全に保存する方法は?

Related 関連記事

  1. 1

    AWS認証情報CSVをオブジェクトに変換する

  2. 2

    GoogleAPIと認証情報ページからオブジェクトにアクセスする方法

  3. 3

    AndroidプロジェクトでAWS認証情報を処理する適切な方法は何ですか?

  4. 4

    認証トークンにサインオンする情報

  5. 5

    Google AppEngineに外部認証情報を安全に保存する方法

  6. 6

    AWS認証情報をDockerに渡す

  7. 7

    Firebase認証の認証情報を保存する方法は?

  8. 8

    DialogflowAPIをgcloud認証情報で認証する方法

  9. 9

    AWS が 1 回のリクエストで認証情報を使用する方法

  10. 10

    AWS Cloudwatchログクライアントに認証情報を指定する

  11. 11

    Firebase Admin SDK for PHPは、Firebaseの認証情報を非表示にする効果的な方法ですか?

  12. 12

    一時的な認証情報を使用して Postman から AWS API Gateway にリクエストする方法

  13. 13

    AWS Lambda関数で外部認証情報を(適切に)使用する方法は?

  14. 14

    AWS認証情報を自動的に更新してオンプレミスサーバーからS3オブジェクトにアクセスすることは可能ですか?

  15. 15

    AWS JSSDKでECS認証情報を使用する方法

  16. 16

    PythonでAWS認証情報を設定する方法

  17. 17

    非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

  18. 18

    基本情報を後で使用するために保存するオブジェクトに変換する方法

  19. 19

    Google APIプロジェクトの認証情報の所有権を他の人に渡す方法は?

  20. 20

    AWS ECRget-loginに新しい認証情報を使用する

  21. 21

    リクエストせずにAWS認証情報が存在するかどうかを確認します

  22. 22

    Nodeプロジェクトに複数のBigQueryJSON認証情報ファイルを追加する

  23. 23

    Intellij IDEA 14でリモートリポジトリの認証情報(認証)を変更する

  24. 24

    CLIとSDKの両方で機能するようにAWS認証情報を設定します

  25. 25

    変数の認証情報を使用してAWS SDKを実行するにはどうすればよいですか?

  26. 26

    フロントエンドにAWS認証情報を保存する

  27. 27

    AWS認証情報を取得してDockerのS3にアクセスする方法

  28. 28

    Google Firebase admin SDKの認証情報が正しいかどうかを確認する方法

  29. 29

    Rubyクライアントスクリプトに認証資格情報を安全に保存する方法は?

ホットタグ

アーカイブ