分散化識別子のドメインの所有権を確認する

この記事では、分散識別子 (DID) に使用しているドメイン名の所有権を確認するために必要な手順を確認します。

前提条件

DID へのドメインの所有権を確認するには、次の作業が必要です。

ドメインの所有権を確認し、did-configuration.json ファイルを配布する

DID の所有権を確認するドメインは、概要セクションで定義されています。 ドメインは、コントロールの下のドメインである必要があり、形式は https://www.example.com/ である必要があります。

  1. Azure portal から[確認済み ID] ページに移動します。

  2. [セットアップ]>[ドメイン所有権の確認] の順に選択し、ドメインの [確認] を選択します。

  3. did-configuration.json ファイルをコピーまたはダウンロードします。

    既知の構成のダウンロードを示すスクリーンショット。

  4. 指定した場所で did-configuration.json ファイルをホストします。 たとえば、ドメイン https://www.example.com を指定した場合、この https://www.example.com/.well-known/did-configuration.json でファイルをホストする必要があります。 URL には、.well-known path の名前以外のパスを指定することはできません。

  5. did-configuration.json URL で .well-known/did-configuration.json が一般公開されている場合、[確認状態の更新] を選択して確認します。

    検証済みの既知の構成を示すスクリーンショット。

  6. 検証のために Microsoft Authenticator による発行または提示をテストします。 Authenticator の [安全でないアプリについて警告する] の設定がオンになっていることを確認します。 この設定は、既定では [オン] です。

検証が行われていることを確認する方法

[検証状態の更新] を選択すると、ポータルによって did-configuration.json がパブリック インターネット上で到達可能であることが確認されます。 Authenticator は HTTP リダイレクトを受け入れません。 また、HTTPS の不使用、不適切な SSL 証明書、パブリックでない URL などのエラーを回避するため、ブラウザーでその URL を要求できることを確認することも検討する必要があります。 ブラウザーから匿名で、または curl などのツールを介して did-configuration.json ファイルを要求できず、警告やエラーが発生しない場合、ポータルは [検証状態の更新] ステップを完了できません。

Note

検証状態の更新で問題が発生した場合は、Ubuntu OS を使用しているマシンで curl -Iv https://yourdomain.com/.well-known/did-configuration.json を実行してトラブルシューティングを行うことができます。 Ubuntu での Linux 用 Windows サブシステムも機能します。 curl が失敗した場合、検証状態の更新は機能しません。

DID のドメイン所有権を確認する必要がある理由

DID は、既存のシステムに固定されていない識別子として始まります。 DID は、ユーザーまたは組織が所有して制御することができるため便利です。 組織とやり取りしているエンティティで DID の所属 "先" が認識されていない場合、DID は役に立ちません。

DID をドメインにリンクすることで、最初の信頼問題が解決されます。これにより、任意のエンティティで、DID とドメインの間の関係を暗号で検証できるようになります。

確認済み ID でリンクを作成する際には、well-known DID 構成の仕様に従います。 検証可能な資格情報サービスは、DID とドメインをリンクします。 このサービスには、DID に指定したドメイン情報が含まれ、以下の well-known 構成ファイルを生成します。

  1. 確認済み ID により、組織のセットアップ時に指定されたドメイン情報を使用して、DID ドキュメント内にサービス エンドポイントを書き込まれます。 DID を操作するすべてのパーティは、DID により宣言されるドメインが関連付けられることを確認できます。

    "service": [
      {
        "id": "#linkeddomains",
        "type": "LinkedDomains",
        "serviceEndpoint": {
          "origins": [
            "https://verifiedid.contoso.com/"
          ]
        }
      }
    ]
    
  2. 確認済み ID の検証可能な資格情報サービスによって、ドメインでホストされる準拠している well-known 構成リソースが生成されます。 構成ファイルには、ドメインの原点がある DID で署名された 資格情報の種類 DomainLinkageCredential の自己発行された検証可能な資格情報が含まれています。 ルート ドメインの URL に保存されている構成ファイルの例を次に示します。

    {
      "@context": "https://identity.foundation/.well-known/contexts/did-configuration-v0.0.jsonld",
      "linked_dids": [
        "jwt..."
      ]
    }
    

