如何使用 Azure 门户或 PowerShell 将服务主体设为应用程序注册所有者?

how I can make an service principal as an App Registration Owner with azure portal or PowerShell?

所以背景如下:

对于安装和部署过程,我们需要修改客户创建的应用程序注册。 但是我们得到的不是正确的 Application.ReadWriteAll 但我们可以得到 Application.ReadWrite.OwnedBy.

我知道如果如下图所示创建图 Api 调用(使用 Postman 执行)它会起作用,因为创建者自动成为所有者。 .

 HTTP-Post Request:
https://graph.microsoft.com/v1.0/applications   
with body:
     {
      "displayName": "AppRegName"
    }

但我需要使用 azure 门户或 powershell 等标准工具来解决问题,但我发现无法将服务主体作为应用注册的所有者分配或删除。

有没有办法用 powershell 做到这一点?

与服务主体的身份验证我不知道该怎么做?

我想我可以用
创建一个应用程序注册 $appRegistration = New-AzADApplication -DisplayName "AppRegCreatebyPS" 但我在使用 powershell 方面非常缺乏经验。 那么我如何告诉 powershell 使用服务主体身份验证来创建应用程序注册?

一个简短的附加问题:

我可以稍后删除服务主体的所有者角色吗?我该怎么做?

感谢所有读者我希望有人能给我提示。

您可以从 PowerShell AzureAD 模块创建应用程序注册、应用程序注册的服务主体、添加应用程序所有者和删除应用程序所有者。

在 PowerShell 中安装 Azure AD 模块的命令:

Install-Module AzureAD

您可以使用以下命令:

#Connect to Azure AD 
Connect-AzureAD

#Create Azure AD app Registration
$appRegistration = New-AzureADApplication -DisplayName "AppRegCreatebyPS"

# Create A service Principal for the above app Registration
New-AzureADServicePrincipal -AccountEnabled $true -AppId $appRegistration.AppId -AppRoleAssignmentRequired $true -DisplayName $appRegistration.DisplayName

# get objectid for the service principal
$serviceprincipal= Get-AzureADServicePrincipal -Filter "DisplayName eq 'AppRegCreatebyPS'"

#Get the old app registration for whom you want set owner
$oldappregistration = Get-AzureADApplication -Filter "DisplayName eq 'Postman'"

#add service principal to the application owner of old app registration
Add-AzureADApplicationOwner -ObjectId $oldappregistration.ObjectId -RefObjectId $serviceprincipal.ObjectId

# verify the owner for the old app registration
Get-AzureADApplicationOwner -ObjectId $oldappregistration.ObjectId

#remove the owner for the old app registration
Remove-AzureADApplicationOwner -ObjectId $oldappregistration.ObjectId -OwnerId $serviceprincipal.ObjectId

参考:

Cmdlts for Azure AD module reference

这可以从 bash 或 windows 子系统 linux 中像下面那样完成。

登录您的 Azure 帐户

az 登录

执行以下命令

az ad app owner add --id AAAA --owner-object-id AAAA

--id(应用程序 id) , --owner-object-id (所有者对象 id)

参考:https://docs.microsoft.com/en-us/cli/azure/ad/app/owner?view=azure-cli-latest