Microsoft Entra Verified ID のドメインの検証を Azure Storage の静的 Web ホストで試してみる
概要
Microsoft Entra Verified ID は、分散型 ID (DID) を利用した認証サービスです。詳細はこちらの公式サイトの情報を参照ください。
このサービスを利用するには、まず Decentralized ID を登録する必要があります。Decentralized ID は、自身のドメイン名に紐づけることができますが、その場合はドメインの所有権を検証する必要があります。検証の方法は特定の URL で JSON ファイルを返すことで行えます。もちろん Azure Web Apps などを使用しても構いませんが、今回は手軽に試したかったため、Azure Storage の静的 Web サイトでホストする方法を試みました。
Microsoft Entra Verified ID の初期設定
まず、Microsoft Entra Verified ID の初期設定を行います。公式の手順に従えば、特段難しいことはありません。Verified ID を発行するアプリはアプリケーション登録が必要ですが、この初期設定段階では作成しなくても問題ありません。
詳細はこちらの手順も参照してください。
上記の手順に従い、事前に Key Vault を作成しなくても、Microsoft Entar Verified ID のセットアップ ページのキー コンテナを設定する箇所からも新規作成が可能です。なお、新規作成時は、アクセス構成をコンテナーのアクセス ポリシーにしないと私の環境ではうまく構成できませんでした。(あとからアクセス構成を変更してもうまく構成できませんでした。)
この初期設定の際には、信頼される側のドメインを自分が所有する任意のドメインで設定します。なお、Azure Storage の静的 Web サイトの機能では、ルートドメインをカスタムドメインとして利用できないことに注意してください。例えば、公式の手順の例に出ている通りhttps://did.yourdomain.com のように、"did" を使用したサブドメインで設定するのが良いでしょう。
ドメインの所有権の検証
次に、Verified ID でドメインの所有権を検証する必要があります。これは Verified ID の初期設定で指定した特定の URL パスにJSON ファイルをホストすることで行います。今回の記事では、この手法を Azure Storage の静的 Web サイトの機能を用いて実現します。
手順に沿ってやれば何も難しいことはありませんが、以下のように実施します。
- Azure Portal にログインし、Azure Storage アカウントを作成します。
- Azure Storage アカウントの「静的 Web サイト」ブレードに移動し、「有効化」を選択します。この際に「インデックス ドキュメント名」と「エラー ドキュメント パス」は特に入力する必要はありません。
- カスタム ドメインを利用するために、ストレージ エンドポイントの FQDN (例:mystorageaccount.z5.web.core.windows.net)を取得します。
- 自身のドメインの権威 DNS サーバーで4.で取得した FQDN への CNAME レコードを作成します。(以下は Azure DNS を使った場合の例です。)
- Azure Storage の設定でカスタム ドメインを登録します。
こちらで Verified ID で指定したドメインで静的コンテンツ(JSON)をホストできる環境ができました。
https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-static-website-how-to?tabs=azure-portal
https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-custom-domain-name?tabs=azure-portal
最後に、Storage Explore 等を使用して /.well-Known ディレクトリを作り、Verified ID で指定される分散 ID の登録用とドメインの所有権の確認用の2つの JSON ファイルをアップロードします。
その後、Microsoft Entra Verified ID のページに戻り、「ドメインの所有権を検証する」ボタンをクリックして検証完了です。
Verified ID の発行
実際に Microsoft Authenticator などのウォレットアプリに Verified ID を発行するには、アプリの作成が必要です。この手順については後日別の記事で説明したいと考えています。
最後に
既にウェブサービスがホストされているドメインがある場合は、そのドメインを使用することも可能です。ただし、Verified ID の試験環境をセットアップする場合、Azure Storage を使用するのが最も手軽な方法と思います。なお、この設定はHTTPSに対応していないため、検証環境での利用に限定した方が良いでしょう。また、サービス側の変更により、HTTPS の検証が厳格に行われる可能性があるため、上述の構成でも問題が発生する可能性があることに注意してください。
Discussion