CognitoID 풀을 사용하여 게스트 사용자(인증되지 않은 사용자)에게 임시 자격 증명 발급

4695 단어 cognitoAWS

CognitoID 풀을 사용하여 게스트 사용자(인증되지 않은 사용자)에게 임시 자격 증명 발급



전제


  • 인증이든 상관 없지만 사용자에게 일시적으로 자격 증명을 발급하고 싶을 때 사용합니다.
  • 클라이언트는 javascript (aws-sdk)입니다.

  • 준비



    CognitoID 풀 만들기


  • Cognito의 "페더레이티드 정체성"페이지 열기
  • "새 ID 풀 만들기"버튼을 누릅니다
  • ↓에 체크해(그 이외는 적당하고 OK(인증하지 않기 때문에)), "풀의 작성"
  • Cognito가 인증했을 때와 인증하지 않았을 때에 돌려주는 롤의 설정 화면에 간다. 특히 변경없이 "허가"한다.
    ※여기서 설정하는 롤의 자격 증명이 반환된다
  • 이제 CognitoID 풀이 작성됩니다.

  • aws-sdk 준비



  • CDN 페이지에서 최신 버전의 링크 가져 오기
  • 아래 내용의 HTML 준비

  • hoge.html
    <html>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/aws-sdk/2.388.0/aws-sdk.js"></script>
    </html>
    

    실제로 자격 증명을 발행해 봅시다.



    크롬 콘솔을 사용하여 Cognito


  • 만든 HTML을 엽니다.
  • 개발자 콘솔을 열고 다음을 입력하십시오.
    ※ 이때 Network를 열어두면 Cognito에 요청을 날리고 있는 것을 알 수 있다

  • console에 직접 입력
    AWS.config.region = 'ap-northeast-1'; //重要
    
    a = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'ap-northeast-XXXXXXXXXXXXXXXXXXXXXXX' //※
    });
    // ※Cognitoの"フェデレーティッドアイデンティティ"のページ
    // > サイドメニューの「ダッシュボード」
    // > 右上の方にある「IDプールの編集」
    // > "ID プールの ID" に表示されているIDを設定する。(ARNではない)
    
    a.get(); 
    // ↑、エラーハンドリングする場合、
    // 参考ページ(APIGatewayのIAM認証付きのAPIをJavascriptから叩く)に記載されているjs参照
    
    dir(a); //中身確認用
    

    ※ 참고로 요청 내역은
    ※リクエスト先は全て、https://cognito-identity.ap-northeast-1.amazonaws.com/
    
    1発目:よくわからん。リクエストにOPTIONSを使っている
    2発目:identityPoolIdをパラメータにして、identityIdを取得する
    3発目:identityIdをパラメータにして、クレデンシャル情報を取得する
    

    라는 느낌

    결과 확인



    a의 내용을 보면 자격증을 취득할 수 있는 것을 알 수 있다.
    ※아래에 값이 들어가 있다(아래의 정보 이외에도 여러가지 들어가 있다)
    a.accessKeyId
    a.sessionToken
    a.secretAccessKey
    

    그 후, Cognito의 "페더레이티드 아이덴티티"의 페이지를 열고, 작성한 CognitoID 풀의 페이지를 열면,

    인증되지 않은 액세스가 카운트 업되어 있는지 확인할 수 있습니다.
    ※ID 브라우저를 열면, 아이덴티티 ID를 알 수 있다

    비고



    임시 자격 증명을 사용한 요청 참고



    임시 자격 증명을 사용한 요청 참고

    참고



  • APIGateway의 IAM 인증이있는 API를 Javascript에서 두드리는
    "Cognito UnauthUser Credential에서 API를 두드리는 자바 스크립트 코드 작성 (완료)"javascript
  • AWS.CognitoIdentityCredentials의 aws-sdk 공식

  • 관련


  • CognitoID 풀을 사용한 자체 인증, 인증 후 STS를 사용한 임시 자격 증명 반환까지
  • 좋은 웹페이지 즐겨찾기