[日本語Alexa] Cognitoによるアカウントリンクを独自ドメインで設定してみました
1 はじめに
CX事業本部の平内(SIN)です。
以前、Cognitoによるアカウントリンクを試したのですが、こちらは、ドメイン設定を「Amazon Cognito ドメイン」とすると、ログイン時にリダイレクトされるURLは、下記のようになります。
https://{指定した名前}.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize
今回は、このドメインを独自のドメインにする要領を試してみました。
例として設定したドメインは、myauth.alexa-dev.tokyoです。
2 ACM
Cognitoで独自のドメインを設定するには、ACMで管理されている証明書が必要です。予め、証明書のリクエストを行い、発行済みの状態にしておきます。
3 Cognito
(1) アプリクライアント/アプリクライアントの設定
アプリクライアントの作成と、アプリクライアントの設定については、通常通りです。
- アプリクライアント
- アプリクライアントの設定
(2) ドメイン
ドメインの設定では、自分が使用するドメインの方に、ドメイン名(myauth.alexa-dev.tokyo)を入力します。 また、AWS マネージド証明書では、先に検証済みとなっている証明書を選択します。
(3) エリアスターゲットの解決
ドメインの設定で、「変更の保存」をクリックすると下記のようにエリアスターゲットのドメイン名が、表示されます。
このエリアスターゲットは、設定するドメイン(myauth.alexa-dev.tokyo)のアドレス解決になりますので、ドメインにCNAMEレコードを追加します。
$ dig myauth.alexa-dev.tokyo CNAME ;; ANSWER SECTION: myauth.alexa-dev.tokyo. 300 IN CNAME d1wygxifn0rkxt.cloudfront.net.
画面に表示されているように、CNAME設定を完了しても、直ちに利用可能にはなりません。約15分かかりますと記載されていますが、実際は、もっとかかるかも知れませんので、気長に待つ必要があります。
下記のように、ドメインのステータスがACTIVEになったら利用可能です。
なお、ドメインリソースの管理がRoute53の場合は、CNAMEよりも、Aレコード(エイリアス)での追加がお勧めとなっています。
4 Alexa
Alexaスキルのアカウントリンクの設定では、認証画面のURLとアクセストークンのURLのドメインが変わります。
- https://myauth.alexa-dev.tokyo/oauth2/authorize
- https://myauth.alexa-dev.tokyo/oauth2/token
スキルを有効にしてみると、指定したドメインでログインを要求されるのが確認できます。
5 最後に
今回は、Cognitoによるアカウントで、独自のドメインを利用する方法を確認してみました。
アカウントリンクを使用するスキルのセキュリティ要件が、下記に記載されています。
2.3. アカウントリンクを使用するスキル
正直なところ、よく理解できていないのですが、上の要件をクリアするためには、このような作業が必要になるのかも知れません。
6 参考にさせて頂いたリンク
Amazon CloudFront ディストリビューションに CNAME エイリアスを設定するときに CNAMEAlreadyExists エラーが表示された場合の解決方法を教えてください。
Cognitoに独自ドメインが設定できた