如何在Powershell中授予管理员对Azure AAD应用程序的同意?

时间:2020-08-21 20:20:30

标签: azure powershell authentication active-directory

我正在尝试使用Azure Active目录对Azure Web App进行身份验证。 到目前为止,我已经采取了以下步骤:

1-通过Azure门户,我已经在AAD中创建了一个应用注册,并按照here中的说明将其分配给了Web应用。

2-我使用New-AzureADGroupAppRoleAssignment cmdlet向应用分配了一些用户,然后使用set-AzureADServicePrincipal -AppRoleAssignmentRequired $true

将用户分配设置为要求

这可以按预期工作:未分配给该应用程序的用户,看到一个“拒绝访问”页面,那些正在访问的用户,看到一个“管理员同意”提示页面。

问题是管理员同意提示中没有链接供他们请求。 我尝试按照here中的说明进行操作,但是无法通过门户访问AAD。我只能通过Powershell做到这一点。

如果您知道用于设置此链接的Powershell cmdlet(或将管理员同意更改为用户同意),请在此处发布。

3 个答案:

答案 0 :(得分:1)

PowerShell中目前没有命令授予管理员同意,如果您可以使用powershell访问Azure AD,我想您也可以通过Azure CLI访问它。

因此,我的解决方法是在Azure CLI中使用az ad app permission admin-consent,它等同于门户网站中的管理员同意按钮。

确保您拥有installed the Azure CLI,使用az login登录AAD租户中的用户帐户或服务主体(即管理员),然后运行以下命令。

0

答案 1 :(得分:0)

您有两种选择。如果您通过门户网站或AZ cli具有全局管理员权限,则可以授予管理员同意。最简单的方法是通过门户网站。只需转到AAD,应用程序注册,然后找到您的应用程序即可。转到权限刀片。您应该看到一个同意按钮。我不记得我的头顶上有AZ cli命令,但是仅在门户中执行它可能会更容易。

答案 2 :(得分:0)

在尝试使其与服务主体一起使用后,事实证明这是不可能的,因为只能由用户帐户执行az ad app permission admin-consent --id <application-id>,有关此问题的讨论将在以后的版本中使用线程:

https://github.com/Azure/azure-cli/issues/12137

现在建议向管理员授予对API的同意的方法是

az ad app permission grant --id 46eb4122-bd2b-4f54-af7b-6d79b46ee31a 
                           --api 00000003-0000-0000-c000-000000000000
                           --scope "Directory.Read.All Directory.ReadWrite.All"

Microsoft文档:az ad app permission grant