Microsoft Entra Verified IDを試してみた:概要とハンズオン
イントロダクション
このブログでは、Microsoft Entra Verified IDの概要を整理しつつ、実際に試してみたハンズオンについても備忘録として記載します。
※2025/1現在の情報を基に作成しています。
まずここで登場する言葉について整理します。
- 分散型アイデンティティ(DID)
ユーザーが自身のIDを管理できる仕組み。中央集権的なID管理のデメリットを克服する考え方。 - Verifiable Credentials(VC)
DID基盤上に構築されたデジタル証明書。
Microsoft Entra Verified IDとは?
従来のID管理の課題
現在でもID管理は中央集権的な仕組みが主流となっています。例えば、企業の従業員IDは、特定のIdPや組織が全ての情報を管理しており、ユーザー自身がデータを自由にコントロールできない仕組みになっています。このような従来のID管理では以下の課題があります。
- ユーザーが自身のデータを完全にコントロールできない
ユーザーの個人情報は管理者によって管理されるため、誰と、どの情報を共有するかをユーザー自身でコントロールできません。 - 第三者による個人情報漏洩リスク
管理者が情報を一元的に管理しているため、外部からの攻撃や内部不正で個人情報漏洩や、改ざんのリスクがあります。
DIDによってどのように解決できるか
分散型ID(DID)では中央集権的な管理者に依存せずに、ユーザーが自身のIDを管理でき、必要な情報だけを選んで共有できる仕組みです。そのため、プライバシー侵害のリスクが低減します。また、中央で一括管理されないため、データ漏洩のリスクが軽減されます。加えて、暗号化技術が活用されているため、不正アクセスや改ざんにも強い仕組みです。
Microsoft Entra Verified IDは、DIDを基盤されたMicrosoftのソリューションです。
Verified IDの仕組み
Verified IDの基本的な仕組みは、発行者、保有者、検証者という3つの役割で成り立っています。基本的な流れは以下です。
- 発行者(例: 学校、企業、政府機関)がVCを発行。
例: 大学が卒業証明書をデジタル形式で発行。 - 保有者(例: 学生、従業員)が発行されたVCを自身のスマホなどに安全に保存し、必要に応じて提示。
例: 学生が企業に卒業証明書を提示。 - 検証者(例: 雇用主、サービスプロバイダー)が提示されたVCを確認し、信頼性を検証。
例: 企業が提示された卒業証明書を検証し、信頼できるものであることを確認。
この仕組みにより、ユーザーは必要最小限の情報だけを安全に共有し、中央集権的な管理に依存せずに信頼性を確保することが可能です。
詳細は以下Microsoft Learnをご確認ください。
Verified IDを導入するメリット
Verified IDを導入することで、以下のようなメリットがあります。
- セキュリティの強化
VCが暗号化されているため、不正なアクセスや改ざんのリスクも低減することができます。 - プライバシーの保護
Verified IDを使用することで、必要最小限の情報だけを共有することができます。例えば、社外でA社の社員であることを証明するために、メールアドレスや電話番号を共有する必要はありません。 - 運用効率の向上
証明書の発行や管理、検証がデジタル化されるため、手動での確認プロセスが削減されます。例えば、就職活動における卒業証明書の手動での発行手続きが不要になります。
ハンズオン
Verified IDのデプロイ方法には「クイックセットアップ」と、コンポーネントを手動で構成していく「高度なのセットアップ」がありますが、ここでは高度なセットアップで構築していきます。
また、各手順の詳細は記載せず、Microsoft Learnの内容をベースにポイントのみ記載していきます。
概要
大まかな流れは以下です。
- Verified IDを構成するリソースの作成
- AppServiceの作成
― DIDをDNSにバインドすることで、DIDが特定のドメイン名に紐付けられていることを証明します。これにより、検証者がドメインを通じてDIDの信頼性を確認することが可能になります。
― ここでは簡易的にAppServiceのデフォルト名(例: example.azurewebsites.net)を使用します。 - DIDのドメインの確認
- 資格情報の発行
- 資格情報の検証
詳細
- 以下の手順を参考に、KeyVaultのデプロイや、Verified IDの構成、サービスプリンシパルを発行していきます。
この時、KeyVaultのアクセスポリシーの「署名」にチェックをいれます。
- AppServiceを作ります。
-
AzureポータルからAppServiceをデプロイします。
-
ローカルPCに「.well-known」フォルダを作ります。
-
「.well-known」フォルダ内に「web.config」ファイルを作成し、AppServiceにデプロイします。
-
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment=".well-known" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
- DIDのドメインの確認
DIDをDNSにバインドします。
- 資格情報の発行
資格情報を発行します。
ローカルコンピューターが使えない場合、仮想マシン上でサンプルアプリケーションを実行します。
- 資格情報の検証
最後に、資格情報を検証します
以上で構成完了です。
Discussion