没有角色分配的服务主体有什么用

What's the use of a service principal without role assignment

可以通过az ad sp create-for-rbac --skip-assignment

创建没有角色的服务原则

Q1。没有角色的服务主体有什么用?

Q2。服务原则可以在不附加任何 scope/resource 的情况下退出吗?如果是这样,独立服务原则有什么用?

A1- 您可以使用它来消除应用程序中对密钥的需求。例如,您可以授予身份(您的应用程序)以在 Azure 存储上存储/访问数据,而不是存储 Azure 存储访问密钥。

A2-我想是的,这将是一个系统分配的托管标识,这是一种特殊的托管标识(服务主体)

Q1. What's the use of a service principal without a role?

参数--skip-assignment跳过将服务主体分配给订阅。所以准确的说,你的问题应该是without an RBAC role,因为还有一个角色叫Administrator role,下面会提到

这里有一些用法供大家参考,还有很多和AD App混用的用法,这里不再赘述。如果您想了解它们,可以查看 Azure AD official doc.

1.The 服务主体可以分配为 Administrator role in Azure AD, then it can do the things depend on the role permissions, e.g. create a user, delete a group. Via Azure AD powershell, Microsoft Graph API, Azure AD Graph API, or the AAD part of the Az powershell module.

2.The 服务主体也可以调用 APIs 并在没有 Administrator role 的情况下使用上面的 powershell,但你需要给它 application permissionaz ad sp create-for-rbac 将创建一个 AD 应用程序和一个服务主体,在 AD 应用程序中的门户 -> API permissions,您可以添加权限和同意。请注意,当我们在 AD App 中添加权限和同意时,实际上权限将授予您租户中的服务主体,服务主体是特定租户中 AD 应用程序的实例 .

Q2. Can a service principle exit without attaching to any scope/resource? If so what's the use of such independent service principle?

是的,如上所述,它可以做很多与Azure AD、Graph相关的事情API。这是一个关于 Application and service principal objects in Azure Active Directory 的文档,它对您理解服务主体非常有帮助。