【问题标题】:Postman keycloack issuedFor邮差钥匙披风为
【发布时间】:2020-08-24 17:55:08
【问题描述】:

我正在尝试从邮递员请求 keycloack 进行授权测试,但仍然收到此错误:

{
    "error": "invalid_request",
    "error_description": "You must provide the issuedFor"
}

PostMan 请求参数:

邮递员不记名令牌标头:

【问题讨论】:

  • 由于您的 Postman 屏幕截图中未检查 issueFor,因此可能没有发送?
  • 是的,即使我检查它,我也有相同的结果。我什至不知道它是否是 keycloack 要求的真实参数或其正确的 anwser。
  • 你应该把这个写成一个答案——是的,你可以回答你自己的问题。

标签: asp.net postman


【解决方案1】:

我知道你已经选择了一个答案,但对于那些从 Keycloak 的 issuedFor 问题的网络搜索登陆这里的人。

显示错误消息的根本原因是参数名称“audience”(而不是“audiance)”中的拼写错误。现在这会使 Keycloak 无法在 https://github.com/keycloak/keycloak/blob/3631618b245fa768bff7009b9e87d01dd4387fe3/services/src/main/java/org/keycloak/authorization/authorization/AuthorizationTokenService.java#L330 获取客户端 ID。只要修正拼写,你应该没问题。

作为记录,评估权限的请求中需要“audience”参数,如授权服务的 Keycloak 文档中所述:https://www.keycloak.org/docs/latest/authorization_services/index.html#_service_obtaining_permissions

【讨论】:

  • 谢谢先生!但是在 args 中设置“观众”自己,它奏效了!谢谢! _______________ 让 urlencoded = new URLSearchParams(); urlencoded.append("grant_type", "urn:ietf:params:oauth:grant-type:uma-ticket"); urlencoded.append("audience", "my-client-id-name");
【解决方案2】:

好的,我发现了问题并解决了。离开网络时,Keycloak 无法访问某些类型的请求。你必须把它放在https中。在您的本地机器上,它确实可以工作,但是一旦您从 localhost 到网络访问 keycloak,您必须传递到 https。

所以我所做的是,在我的请求 url 中,我将 keycloak 的链接从 http 更改为 https,因此将端口从 8080 更改为 8443(用于 https 服务的端口)。希望它会帮助某人。特别感谢@RossPresser :)

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 2021-11-29
    • 1970-01-01
    • 2017-06-11
    • 2014-10-26
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多