Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
调用Azure Batch管理服务的应用程序使用 Microsoft Entra ID 进行身份验证,Microsoft的多租户基于云的目录和标识管理服务。 Azure本身使用Microsoft Entra ID对客户、服务管理员和组织用户进行身份验证。
对 Batch 管理应用进行身份验证的建议方法是使用 Azure 标识客户端库以及 Azure。ResourceManager.Batch管理库。 Azure 标识库提供基于令牌的凭据类(例如 DefaultAzureCredential、ManagedIdentityCredential、ClientSecretCredential 和 InteractiveBrowserCredential),无论应用在本地、Azure 上还是本地部署环境中运行,这些凭据类都能一致地工作。 有关建议的身份验证策略的概述,请参阅 使用 Azure 标识库对 .NET 应用进行身份验证以访问 Azure 服务。
Azure.ResourceManager.Batch 库公开用于管理 Batch 帐户、帐户密钥、应用程序和应用程序包的类型。 它是一个Azure资源提供程序客户端,可与 Azure 资源管理器 协同工作,以编程方式管理这些资源。 Microsoft Entra ID需要对通过任何Azure资源提供程序客户端(包括此库)发出的请求进行身份验证。
Note
弃用旧的 Microsoft.Azure.Management.Batch 包和基于 ADAL 的代码模式(AuthenticationContext.AcquireToken)。 新代码应将 Azure.ResourceManager.Batch 与 Azure.Identity 凭据一起使用。
若要详细了解如何使用 Batch Management .NET 库,请参阅 使用适用于 .NET 的 Batch Management 客户端库管理 Batch 帐户和配额。
注册应用程序(可选)
是否需要注册单独的Microsoft Entra应用程序取决于使用的凭据类型:
- 如果使用
DefaultAzureCredential并通过开发人员工具登录(Azure CLI、Azure PowerShell、Visual Studio或Visual Studio Code),或者应用在具有托管标识的Azure资源上运行,则无需注册单独的应用程序。 该凭据使用该环境中已配置的标识。 - 如果应用以服务主体身份进行身份验证(例如,使用
ClientSecretCredential或ClientCertificateCredential),则必须在Microsoft Entra租户中注册应用程序。
若要注册应用程序,请按照 快速入门:使用 Microsoft 标识平台注册应用程序 中的步骤操作。 注册后,Microsoft Entra ID 会提供一个应用程序(客户端)ID,供你在运行时使用。 有关详细信息,请参阅 Microsoft Entra ID 中的应用程序和服务主体对象。
分配Azure RBAC 权限
确定应用使用的标识类型(开发人员帐户、托管标识或服务主体)后,请对用于管理 Batch 帐户的资源组或订阅为该标识分配所需的 Azure 基于角色的访问控制 (RBAC) 权限。 常见的内置角色包括 Contributor、Azure Batch 帐户参与者和 Reader。
有关步骤,请参阅使用 Azure 门户分配 Azure 角色。
使用Azure标识库进行身份验证
使用 Azure.Identity 和 Azure.ResourceManager.Batch 时,你无需手动指定 Microsoft Entra 终结点、资源 URI 或重定向 URI——凭据会自动处理令牌的获取、缓存和刷新。
安装所需的 NuGet 包:
dotnet add package Azure.Identity dotnet add package Azure.ResourceManager.Batch将以下
using语句添加到代码:using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Batch;创建凭据并将其传递给
ArmClient。 使用客户端枚举或管理 Batch 帐户。Recommended:
DefaultAzureCredential在本地使用开发人员工具登录(Azure CLI、Visual Studio、Visual Studio Code),并在应用在Azure运行时自动使用托管标识:ArmClient arm = new ArmClient(new DefaultAzureCredential()); SubscriptionResource subscription = await arm.GetDefaultSubscriptionAsync(); await foreach (BatchAccountResource account in subscription.GetBatchAccountsAsync()) { Console.WriteLine(account.Data.Name); }交互式(集成)登录 提示用户通过系统浏览器登录。 当你的应用必须以交互方式对特定用户进行身份验证时,请使用此功能:
var credential = new InteractiveBrowserCredential( new InteractiveBrowserCredentialOptions { TenantId = "<tenant-id>", ClientId = "<application-id>", // optional; required only if you registered your own app RedirectUri = new Uri("http://localhost") }); ArmClient arm = new ArmClient(credential);服务主体(客户端密码) 用于通过应用注册机密进行身份验证的无人参与应用:
var credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); ArmClient arm = new ArmClient(credential);托管标识应用在具有系统分配或用户分配托管标识的Azure资源(例如 VM、应用服务或容器应用)上运行时使用:
// System-assigned managed identity var credential = new ManagedIdentityCredential(); // Or, user-assigned managed identity // var credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>"); ArmClient arm = new ArmClient(credential);
凭据会自动缓存并刷新令牌,因此你可以在应用的整个生命周期内使 ArmClient 和 Batch 管理资源持续可用。