1

我正在尝试使用以下请求从 Postman 调用(POST)Auth0 委托端点,如 Auth0 所建议的:

Content-Type: 'application/json'

{
  "client_id":   "{CLIENT_ID}",
  "grant_type":  "urn:ietf:params:oauth:grant-type:jwt-bearer",
  "id_token":    "{YOUR_ID_TOKEN}",
  "target":      "lwTL1rYVfC0KsBUFPeKWY3HvGjbIgdDM",
  "api_type":    "salesforce_api",
  "scope":       "openid"
}

即使上述请求中包含 grant_type 参数,我也会收到此错误:

{
    "error": "invalid_request",
    "error_description": "Missing grant_type parameter"
}

我在这里做错了什么?

4

1 回答 1

2

来自 Auth0 的新OIDC Conformant Authentication文档:

代表团

鉴于ID 令牌不应再用作 API 令牌并且刷新令牌应仅在令牌端点上使用,因此该端点现在被视为已弃用。

目前没有符合 OIDC 的机制来获取第三方 API 令牌。为了便于逐步迁移到新的身份验证管道,仍然可以使用委托来获取第三方 API 令牌。这将在未来的版本中被弃用。

此外,来自 Auth0 的Using AWS with Tokens文档:

旧赠款类型

自 2017 年 6 月 8 日起,新的 Auth0 客户无法将任何旧授权类型添加到其客户端,这是与委派端点一起使用所必需的。旧授权类型仅适用于以前的客户在迁移到新流程时,以避免破坏性更改。要为您的案例找到安全的替代方案,请参阅传统赠款类型的安全替代方案

进一步阅读传统赠款类型的安全替代方案链接:

旧赠款类型

http://auth0.com/oauth/legacy/grant-type/ro/jwt-bearer


选择

默认情况下禁用此功能。如果您希望启用此功能,请联系支持人员讨论您的使用案例并防止引入安全漏洞的可能性。

更多关于遗留授权类型的信息也可以在这里找到。


因此,您遇到的问题是委派已被弃用。这意味着/delegation端点,更重要的是jwt-bearer授权类型,已被弃用。如果您是新客户,那么您就不走运了。如果您是现有客户,则需要联系支持人员以启用它。

至于为什么 Postman 返回神秘"Missing grant_type parameter"错误而不是使用其他基于浏览器扩展的 REST 客户端得到的更好的"Grant type 'http://auth0.com/oauth/legacy/grant-type/delegation/id_token not allowed for the client."错误,你的猜测和我的一样好。

于 2017-11-01T02:48:04.090 回答