gpt4 book ai didi

java - 为什么 CF UAA check_token 端点需要 clientId/clientSecret?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:23 24 4
gpt4 key购买 nike

CloudFoundry 的 UAA 有一个 RemoteTokenServices 类(也是 Spring oauth2 的一部分),它通过转到 UAA 服务器的 check_token 端点来执行授权 token 验证。UAA 有示例 apiapp 应用程序,分别用作资源服务器和客户端应用程序。

来自示例 api 的 spring-servlet.xml:

<bean id="tokenServices" class="org.cloudfoundry.identity.uaa.oauth.RemoteTokenServices">
<property name="checkTokenEndpointUrl" value="${checkTokenEndpointUrl}" />
<property name="clientId" value="app" />
<property name="clientSecret" value="appclientsecret" />
</bean>

您知道为什么这个类(以及需要在授权 header 中编码这些值的 check_token 端点)需要 clientId 和 clientSecret 吗?在我看来,它依赖于资源服务器的客户端应用程序。如果其中一个客户端 secret 在此处“硬编码”,我该如何使用多个客户端应用程序?

最佳答案

我自己通过阅读 UAA 弄明白了 documentation彻底,我仍然认为它在 UAA 示例应用程序中令人困惑:

  • clientId 和 clientSecret 值应该是示例中 api 应用程序 (api/apiclientsecret) 的客户端 ID/ secret ,因为资源服务器应该验证 本身在调用 check_token 端点时通过基本身份验证发送给 UAA 服务器,以便 UAA 可以确保请求是由有效的注册资源服务器发出的。
  • 为了能够做到这一点,资源服务器还必须在 UAA 中以 client_credentials 作为 authorized-grant-type 注册为客户端。
  • 应检查的 token 在 POST 请求正文中发送。

关于java - 为什么 CF UAA check_token 端点需要 clientId/clientSecret?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com