【问题标题】: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】:
    • 我能够访问我第一次创建由 Visual Studio 提供的样板代码的天蓝色广告附加 Web Api。

    • 之后,单击打开的选项卡中的Add a service dependency 按钮。然后单击Microsoft Identity platform 添加依赖项,这将帮助我们授权使用 azure 广告。

    • 然后,如果您已创建应用注册,则从列表中选择一个应用注册,或者您可以通过单击create new 按钮创建新注册。

    • 然后选择add graph permission然后下一步,在你添加注册时会生成一个秘密。

    • 继续选择next/finish 直到进程完成。

    • 现在在 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 headersadd auth data to 选项卡中。

    • 现在填写后续表格,但首先确保grant type 设置为Implicit

    • 然后添加 client_idauth_urlscope所有这些值都可以在 azure 门户中使用。

    客户编号:

    授权网址:

    范围:

    现在点击Get new Access token

    • 这会将您带到浏览器以登录 azure 帐户并请求许可。一旦您授予该权限,它将如下所示。

    • 现在邮递员中将出现一个弹出窗口,您将在其中拥有一个可用于身份验证的令牌。选择令牌,然后将出现选项以将其与 Api 一起使用。

    现在您可以访问您的 Web Api。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 2021-05-05
      • 1970-01-01
      相关资源
      最近更新 更多