Movatterモバイル変換


[0]ホーム

URL:


メイン コンテンツにスキップ

このブラウザーはサポートされなくなりました。

Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

Microsoft Edge をダウンロードするInternet Explorer と Microsoft Edge の詳細情報
目次フォーカス モードの終了

Azure でホストされる Java アプリケーションを認証する

  • 2024-11-05
フィードバック

この記事の内容

この記事では、Azure でホストされているアプリケーションの Microsoft Entra トークン認証が、Azure Identity ライブラリによってどのようにサポートされているかについて説明します。 このサポートは、この記事で説明する一連のTokenCredential 実装によって可能になります。

この記事に含まれるサブジェクトは次のとおりです。

Azure でホストされるアプリケーションに関連する認証の問題のトラブルシューティングについては、「Azure でホストされるアプリケーション認証のトラブルシューティング」を参照してください。

DefaultAzureCredential

DefaultAzureCredential は、デプロイ時に認証によく使用される資格情報と、開発環境での認証に使用される資格情報を組み合わせたものです。 詳細については、「DefaultAzureCredential の概要」を参照してください

DefaultAzureCredential を構成する

DefaultAzureCredential は、DefaultAzureCredentialBuilder のセッターまたは環境変数による一連の構成をサポートしています。

  • AZURE_CLIENT_IDで定義されているように環境変数AZURE_CLIENT_SECRETAZURE_TENANT_ID、および を設定することで、それらの値によって指定されたサービス プリンシパルとして認証するようにDefaultAzureCredential が構成されます。
  • ビルダーまたは環境変数.managedIdentityClientId(String)の設定AZURE_CLIENT_IDは、ユーザー割り当てマネージド ID として認証するように構成DefaultAzureCredentialしますが、空のままにすると、システム割り当てマネージド ID として認証するように構成されます。
  • ビルダーまたは環境変数.tenantId(String)の設定AZURE_TENANT_IDは、共有トークン キャッシュまたは IntelliJ IDEA のいずれかの特定のテナントに対して認証するように構成DefaultAzureCredentialします。
  • 環境変数AZURE_USERNAME を設定すると、DefaultAzureCredential は、共有トークンキャッシュから対応するキャッシュされたトークンを選択するように構成されます。

DefaultAzureCredential を使用して認証する

次の例では、次を使用してSecretClient azure-security-keyvault-secrets クライアント ライブラリから認証する方法をDefaultAzureCredential示します。

// Azure SDK client builders accept the credential as a parameter.SecretClient client = new SecretClientBuilder()  .vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")  .credential(new DefaultAzureCredentialBuilder().build())  .buildClient();

DefaultAzureCredential を使用してユーザー割り当てマネージド ID を認証する

次の例は、ユーザー割り当てマネージド ID が構成された Azure リソースにデプロイされたSecretClient を使用するazure-security-keyvault-secrets クライアントからDefaultAzureCredential を認証することを示しています。

/** * DefaultAzureCredential uses the user-assigned managed identity with the specified client ID. */DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()  .managedIdentityClientId("<CLIENT_ID>")  .build();// Azure SDK client builders accept the credential as a parameter.SecretClient client = new SecretClientBuilder()  .vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")  .credential(credential)  .buildClient();

ManagedIdentityCredential の

ManagedIdentityCredential は、Azure リソースのマネージド ID (システム割り当てまたはユーザー割り当て) を認証します。 そのため、マネージド ID をIDENTITY/MSIサポートする Azure リソース内でアプリケーションが実行されている場合、IMDS この資格情報はアプリケーションを認証し、シークレットレス認証エクスペリエンスを提供します。

詳細については、「Azure リソース用マネージド ID とは」を参照してください。

マネージド ID を使用して Azure で認証する

次の例では、システム割り当てマネージド ID またはユーザー割り当てマネージド ID が有効になっている Azure 上の仮想マシン、App Service、Functions アプリ、Cloud Shell、Service Fabric、Arc、または AKS 環境を使用してSecretClient、azure-security-keyvault-secrets クライアント ライブラリから認証ManagedIdentityCredentialする方法を示します。

/** * Authenticate with a user-assigned managed identity. */ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()  .clientId("<CLIENT_ID>") // required only for user-assigned  .build();// Azure SDK client builders accept the credential as a parameter.SecretClient client = new SecretClientBuilder()  .vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")  .credential(credential)  .buildClient();

環境変数

環境変数を使用してDefaultAzureCredentialEnvironmentCredential を構成できます。 認証の種類ごとに、特定の変数の値が必要です。

シークレットを持つサービス プリンシパル

変数名価値
AZURE_CLIENT_IDMicrosoft Entra アプリケーションの ID。
AZURE_TENANT_IDアプリケーションの Microsoft Entra テナントの ID。
AZURE_CLIENT_SECRETアプリケーションのクライアント シークレットの 1 つ。

証明書を使用したサービス プリンシパル

変数名価値
AZURE_CLIENT_IDMicrosoft Entra アプリケーションの ID。
AZURE_TENANT_IDアプリケーションの Microsoft Entra テナントの ID。
AZURE_CLIENT_CERTIFICATE_PATH(パスワード保護のない) 秘密キーを含む、PEM でエンコードされた証明書ファイルへのパス。
AZURE_CLIENT_CERTIFICATE_PASSWORD(省略可能)証明書ファイルのパスワード (存在する場合)。
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN(省略可能)サブジェクト名/発行者ベースの認証をサポートするために、x5c ヘッダーで証明書チェーンを送信します。

ユーザー名とパスワード

変数名価値
AZURE_CLIENT_IDMicrosoft Entra アプリケーションの ID。
AZURE_TENANT_IDアプリケーションの Microsoft Entra テナントの ID。
AZURE_USERNAMEユーザー名 (通常は電子メール アドレス)。
AZURE_PASSWORD指定されたユーザー名に関連するパスワード。

構成はこの順序で試行されます。 たとえば、クライアント シークレットと証明書の値が両方存在する場合、クライアント シークレットが使用されます。

次のステップ

この記事では、Azure でホストされるアプリケーションの認証について説明しました。 この形式の認証は、Azure SDK for Java で可能な認証方法のうちの 1 つです。 次の記事では、他の方法について説明します。

Azure でホストされるアプリケーション認証に関連する問題に直面した場合は、「Azure がホストするアプリケーション認証のトラブルシューティング」を参照してください。

認証について習得した後、SDK によって提供されるログ機能の詳細について「Azure SDK for Java でログを構成する」を参照してください。


フィードバック

このページはお役に立ちましたか?

Yesいいえ

この記事の内容

このページはお役に立ちましたか?

Yesいいえ