Microsoft Entra Verified ID の検証済み従業員の資格情報をサンプル アプリで発行する
はじめに
Microsoft Entra Verified ID は発行できる資格情報にいくつかの種類があります。今回は検証済み従業員の資格情報を、サンプル アプリを使って検証した際に公開されている手順でわかりにくい点があったので、その点を補足できるように記事を書きたいと思います。
検証済みの従業員の資格情報の構成
Verified ID の資格情報の追加のページから、検証済み従業員の設定を追加します。
ロゴのサイズは特に制限は公開されておらず、適当なサイズの jpg と png を指定できそうでした。余談ですが、検証で使えるような丁度よいロゴ ファイルを持っていなかったので、Bing の Image creator に適当なロゴ作ってもらいました。(ただ、Bing Image Creator は文字を正確に書けないので、ロゴとかの作成には向かなそうと感じました。)
ロゴの保存場所は、前回に構成した Azure Storage の静的 Web サイトにおいています。
サンプルアプリのデプロイ
Microsoft Entra Verified ID をつかった Verified Credentials(VCs) の発行、検証用のサンプル アプリ(.NET)は以下で公開されています。(他に、NodeJS, Python, Java でサンプル アプリが公開されております。)
こちらのサンプル アプリの実装では Microsoft Entra Verified ID サービスから Callback で状態の変更を通知するようになっており、外部からの Callback を受け取れるように構成する必要があります。公式の以下のドキュメントでは ngrok を利用した手順が公開されております。
私は ngrok ではなく Azure Web Apps 上にデプロイをしました。
自身の Entra 環境でデプロイするに当たっていくつかの設定変更が必要になります。
Verified ID の初期設定時に、アプリの登録を行っていなかった場合は、まずは Microsoft Entra に今回のサンプル アプリのためのアプリの登録を行います。登録したアプリには Microsoft Entra Verified ID サービスに対して VCs の発行要求と、検証要求を行うため、それらの API の権限を付与しておく必要があります。以下の Verifiable Credentials Service Request の "VerifiableCredentials.Create.All" を付与することで発行要求と、検証要求両方の権限を付与します。
アプリの資格情報を構成します。今回はテスト環境用なので実装が手軽なクライアント シークレットを発行する形としました。
上記の手順で作成したアプリに関連する、テナント ID、アプリ IDや、シークレットなどの情報と、Microsoft Entra Verified ID で取得できる、マニフェスト URL や "IssuerAuthority" と "VerifierAuthority" の情報を appsetting.json に設定します。
{
"AppSettings": {
"Endpoint": "https://verifiedid.did.msidentity.com/v1.0/",
"VCServiceScope": "3db474b9-6a0c-4840-96ac-1fceb342124f/.default",
"Instance": "https://login.microsoftonline.com/{0}",
"TenantId": "登録したアプリを登録したディレクトリ(テナント) ID" ,
"ClientId": "登録したアプリのアプリケーション(クライアント) ID",
"ClientSecret": "登録したアプリのクライアント シークレット ID",
"IssuerAuthority": "did:web:did.labnm01.com",
"VerifierAuthority": "did:web:did.labnm01.com",
"CredentialManifest": "https://verifiedid.did.msidentity.com/v1.0/tenants/342c77cf-5ff4-4a78-a2d2-67a1f3201514/verifiableCredentials/contracts/36eb1ad9-a961-d2de-009c-30a151b67d36/manifest"
}
}
"IssuerAuthority" と "VerifierAuthority" の値は以下のページの分散化識別子(DID)から取得します。
また、"CredentialManifest" の値は以下のマニュフェスト URL から取得します。
公式のドキュメントでは明確に記載がなくわかりにくいのですが、もう一箇所修正が必要な箇所があります。
それが、資格情報として検証済み従業員を使う場合は、発行される VC が"Verified Employee"で発行されるため、以下の設定用の JSON ファイルの "type" の値も"Verified Employee"に修正する必要があります。
"requestedCredentials": [
{
"type": "VerifiedEmployee",
"acceptedIssuers": [ "did:web: copied from your VC portal in this sample the code copies it from APPSETTINGS.JSON" ]
}
]
appsetting.json、presentation_request_config.json ファイルの修正ができましたら、Azure Web Apps にサンプル アプリを発行して、準備は完了です。
動作確認
サンプル アプリを実行すると、以下の画面が表示されます。
VC の発行時は "GET CREDENTIAL"、 VC の検証時は "VERIFY CREDENTIAL" をすることで、Verified ID の一連の動作を体験することができます。Microsoft Authenticator の利用方法などは、公式のドキュメントを参考にしてください。
まとめ
サンプル アプリを利用して検証済み従業員の資格情報の発行や、検証を行いました。検証済み従業員の資格情報を利用することで、Microsoft Entra に存在するユーザーに手軽に Verified Credentials(VCs)を発行することができるようになっています。まだ、用途の少ない VCs ですが、今後の活用に期待したいと思います。
Discussion