Auth0で自己管理証明書を使ったカスタムドメインを設定する(AWSのサービスを利用)

2020.06.25

Auth0では、テナントのドメインを、選択した1つのカスタムドメインにマッピングできます。 Auth0のドメインをリダイレクトしたり、Auth0のドメインを使用したりする代わりにカスタムドメインを使用することで、 ユーザーに一貫した体験を提供することができます。

カスタムドメインの設定には2種類あります。

  • Auth0管理の証明書を使用してカスタムドメインを構成
  • 自己管理証明書でカスタムドメインを構成

本記事では自己管理証明書でカスタムドメインを構成する方法をやっていこうと思います。

自己管理証明書でカスタムドメインを構成するには以下のことが必要になります。

  • 認証局から証明書を購入または提供し、更新を自分で管理
  • 証明書をインストールするリバースプロキシ(プロキシからのトラフィックが受け入れられる)
  • カスタムドメインに複数のDNSレコードを設定

証明書は AWS Certificate Manager, リバースプロキシは Amazon CloudFront, DNSは Amazon Route 53 を使用していきます。

やってみる

ドメインの追加

Auth0のダッシュボードから Tenant Settings に移動し、 Custom Domainsをクリックします。

Domainに設定したいカスタムドメイン名を入力、Certificate TypeSelf-Managed Certificatesを選択し、 Add Domainボタンをクリックします。

ドメイン所有権の確認

追加を行うと、カスタムドメインの設定画面に検証のためのTXTレコードの情報が表示されます。

表示されている内容をドメインのDNSレコードに設定していきます。

Amazon Route 53のコンソールに移動し、以下の設定をします。

  • タイプ: TXT
  • 値: Auth0のカスタムドメイン設定画面に表示されているValueの中身

作成ボタンを押してレコード作成は完了です。

Auth0のダッシュボードにもどり、カスタムドメイン設定画面でVerifyボタンを押します。 Auth0からの確認が完了すると以下の画面が表示されます。

Origin Domain Name, Origin Custom Headersの情報は後の設定に使用するのでコピーして保存してください。

使えるようになると上記のような表示になります。

リバースプロキシの作成

Amazon CloudFrontを使って作成していきます。

CloudFrontの管理コンソールからwebのDistributionを作成します。

Origin Settingsで

  • Origin Domain Name: Auth0ダッシュボードから取得したOrigin Domain Nameの値を指定
  • Origin Protocol Policy: HTTPS Only
  • Origin Custom Headers: Header Namecname-api-keyValueAuth0でドメイン名の所有権を確認した直後に与えられたCNAME APIキーの値を指定

Default Cache Behavior Settingsで、

  • Viewer Protocol Policy: Redirect HTTP to HTTPS
  • Allowed HTTP Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
  • Cache Based on Selected Request Headers: Whitelist
  • Whitelist Headers: User-Agentを入力し、カスタムホワイトリストヘッダーを追加するには、[カスタムの追加] >>をクリックします。AuthorizationOriginRefererer、およびAcceptヘッダーについても同じことを行います
  • Forward Cookies: All
  • Query String Forwarding and Caching: Forward all, cache based on all

Distribution Settingsで、

  • Alternate Domain Names(CNAMEs): カスタムドメイン名を設定(Auth0ダッシュボードで構成したものと同じ)
  • SSL Certificate: 米国東部(バージニア北部)リージョンのACMまたはIAMに保存されているカスタムドメインのSSL証明書に設定

設定後は、ページの一番下までスクロールして、Create Distributionをクリックします。 作成されるまでは少し時間がかかります。

CNAMEレコードの追加

カスタムドメインのDNSに新しいCNAMEレコードを追加します。 前の手順で作成したTXTレコードは削除してしまって大丈夫です。

  • Type: CNAME
  • 値: DistributionのDomain Name

確認

全ての設定が終えたら、Auth0のダッシュボードにいき、カスタムドメインが機能しているか確認します。

TESTボタンを押して確認できます。成功すると上記画像のようにYour domain is configured correctly.というメッセージが表示されます。 エラーメッセージが表示された場合はDNS,Cloudfrontの設定を見直します。

カスタムドメインを使用するAuth0機能にある機能でカスタムドメインを使用できますので確認していきましょう。

ユニバーサルログインを使用していると、デフォルトではAuth0のドメインにアクセスすることになりますが、 カスタムドメインを設定しておけばブランド面での統一にもなるので使用を検討していただけると嬉しいです。