1

创建 AAD 应用程序时,我们能够为应用程序创建客户端密码。因此,我了解客户端机密是针对应用程序的。作为对比,我们还可以为同一个应用程序创建许多服务主体。并且每个服务主体都可以使用自己的密码az ad sp create-for-rbac --name ServicePrincipalName。但我没有找到在 Azure 门户上创建此类服务主体密码的方法。所以我想知道这两种凭证是否指的是同一件事。

4

2 回答 2

1

这两个凭证实际上是不同的东西。

应用程序上的凭证是最常见的凭证,也是推荐用于几乎所有用途的凭证。它是一个单一的凭证,可以让您在一个租户中运行的代码进行身份验证并访问其他租户中的资源,在这些租户中同意/添加此应用程序。

servicePrincipal 上的凭据仅用于获取对 serviceprincipal 所在的特定租户中授予应用程序的资源的访问权限。这适用于非常有限的场景,而不是推荐用于一般用途的场景。

于 2021-07-16T20:45:46.903 回答
0

据我所知,您无法在门户中创建服务主体凭据。您必须使用您描述的 CLI 方法或 PowerShell 命令。

门户中的内容严格用于创建与 OAuth 客户端凭据流一起使用的客户端机密,以获取作为受信任客户端的令牌。

https://datatracker.ietf.org/doc/html/rfc6749#section-4.4 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant -流动

另一方面,服务主体更像是 Azure 中的域用户。它可以分配给订阅、资源组和资源中的 RBAC 角色。这对于以该身份运行应用程序服务并授予该帐户对存储帐户、保管库等的访问权限非常方便。

于 2021-07-16T01:23:49.573 回答