Azure Active Directory:使用PowerShell将服务主体添加到目录读取器角色 Azure PowerShell任务中的命令(Get-AzureRmADUser-Mail$user).Id在VSTS中的自托管代理上运行时返回null 问题是服务主体需要具有从Active Directory读取的权限
如何向服务主体授予从Azure Active Directory读取的正确权限?先决条件Azure Active Directory:使用PowerShell将服务主体添加到目录读取器角色 Azure PowerShell任务中的命令(Get-AzureRmADUser-Mail$user).Id在VSTS中的自托管代理上运行时返回null 问题是服务主体需要具有从Active Directory读取的权限,azure,powershell,azure-devops,azure-active-directory,service-principal,Azure,Powershell,Azure Devops,Azure Active Directory,Service Principal,如何向服务主体授予从Azure Active Directory读取的正确权限?先决条件 检查您是否具有从服务主体获取对象id的适当权限 检查您是否具有将服务主体添加到Azure Active Directory租户(->Admin)中的“目录读取器”角色的适当权限 台阶 通过安装模块AzureAD[1]安装Azure AD模块 连接到Azure Active Directory Connect AzureAD 获取“目录读取器”角色的Id $roleId=(获取AzureADDir
- 检查您是否具有从服务主体获取对象id的适当权限
- 检查您是否具有将服务主体添加到Azure Active Directory租户(->Admin)中的“目录读取器”角色的适当权限
- 通过
[1]安装Azure AD模块安装模块AzureAD
- 连接到Azure Active Directory
Connect AzureAD
- 获取“目录读取器”角色的Id
$roleId=(获取AzureADDirectoryRole | where对象{$\.DisplayName-eq“目录读取器”).Objectid
- 获取服务主体对象ID
$spObjectId=(Get-AzureADServicePrincipal-SearchString“spName”).ObjectId
- 当然,这仅在结果仅包含一个ObjectId时有效
- 这不是在Azure Active Directory中注册的应用程序的ObjectId
- 将服务主体添加到“目录读取器”角色
添加AzureAddirectorRoleMember-ObjectId$roleId-ReObjectId$spObjectId
- 检查SP是否已分配给目录读取器角色
获取AzureADDirectoryRoleMember-ObjectId$roleId |其中Object{$\uU9.ObjectId-eq$spObjectId}
- 如果要在稍后阶段从角色中删除服务主体
删除AzureAddirectorRoleMember-ObjectId$roleId-MemberId$spObjectId
资源 [1]
[2] 这不是一个问题,你最好把它作为一篇博文!这里有这个有什么不好?它基于一个问题(为什么(getazurermaduser-Mail$user).Id返回null)并直接提供答案。不知道您的实际问题是什么。如果您投了反对票,请提供为什么我们有这些命令的azure cli版本的原因