【问题标题】:Can't authorize token from Client Credentials Authentication Microsoft AD无法从客户端凭据身份验证 Microsoft AD 授权令牌
【发布时间】:2020-09-03 03:30:46
【问题描述】:

所以我使用 ASP Net Core 构建了一个应用程序。 这是我的代码

    services.AddAuthentication(AzureADDefaults.JwtBearerAuthenticationScheme)
    .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));

    services.Configure<JwtBearerOptions>(AzureADDefaults.JwtBearerAuthenticationScheme, options =>
    {
        // This is a Microsoft identity platform web API.
        options.Authority += "/v2.0";

        // The web API accepts as audiences both the Client ID (options.Audience) and api://{ClientID}.
        options.TokenValidationParameters.ValidAudiences = new[]
        {
         options.Audience,
         $"api://{options.Audience}"
        };
    });

    

当我使用用户密码验证时,此设置工作正常。但是由于某些情况,我只能将 client_credentials 用于我的其他应用程序。我正在使用它来获取令牌 我成功获得了令牌,但是当我使用令牌时,它让我未经授权

这是我使用的 API 权限

这是我的解码令牌

【问题讨论】:

  • 请将“范围”改为:api://{ClientID}/.default
  • 嗨@CarlZhao,我在更改范围时收到此错误 AADSTS500011:在名为 {{tenantId}} 的租户中找不到名为 api://{clientId} 的资源主体。我应该在这里添加什么?
  • 嗨,请查看我的更新答案。

标签: c# asp.net-core active-directory azure-active-directory


【解决方案1】:

请将范围更改为:api://{ClientID}/.default.


更新:

您需要创建另一个代表 Web api 的 Azure AD 应用程序,然后使用您的客户端应用程序调用 Web api 应用程序

首先需要暴露代表web api的应用的api,可以按照如下流程进行配置:

Azure 门户>应用注册>公开 API>添加范围>添加客户端应用程序

接下来,你需要定义api应用的manifest,并给你的客户端应用授予应用权限(这个是你自己定义的角色权限,添加权限的时候可以在My APIs中找到)

This是定义清单的过程。

这是为客户端应用程序授予权限:

最后,您可以为您的 api 应用程序请求一个令牌:

【讨论】:

  • 嗨所以范围是APP URI,我可以检索令牌但它仍然返回未经授权,可能是因为我的网络核心应用程序中的授权配置服务仍然错误?
  • @TheodorusAgumGumilang 您可以使用 client_credentials 流程来获取令牌,对吧?
  • 是的,我可以检索访问令牌,但是当我尝试在我的 API 中添加使用它时,我仍然得到未经授权的响应
  • @TheodorusAgumGumilang 请您提供一些屏幕截图: 1. 使用jwt.ms 解析您的访问令牌并提供屏幕截图。 2. 转到 azure 门户>应用注册>API 权限以提供屏幕截图。 3. 使用token请求api截图。
  • @TheodorusAgumGumilang 您没有在 API 权限中向您的客户端应用程序授予 api 应用程序权限。此权限是您自定义的权限,不是 AAD 图表权限,也不是 MS 图表权限。您可以在“我的 API”中找到它,我在答案中提供了详细说明。您可以按照我提供的答案进行操作。
猜你喜欢
  • 1970-01-01
  • 2021-05-23
  • 2020-03-01
  • 2019-10-14
  • 1970-01-01
  • 2022-01-24
  • 2015-11-27
  • 2015-01-20
  • 2020-11-18
相关资源
最近更新 更多