有没有办法让自动化中使用的 ARM 模板创建一个 Azure AD 用户帐户,供人类使用密码登录 Azure 门户?
如果是这样,您能否展示 ARM 模板的最少代码来完成此任务?
AWS 使用 CloudFormation 使这一切变得简单。但到目前为止,我关于如何使用 ARM 模板执行此操作的研究尚未产生任何结果。
Azure 资源管理器(即 ARM 的代表)仅用于管理(顾名思义)Azure 资源。然而,微软决定,每种类型的用户帐户(托管身份除外,但让我们忽略它们)仅由 Azure AD(或 Entra ID)完全管理,这是另一种产品。最终,它们耦合在一起,并且在 Azure AD 中管理的用户可以在 Azure (ARM) 中使用,但仍驻留在 Azure AD 中。不幸的是,恕我直言,命名相当混乱。如果您想了解更多有关 ARM 领域内容的信息,请参阅此处。
因此,您正在寻找一种在代码中管理 Azure AD 资源的方法,这是由 Graph API 提供的。如果您需要更多详细信息,请在here描述创建用户的正确 API,但最终的查询是:
POST https://graph.microsoft.com/v1.0/users
Body:
{
"accountEnabled": true,
"city": "Seattle",
"country": "United States",
"department": "Sales & Marketing",
"displayName": "Melissa Darrow",
"givenName": "Melissa",
"jobTitle": "Marketing Director",
"mailNickname": "MelissaD",
"passwordPolicies": "DisablePasswordExpiration",
"passwordProfile": {
"password": "76734553-24af-87e1-d3c5-a1fb1ecdb305",
"forceChangePasswordNextSignIn": false
},
"officeLocation": "131/1105",
"postalCode": "98052",
"preferredLanguage": "en-US",
"state": "WA",
"streetAddress": "9256 Towne Center Dr., Suite 400",
"surname": "Darrow",
"mobilePhone": "+1 206 555 0110",
"usageLocation": "US",
"userPrincipalName": "MelissaD@{domain}"
}
Request Header:
Authentication (bearer)
Content-type application/json
此外,Microsoft 还提供了 Graph Explorer,您可以在其中使用这些适用于 Azure AD 的 API。
P.S.:另一个常见的困惑点是角色管理。由于Azure AD和Azure(ARM)是两种产品,它们具有不同的角色管理和不同的权限。为了避免陷入常见问题,您可能会喜欢这篇文章