Sab*_*Far 4 authentication powershell active-directory azure
我正在尝试使用 Azure Active Directory 对 Azure Web 应用程序进行身份验证。到目前为止,我已采取以下步骤:
1-通过Azure门户,我在AAD中创建了应用程序注册,并按照此处的说明将其分配给Web应用程序。
2-我使用 向我的应用程序分配了一些用户New-AzureADGroupAppRoleAssignment cmdlet
,然后使用将用户分配设置为要求set-AzureADServicePrincipal -AppRoleAssignmentRequired $true
这按预期工作:未分配到应用程序的用户会看到“访问被拒绝”页面,而分配到应用程序的用户会看到“管理员同意”提示页面。
问题是管理员同意提示中没有可供他们请求的链接。我尝试按照此处的说明进行操作,但我无法通过门户访问 AAD。我只能通过 Powershell 来做到这一点。
如果您知道用于设置此链接(或将管理员同意更改为用户同意)的 Powershell cmdlet,如果您能将其发布到此处,我将不胜感激。
目前PowerShell中没有授予管理员同意的命令,在您的情况下,如果您可以使用powershell访问Azure AD,我认为您也可以通过Azure CLI访问它。
所以我的解决方法是在 Azure CLI 中使用az ad app permission admin-consent
,它相当于门户中的管理员同意按钮。
确保您已安装 Azure CLI,用于az login
登录作为 AAD 租户中的管理员的用户帐户或服务主体,然后运行以下命令。
az ad app permission admin-consent --id <application-id>
Run Code Online (Sandbox Code Playgroud)
在尝试让它与服务主体一起工作后,事实证明这是不可能的,因为这只能由用户帐户执行,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"
Run Code Online (Sandbox Code Playgroud)
Microsoft Docs:az ad 应用程序权限授予
归档时间: |
|
查看次数: |
10309 次 |
最近记录: |