共用方式為


使用 Microsoft Entra 識別碼驗證 Batch 管理解決方案

呼叫 Azure Batch Management 服務的應用程式會使用 Microsoft 驗證程式庫 (Microsoft Entra ID) 進行驗證。 Microsoft Entra 識別碼是Microsoft的多租用戶雲端式目錄和身分識別管理服務。 Azure 本身會使用 Microsoft Entra ID 來驗證其客戶、服務管理員和組織的使用者。

Batch 管理 .NET 程式庫會公開使用 Batch 帳戶、帳戶金鑰、應用程式和應用程式封裝的類型。 Batch Management .NET 程式庫是 Azure 資源提供者用戶端,並與 Azure Resource Manager 搭配使用,以程式設計方式管理這些資源。 驗證透過任何 Azure 資源提供者用戶端 (包括 Batch Management .NET 程式庫),以及透過 Azure Resource Manager 所提出的要求時,都需要 Microsoft Entra ID。

本文中將探索從使用 Batch Management .NET 程式庫的應用程式,使用 Microsoft Entra ID 進行驗證。 我們會示範如何利用整合式驗證,使用 Microsoft Entra ID 來驗證訂用帳戶管理員或共同管理員。 我們會使用 GitHub 上提供的 AccountManagement 範例專案,逐步解說如何搭配 Batch Management .NET 程式庫使用 Microsoft Entra ID。

若要深入了解使用 Batch 管理 .NET 程式庫和 AccountManagement 範例,請參閱使用適用於 .NET 的 Batch 管理用戶端程式庫來管理 Batch 帳戶和配額

向 Microsoft Entra ID 註冊應用程式

Microsoft 驗證程式庫 (MSAL) 為 Microsoft Entra ID 提供程式設計介面以便在應用程式中使用。 若要從應用程式呼叫 MSAL,您必須在 Microsoft Entra 租用戶中註冊應用程式。 當您註冊應用程式時,提供 Microsoft Entra ID 有關您應用程式的資訊,包括 Microsoft Entra 租用戶內的名稱。 Microsoft Entra ID 接著會提供您可以用來在執行階段,將應用程式與 Microsoft Entra ID 產生關聯的應用程式識別碼。 若要深入了解應用程式識別碼,請參閱 Microsoft Entra ID 中的應用程式和服務主體物件

若要註冊 AccountManagement 範例應用程式,請依照整合應用程式與 Microsoft Entra ID新增應用程式一節中的步驟進行。 指定 [原生用戶端應用程式] 作為應用程式類型。 適用於重新導向 URI 的業界標準 OAuth 2.0 URI 是 urn:ietf:wg:oauth:2.0:oob。 不過,您可以針對重新導向 URI 指定任何有效的 URI (例如 http://myaccountmanagementsample),因為它不需要是實際的端點。

新增應用程式

完成註冊程序後,您會看到應用程式識別碼以及針對應用程式列出的物件 (服務主體) 識別碼。

已完成註冊程式

授與 Azure Resource Manager API 存取給您的應用程式

接下來,您必須將應用程式的存取委派給 Azure Resource Manager API。 Resource Manager API 的 Microsoft Entra 識別碼是 Windows Azure 服務管理 API

在 Azure 入口網站中遵循以下步驟:

  1. 在 Azure 入口網站的左側導覽窗格中,選擇 [所有服務],按一下 [應用程式註冊],然後按一下 [新增]

  2. 在應用程式註冊清單中搜尋您應用程式的名稱︰

    搜尋您的應用程式名稱

  3. 顯示 [設定] 刀鋒視窗。 在 [API 存取] 區段中,選取 [必要權限]

  4. 按一下 [新增] 以新增必要權限。

  5. 在步驟 1 中,輸入 Windows Azure 服務管理 API,從結果清單選取該 API,然後按一下 [選取] 按鈕。

  6. 在步驟 2 中,選取存取 Azure 傳統部署模型做為組織使用者旁的核取方塊,然後按一下 [選取] 按鈕。

  7. 按一下 [完成] 按鈕。

[必要權限] 刀鋒視窗現在會顯示已向 MSAL 和 Resource Manager API 授與您應用程式的權限。 當您第一次向 Microsoft Entra ID 註冊應用程式時,權限預設會授與給 MSAL。

將許可權委派給 Azure Resource Manager API

Microsoft Entra 端點

若要使用 Microsoft Entra ID 驗證 Batch Management 解決方案,則需要兩個已知的端點。

  • 若未提供特定的租用戶,Microsoft Entra 通用端點會提供一般認證蒐集介面,如同整合式驗證的情況:

    https://login.microsoftonline.com/common

  • Azure Resource Manager 端點可用來取得權杖,以驗證對 Batch Management 服務的要求:

    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/";

參考您的應用程式識別碼

用戶端應用程式使用應用程式識別碼 (也稱為用戶端識別碼) 在執行階段存取 Microsoft Entra ID。 在 Azure 入口網站中註冊應用程式後,更新程式碼以使用 Microsoft Entra ID 針對已註冊應用程式所提供的應用程式識別碼。 在 AccountManagement 範例應用程式中,從 Azure 入口網站將應用程式識別碼複製到適當的常數︰

// 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://learn.microsoft.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 驗證權杖

在 Microsoft Entra 租用戶中註冊 AccountManagement 範例,並使用您的值更新範例原始程式碼之後,範例就準備好使用 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 管理服務。

下一步