[日本語Alexa] Cognitoによるアカウントリンクを独自ドメインで設定してみました

2019.09.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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に独自ドメインが設定できた