これまでの投稿で、Cognitoに、GoogleやLINE、Yahooのアカウントを追加しましたが、Amazonアカウントも追加しておきます。
備忘録として残しておきます。
これまでの投稿
AWS CognitoにGoogleとYahooとLINEアカウントを連携させる
Cognitoのドメイン名をメモっておく
とりあえず、Cognitoのユーザプールを開き
AWS管理コンソール:Cognito
https://ap-northeast-1.console.aws.amazon.com/cognito/users/?region=ap-northeast-1
連携させたいUserPoolを選択し、左側のナビゲーションからアプリの統合のドメイン名を選択します。
そこで表示される、ドメインのプレフィックスのところのURLを覚えておきます。
こんな感じ
https://XXXX.auth.ap-northeast-1.amazoncognito.com
Login with Amazonコンソールからセキュリティプロファイルを作成
以下のサイトを開きます。
Login with Amazonコンソール
https://developer.amazon.com/loginwithamazon/console/site/lwa/overview.html
「セキュリティプロファイルを新規作成」ボタンを押下します。
適当に入力します。さすがにプライバシー規約同意書URLは存在するURLじゃないといけないようです。
次に、トップに戻って、右側の歯車ボタンにマウスを当て、「ウェブ設定」を開きます。
編集ボタンを押して、許可された返信URLのところに、先ほどCognitoの画面からメモったドメイン名を入力します。以下のように入力します。
https://XXXX.auth.ap-northeast-1.amazoncognito.com/oauth2/idpresponse
ついでに「シークレットを表示」ボタンを押下します。
表示された、クライアントIDとクライアントシークレットを覚えておきます。
CognitoにLogin with Amazonの設定をする
Cognitoの画面で、フェデレーションのIDプロバイダを選択します。
そして、Login with Amazonを選択します。
ここで、Amazon アプリIDのところに、先ほど覚えたクライアントID、アプリシークレットのところに先ほど覚えたクライアントシークレットを入力します。
承認スコープには、profileを入力します。
保存します。
次に、左側のナビゲーションから、フェデレーションの属性マッピングを選択します。Amazonを選択します。
emailを選択状態にし、ユーザープール属性をEmailにします。
ちなみに、この属性マッピングの設定は、ユーザプールの必須の属性としてemailを必須としていた場合に必要な設定です。
最後に、Login with Amazonでログインしようとしているアプリクライアントの有効なIDプロバイダとしてLoginWithAmazonを選択しておきます。
これで、設定は完了です。
Amazonアカウントでログインしてみる
これで、さきほどのCognitoのアプリクライアントでログインすると、選択肢にAmazonが増えています。
選択すると、Amazonのページに飛んでログインを促されます。
ログインが完了すると、選択したresponse_typeによって、認可コードかアクセストークンが返ってきて認証完了となります。
Cognitoのユーザを見ていると、接頭辞でLoginWithAmazon_と付いたユーザが増えているのがわかります。
以上