【问题标题】:Azure Service Principal Token 401Azure 服务主体令牌 401
【发布时间】:2022-11-02 05:17:36
【问题描述】:
我有一个部署到 Azure App Services 的 web api (.Net 6)。它是一个授权的 api,我有一个为具有 Azure AD User.Read 权限的 Web api 创建的服务主体(或应用程序注册)。我使用邮递员生成一个令牌来访问这个 api 来测试部署的环境。我的身份验证配置如下所示,其中“选项”在我的 appSettings 中定义。
我的邮递员请求获取令牌是:
奇怪的是,当我向 Azure 端点发送 GET 时得到 401,但在本地一切正常。我已经在 Azure 上使用了 App Logs 功能,并查看了可以找到调试提示的任何地方,但这是我现在唯一的线索:
我应该重新检查什么以及如何解决这个问题?我没有在我的 .Net 代码中验证受众,直到上周一切正常。
【问题讨论】:
标签:
.net
azure
asp.net-web-api
azure-web-app-service
【解决方案1】:
- 然后,如果您已创建应用注册,则从列表中选择一个应用注册,或者您可以通过单击
create new 按钮创建新注册。
- 然后选择
add graph permission然后下一步,在你添加注册时会生成一个秘密。
- 现在在 azure 门户中创建一个新的应用注册,然后在您新创建的应用注册的
authentication 选项卡下单击add platform
- 现在单击
Single page Application,然后将打开一个弹出窗口,您必须在其中添加回调 URL https://oauth.pstmn.io/v1/callback
请也选择以下选项。
- 现在在
api permission 选项卡下单击add permission 将出现一个弹出窗口,您必须在my api 部分下选择之前用于Web Api 的应用程序注册。
- 现在我们已经配置了所有内容,我们现在可以专注于邮递员,首先创建一个新选项卡添加您的 URL,然后单击
authorization 选项卡,然后在 type 选项中选择 oauth 2.0 并选择 requests in headers在add auth data to 选项卡中。
- 现在填写后续表格,但首先确保
grant type 设置为Implicit
- 然后添加
client_id、auth_url 和 scope所有这些值都可以在 azure 门户中使用。
客户编号:
授权网址:
范围:
现在点击Get new Access token
- 这会将您带到浏览器以登录 azure 帐户并请求许可。一旦您授予该权限,它将如下所示。
- 现在邮递员中将出现一个弹出窗口,您将在其中拥有一个可用于身份验证的令牌。选择令牌,然后将出现选项以将其与 Api 一起使用。
现在您可以访问您的 Web Api。