ウォレットでのユーザー エクスペリエンス

ユーザーは、発行フローを通過するか、検証可能な資格情報を提示するときに、組織とその DID についてある程度知っておく必要があります。 Authenticator により、DID と、その DID ドキュメント内のドメインとの関係が検証され、結果に応じて 2 つの異なるエクスペリエンスがユーザーに提示されます。

確認済みドメイン

Authenticator で [検証済み] アイコンが表示される前に、次のいくつかのポイントに該当する必要があります。

  • SIOP (Self-Issued Open ID) 要求に署名する DID に、リンク ドメインのサービス エンドポイントが必要である。
  • ルート ドメインでリダイレクトを使用せず、HTTPS を使用する。
  • DID ドキュメントに一覧表示されているドメインに、解決可能な well-known のリソースがある。
  • well-known リソースの検証可能な資格情報は、Authenticator によってフローの開始に使用された SIOP の署名に使用されたものと同じ DID で署名される。

上記のポイントのすべてに該当する場合は、Authenticator に検証済みのページが表示され、検証されたドメインが含まれます。

新しいアクセス許可の要求を示すスクリーンショット。

未検証のドメイン

上記のポイントのいずれにも該当しない場合、Authenticator では、ドメインが未検証であることを示す警告がページ全体に表示されます。 警告には、ユーザーが危険な可能性があるトランザクションの途中にあり、慎重に進める必要があることが表示されます。 次の理由により、このルートが選ばれた可能性があります。

  • DID がドメインに固定されていない。
  • 構成が正しく設定されていない。
  • ユーザーが操作している DID が悪意のあるものである可能性があり、実際にリンクされているドメインを所有していることを証明できない。

DID をユーザーが認識できるドメインにリンクさせることは、非常に重要です。

資格情報を追加する画面上の未確認のドメイン警告を示すスクリーンショット。

DID のリンク ドメインを更新するにはどうすればよいですか?

Web 信頼システムでは、リンクされたドメインの更新はサポートされていません。 オプトアウトして再オンボードする必要があります。

リンク ドメインが開発者にとって簡単に

Note

DID 登録を成功させるには、DID ドキュメントを公開する必要があります。

開発者がドメインをリンク ドメインに使用する最も簡単な方法は、Azure Storage の静的 Web サイト機能を使用することです。 ホスト名の一部としてストレージ アカウント名が含まれる以外は、ドメイン名を制御できません。

リンク ドメインに使用するドメインをすばやく設定するには:

  1. ストレージ アカウントの作成。 作成時に、StorageV2 (汎用 v2 アカウント) とローカル冗長ストレージ (LRS) を選択します。
  2. そのストレージ アカウントに移動し、左側のメニューで [静的 Web サイト] を選択し、静的 Web サイトを有効にします。 [静的 Web サイト] メニュー項目が表示されない場合は、V2 ストレージ アカウントを作成していません。
  3. 保存後に表示されるプライマリ エンドポイント名をコピーします。 この値はドメイン名です。 これは、https://<your-storageaccountname>.z6.web.core.windows.net/ のように表示されます。

did-configuration.json ファイルをアップロードする場合:

  1. そのストレージ アカウントに移動し、一番左のメニューで [コンテナー] を選択します。 次に、[$web] という名前のコンテナーを選択します。
  2. [アップロード] を選択し、フォルダー アイコンを選択してファイルを見つけます。
  3. アップロードする前に、[詳細設定] セクションを開き、[フォルダーへのアップロード] テキストボックスで [well-known] を指定します。
  4. ファイルをアップロードします。

これで、https://<your-storageaccountname>.z6.web.core.windows.net/.well-known/did-configuration.json のような URL でファイルが一般公開されました。

次のステップ