gpt4 book ai didi

azure - 使用守护程序/控制台应用程序在特定范围内调用 Azure AD 安全的自己的 Web API

转载 作者:行者123 更新时间:2023-12-03 02:40:44 25 4
gpt4 key购买 nike

我在 dotnet core 中有一个自定义 Web API,我已使用 [Authorize(Policy = "Admin")] 保护 Web API 的安全。
我已使用应用程序注册在 Azure AD 中注册了 Web api。我创建了两个应用程序角色“管理员”和“客户”。
我有一个控制台应用程序,它使用 Azure 中的应用程序注册在 Azure AD 中注册为客户端。
现在,当我请求使用范围的访问 token 时 - api://{guid}/.default (所有权限)请求 OAuth 2.0 token 端点 (v2) - https://login.microsoftonline.com/ {tenantID}/oauth2/v2.0/token

我正在获取访问 token ,并且可以调用我的 Web API 方法。但是当我调用具有特定范围的 Web api 时,请说“Admin”范围:api://{guid}/Admin

我收到错误 -

错误:无法完成 OAuth 2.0 token 请求:“AADSTS70011:提供的请求必须包含“范围”输入参数。为输入参数“范围”提供的值无效。范围 api://{guid }/管理员无效

最佳答案

api://{guid}/Admin 不是在 Web API Azure AD 应用中公开的 API。

如果您想将“管理员”添加为委派权限,则应将其公开为 API。

enter image description here

然后,您应该在 Web 应用 Azure AD 应用程序中添加委派权限(不是 Web API Azure AD 应用程序)。

enter image description here

不要忘记点击“为{您的租户}授予管理员同意”以完成管理员同意。

enter image description here

现在,您可以在使用 authorization code flow 请求 token 时将其指定为范围 .

<小时/>

更新:

抱歉,我必须在此处添加更多信息。

上面的屏幕截图用于公开委托(delegate)权限。

如果您想公开应用程序权限,创建应用程序角色是正确的。

创建应用程序角色后,您应该在 Web 应用 Azure AD 应用程序(不是 Web API Azure AD 应用程序)中添加权限。

enter image description here

选择 Web API Azure AD 应用。然后您将看到应用程序权限。选择刚刚在 Web API Azure AD 应用中创建的应用角色。

enter image description here

不要忘记点击“为{您的租户}授予管理员同意”以完成管理员同意。

enter image description here

之后,您可以在使用 client credentials flow 请求 token 时将其指定为范围 .

关于azure - 使用守护程序/控制台应用程序在特定范围内调用 Azure AD 安全的自己的 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61387210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com