次の方法で共有


Microsoft Entra ID を使用した Azure confidential ledger 認証

Azure confidential ledger には、Microsoft Entra ID サービスに対して認証することでアクセスすることをお勧めします。そうすることで、Azure confidential ledger がアクセス元のプリンシパルのディレクトリ資格情報を取得することが決してないことが保証されます。

これを行うには、クライアントは次の 2 つの手順のプロセスを実行します。

  1. 最初の手順で、クライアントは次のことを行います。
    1. Microsoft Entra サービスを使用した通信。
    2. Microsoft Entra サービスへの認証。
    3. Azure confidential ledger 専用に発行されるアクセス トークンを要求します。
  2. 2 番目の手順で、クライアントは Azure confidential ledger に要求を発行し、最初の手順で取得されたアクセス トークンを Azure confidential ledger への ID の証明として指定します。

Azure confidential ledger は、その後、Microsoft Entra ID がアクセス トークンを発行したセキュリティ プリンシパルに代わって要求を実行します。 すべての認可のチェックがこの ID を使用して実行されます。

ほとんどの場合は、いずれかの Azure confidential ledger SDK を使用して、このサービスにプログラムでアクセスすることをお勧めします。それにより、上のフローの実装という面倒な作業の多く (さらにそれ以上) が省略されます。 たとえば、Python クライアント ライブラリ.NET クライアント ライブラリを参照してください。

主な認証シナリオを次に示します。

  • サインイン ユーザーを認証するクライアント アプリケーション: このシナリオでは、ユーザーに資格情報 (ユーザー名とパスワードなど) の入力を求める Microsoft Entra プロンプトが対話型 (クライアント) アプリケーションによってトリガーされます。 ユーザー認証を参照してください。

  • "ヘッドレス" アプリケーション: このシナリオでは、資格情報を指定するユーザーの存在しないアプリケーションが実行されます。 代わりに、このアプリケーションが、構成されている一部の資格情報を使用して Microsoft Entra ID に対して "それ自体" として認証します。 「アプリケーション認証」を参照してください。

  • 代理認証。 このシナリオ ("Web サービス" または "Web アプリ" シナリオとも呼ばれます) では、アプリケーションが別のアプリケーションから Microsoft Entra アクセス トークンを取得し、それを Azure confidential ledger で使用できる別の Microsoft Entra アクセス トークンに "変換" します。 つまり、このアプリケーションは、資格情報を指定したユーザーまたはアプリケーションと Azure confidential ledger サービスの間の仲介役として機能します。 「代理認証」を参照してください。

Microsoft Entra パラメーター

Azure confidential ledger 用の Microsoft Entra リソース

Microsoft Entra ID からアクセス トークンを取得する場合、クライアントは、そのトークンをどの Microsoft Entra リソースに発行する必要があるかを示す必要があります。 Azure confidential ledger エンドポイントの Microsoft Entra リソースは、そのエンドポイントの URI (ポート情報とパスを除く) です。

たとえば、"myACL" という名前の Azure confidential ledger がある場合、URI は次のようになります。

https://myACL.confidential-ledger.azure.com

Microsoft Entra テナント ID

Microsoft Entra ID はマルチテナント サービスであり、すべての組織が Microsoft Entra ID にディレクトリと呼ばれるオブジェクトを作成できます。 ディレクトリ オブジェクトには、ユーザー アカウント、アプリケーション、グループなどの、セキュリティ関連のオブジェクトが保持されます。 Microsoft Entra ID では多くの場合、ディレクトリをテナントと呼びます。 Microsoft Entra テナントは、GUID (テナント ID) で識別されます。 多くの場合、Microsoft Entra テナントは、組織のドメイン名でも識別できます。

たとえば、"Contoso" という名前の組織はテナント ID が aaaabbbb-0000-cccc-1111-dddd2222eeee で、ドメイン名が contoso.com である場合があります。

Microsoft Entra 機関のエンドポイント

