我正在尝试使用Azure Active目录对Azure Web App进行身份验证。 到目前为止,我已经采取了以下步骤:
1-通过Azure门户,我已经在AAD中创建了一个应用注册,并按照here中的说明将其分配给了Web应用。
2-我使用New-AzureADGroupAppRoleAssignment cmdlet
向应用分配了一些用户,然后使用set-AzureADServicePrincipal -AppRoleAssignmentRequired $true
这可以按预期工作:未分配给该应用程序的用户,看到一个“拒绝访问”页面,那些正在访问的用户,看到一个“管理员同意”提示页面。
问题是管理员同意提示中没有链接供他们请求。 我尝试按照here中的说明进行操作,但是无法通过门户访问AAD。我只能通过Powershell做到这一点。
如果您知道用于设置此链接的Powershell cmdlet(或将管理员同意更改为用户同意),请在此处发布。
答案 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