Microsoft Entra ID を使用して Batch 管理ソリューションを認証する
Azure Batch 管理サービスを呼び出すアプリケーションは、Microsoft Authentication Library (Microsoft Entra ID) を使用して認証します。 Microsoft Entra ID は、Microsoft が提供する、マルチテナントに対応したクラウド ベースのディレクトリと ID の管理サービスです。 Microsoft Entra ID は、顧客、サービス管理者、組織のユーザーを認証するために、Azure 自体で使用されています。
Batch Management .NET ライブラリでは、Batch アカウント、アカウント キー、アプリケーション、およびアプリケーション パッケージを操作するための型を公開します。 Batch Management .NET ライブラリは Azure リソースプロバイダー クライアントであり、Azure Resource Manager と共に使用してこれらのリソースをプログラムで管理します。 Microsoft Entra ID は、Batch Management .NET ライブラリを含むすべての Azure リソース プロバイダー クライアントや、Azure Resource Manager を通じて行われた要求の認証に必要です。
この記事では、Batch Management .NET ライブラリを使用するアプリケーションでの認証に Microsoft Entra ID を使用する方法について説明します。 Microsoft Entra ID の統合認証を使用して、サブスクリプション管理者や共同管理者を認証する方法を説明します。 GitHub で入手できる AccountManagement サンプル プロジェクトを使いながら、Batch Management .NET ライブラリで Microsoft Entra ID を使用する手順を説明します。
Batch Management .NET ライブラリと AccountManagement サンプルの使用の詳細については、「.NET 用の Batch 管理クライアント ライブラリを使用した Batch アカウントとクォータの管理」を参照してください。
Microsoft Entra ID にアプリケーションを登録する
Microsoft Authentication Library (MSAL) は、アプリケーション内で使用するための Microsoft Entra ID へのプログラム インターフェイスを提供します。 アプリケーションから MSAL を呼び出すには、Microsoft Entra テナントにアプリケーションを登録する必要があります。 アプリケーションを登録する場合は、アプリケーションに関する情報 (Microsoft Entra テナント内でのアプリケーション名など) を Microsoft Entra ID で指定します。 これで、Microsoft Entra ID から、実行時にアプリケーションを Microsoft Entra ID と関連付ける際に使用するアプリケーション ID が提供されます。 アプリケーション ID の詳細については、「Microsoft Entra ID のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」を参照してください。
AccountManagement サンプル アプリケーションを登録するには、Microsoft Entra ID とアプリケーションの統合に関するページのアプリケーションの追加の手順に従います。 アプリケーションの種類として、 [ネイティブ クライアント アプリケーション] を指定します。 リダイレクト URI の業界標準 OAuth 2.0 に準拠した URI は urn:ietf:wg:oauth:2.0:oob
です。 ただし、実際のエンドポイントである必要はないので、Redirect URI には (http://myaccountmanagementsample
などの) 任意の URI を指定できます。
登録プロセスが完了すると、アプリケーションのアプリケーション ID とオブジェクト (サービス プリンシパル) ID が表示されます。
アプリケーションに Azure Resource Manager APIへ のアクセスを許可する
次に、Azure Resource Manager API へのアクセスをアプリケーションに委任する必要があります。 Resource Manager API の Microsoft Entra 識別子は、Windows Azure Service Management API です。
Azure Portal で次の手順に従います。
Azure Portal の左側のナビゲーション ウィンドウで、 [すべてのサービス] を選択し、 [アプリの登録] をクリックして、 [追加] をクリックします。
アプリケーション登録の一覧で、アプリケーションの名前を検索します。
[設定] ブレードを表示します。 [API アクセス] セクションで、 [必要なアクセス許可] を選択します。
[追加] をクリックして、新しい必要なアクセス許可を追加します。
ステップ 1 で、「Windows Azure Service Management API」と入力し、結果の一覧からその API を選択して [選択] ボタンをクリックします。
ステップ 2 で、 [Access Azure classic deployment model as organization users](組織のユーザーとして Azure クラシック デプロイ モデルにアクセスする) の横のチェック ボックスをオンにして、 [選択] ボタンをクリックします。
[完了] ボタンをクリックします。
[必要なアクセス許可] ブレードには、MSAL と Resource Manager API の両方に、アプリケーションへのアクセス許可が付与されたことが表示されています。 アプリを Microsoft Entra ID に最初に登録する際に、既定で MSAL にアクセス許可が付与されます。
Microsoft Entra エンドポイント
Microsoft Entra ID でバッチ管理ソリューションを認証するには、よく知られている 2 つのエンドポイントが必要です。
統合認証などのように、特定のテナントが提供されていない場合は、インターフェイスを収集する汎用的な資格情報が Microsoft Entra 共通のエンドポイントから次のように提供されます。
https://login.microsoftonline.com/common
Azure Resource Manager エンドポイント は、Batch 管理サービスへの要求を認証するするためのトークンを取得するために次のように使用します。
https://management.core.windows.net/
これらのエンドポイントの定数が AccountManagement のサンプル アプリケーションで定義されます。 これらの定数は変更しないようにします。
// Azure Active Directory "common" endpoint.
private const string AuthorityUri = "https://login.microsoftonline.com/common";
// Azure Resource Manager endpoint
private const string ResourceUri = "https://management.core.windows.net/";
アプリケーション ID の参照
クライアント アプリケーションは実行時にアプリケーション ID (クライアント ID とも呼ばれる) を使用して Microsoft Entra ID にアクセスします。 Azure Portal にアプリケーションを登録したら、そのアプリケーション用に Microsoft Entra ID から提供されたアプリケーション ID を使用するように、コードを更新します。 AccountManagement サンプル アプリケーションで、アプリケーション ID を Azure Portal から適切な定数にコピーします。
// Specify the unique identifier (the "Client ID") for your application. This is required so that your
// native client application (i.e. this sample) can access the Microsoft Graph API. For information
// about registering an application in Azure Active Directory, please see "Register an application with the Microsoft identity platform" here:
// https://video2.skills-academy.com/azure/active-directory/develop/quickstart-register-app
private const string ClientId = "<application-id>";
また、登録プロセス時に指定したリダイレクト URI をコピーします。 コードに指定するリダイレクト URI は、アプリケーションを登録したときに指定したリダイレクト URI と一致している必要があります。
// The URI to which Azure AD will redirect in response to an OAuth 2.0 request. This value is
// specified by you when you register an application with AAD (see ClientId comment). It does not
// need to be a real endpoint, but must be a valid URI (e.g. https://accountmgmtsampleapp).
private const string RedirectUri = "http://myaccountmanagementsample";
Microsoft Entra 認証トークンを取得する
AccountManagement サンプルを Microsoft Entra テナントに登録し、サンプル ソース コードの値を更新すると、Microsoft Entra ID を使用してサンプルを認証できるようになります。 サンプルを実行すると、MSAL によって認証トークンの取得が試行されます。 この段階で、Microsoft 資格情報の入力が求められます。
// Obtain an access token using the "common" AAD resource. This allows the application
// to query AAD for information that lies outside the application's tenant (such as for
// querying subscription information in your Azure account).
AuthenticationContext authContext = new AuthenticationContext(AuthorityUri);
AuthenticationResult authResult = authContext.AcquireToken(ResourceUri,
ClientId,
new Uri(RedirectUri),
PromptBehavior.Auto);
資格情報を入力すると、サンプル アプリケーションは認証された要求を Batch 管理サービスに発行できるようになります。
次のステップ
- AccountManagement サンプル アプリケーションの実行に関する詳細については、「.NET 用の Batch 管理クライアント ライブラリを使用した Batch アカウントとクォータの管理」を参照してください。
- Microsoft Entra ID の詳細については、「Microsoft Entra ドキュメント」を参照してください。
- MSAL の使用方法の詳細な例については、Azure のコード サンプル ライブラリを参照してください。
- Microsoft Entra ID を使用して Batch 管理アプリケーションを認証するには、「Batch 管理ソリューションの認証に Active Directory を使用する」を参照してください。