Microsoft Entra ID には、認証用のエンドポイントが多数あります。

  • 認証されるプリンシパルをホストしているテナントがわかっている場合 (つまり、ユーザーまたはアプリケーションがどの Microsoft Entra ディレクトリに存在しているかがわかっている場合)、Microsoft Entra エンドポイントは https://login.microsoftonline.com/{tenantId} です。 ここで、{tenantId} は Microsoft Entra ID 内の組織のテナント ID か、またはそのドメイン名 (contoso.com など) のどちらかです。
  • 認証されるプリンシパルをホストしているテナントがわからない場合は、上の {tenantId} を値 common に置き換えることによって "一般的な" エンドポイントを使用できます。

認証に使用される Microsoft Entra サービス エンドポイントは、Microsoft Entra 機関 URL またはシンプルに Microsoft Entra 機関とも呼ばれます。

Note

Microsoft Entra サービス エンドポイントは、国内クラウドでは変更されます。 国内クラウドにデプロイされた Azure confidential ledger サービスを使用する場合は、対応する国内クラウドの Microsoft Entra サービス エンドポイントを設定してください。 エンドポイントを変更するには、必要なURIに環境変数AadAuthorityUriを設定します。

ユーザー認証

ユーザー認証を使用して Azure confidential ledger にアクセスする最も簡単な方法は、Azure confidential ledger SDK を使用し、Azure confidential ledger 接続文字列の Federated Authentication プロパティを true に設定することです。 初めて SDK を使用してサービスに要求を送信するとき、ユーザーには、Microsoft Entra 資格情報を入力するためのサインイン フォームが表示されます。 認証に成功すると、その要求が Azure confidential ledger に送信されます。

Azure confidential ledger SDK を使用しないアプリケーションは、Microsoft Entra サービス セキュリティ プロトコル クライアントを実装する代わりに、引き続き Microsoft Authentication Library (MSAL) を使用できます。 開発者向け Microsoft ID プラットフォームを利用することで、Web アプリでユーザーのサインインを処理したり、API を呼び出したりする方法を参照してください。

アプリケーションがフロントエンドとして機能することを目的としており、Azure confidential ledger クラスターに対してユーザーを認証する場合は、そのアプリケーションに Azure confidential ledger に対する委任されたアクセス許可を付与する必要があります。

アプリケーション認証

Azure confidential ledger を使用するアプリケーションは、Microsoft Entra ID から取得したトークンを使用して認証します。 アプリケーションの所有者が先にそれを Microsoft Entra ID に登録する必要があります。 また、登録によって、すべてのテナントでそのアプリを示す 2 つ目のアプリケーション オブジェクトも作成されます。

Azure confidential ledger アプリケーションを Microsoft Entra ID に登録する詳細な手順については、次の記事を参照してください。

登録の最後に、アプリケーションの所有者は次の値を取得します。

  • アプリケーション ID (Microsoft Entra クライアント ID や appID とも呼ばれています)
  • 認証キー (共有シークレットとも呼ばれます)

アプリケーションは、トークンを取得するために、この 2 つの値を Microsoft Entra ID に示す必要があります。

Azure confidential ledger SDK では、Azure Identity クライアント ライブラリを使用します。これにより、複数の環境で同じコードを使用した Azure confidential ledger に対するシームレスな認証が可能になります。

.NET Python Java JavaScript
Azure Identity SDK .NET Azure Identity SDK Python Azure Identity SDK Java Azure Identity SDK JavaScript

代理認証

このシナリオでは、あるアプリケーションが自身で管理している任意のリソースについて Microsoft Entra アクセス トークンを受信しており、そのトークンを使用して Azure confidential ledger リソースの新しい Microsoft Entra アクセス トークンを取得します。これにより、アプリケーションは、元の Microsoft Entra アクセス トークンによって示されるプリンシパルに代わって confidential ledger にアクセスできます。

このフローは、OAuth2 トークン交換フローと呼ばれます。 これには一般に、Microsoft Entra ID での複数の構成手順が必要であり、場合によっては (Microsoft Entra テナントの構成によっては) Microsoft Entra テナントの管理者からの特別な同意が必要になることがあります。

次のステップ