【问题标题】:Azure requires Scope in client credentials grantAzure 需要客户端凭据授予中的范围
【发布时间】:2020-06-15 22:07:51
【问题描述】:

我在 Azure AD 中有 2 个已注册的应用程序 - 一个是 webapi,它从 SendGrid 接收带有访问令牌的 webhook。另一个是 SendGrid 应用程序的注册,以便它可以使用客户端凭据授予请求令牌。已向 SendGrid 应用注册公开的 API 授予管理员许可。

在其服务器上的 SendGrid 的 webhook 配置中(该服务处于测试阶段),我们被要求提供 client_id、client_secret 和令牌端点。我们还配置了最终会发送令牌及其 webhook 数据的 web api 资源 url。

在 Azure 标识平台中,范围是必需的,但在 RFC 中是可选的。 SendGrid 不配置也不发送范围。所以这些实现似乎不能一起工作。

2 个问题:

  • 如果您不向其他符合 RFC 的令牌端点发送范围,假设这意味着请求者可以被授权,但 jwt 对受众没有任何内容?
  • 如果根据 RFC 范围不需要,资源服务器可以检查“这是为我设计的”吗?

我知道我们可以验证颁发者和任何额外的声明,但在 Azure AD、Auth0 文档等中最强调的验证之一是“受众”似乎很奇怪,但 RFC 允许令牌中缺少范围要求。 here 的答案之一再次强调了这一要求。

我想知道如果请求中缺少范围,是否可以在客户端应用程序注册清单中配置范围,但找不到任何类似的内容。

提前感谢您的见解。

【问题讨论】:

    标签: oauth-2.0 azure-active-directory sendgrid sendgrid-api-v3


    【解决方案1】:

    我不确定这是否能解决您的问题,但您是否尝试过使用配置的公开 api 进行应用注册,在它下面有一个授权的客户端应用程序部分,请尝试在其中添加其他应用程序注册 ID。我偶然看到,即使没有请求范围,它也会在令牌中返回该范围。

    【讨论】:

    • 谢谢 - 我明天试试,然后告诉你。
    • @MarkD 你解决了这个问题吗?你是怎么做到的?
    • 其他优先事项妨碍了我们,所以我们暂时放弃了。我会看看我是否可以在周末进行测试 - 注册仍然配置,所以我应该能够按照 alphaz18 的建议进行设置。不能保证时间表 - 我们现在有很多事情要做......
    猜你喜欢
    • 2017-03-11
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2019-06-16
    • 2021-10-25
    • 2018-09-18
    • 1970-01-01
    相关资源
    最近更新 更多