“security.oauth2.resource”和“security.oauth2.client”有什么区别?

sta*_*234 4 java spring-security oauth-2.0 spring-boot

我创建了一个 Spring Boot 应用程序并使用 oauth2 进行身份验证。我发现这个教程,它有效,但我不确定所提到的属性用于什么。

https://medium.com/@bcarunmail/securing-rest-api-using-keycloak-and-spring-oauth2-6ddf3a1efcc2

这是我的属性文件:

rest.security.issuer-uri=http://localhost:8180/auth/realms/dev
security.oauth2.resource.id=employee-service
security.oauth2.resource.token-info-uri=${rest.security.issuer-uri}/protocol/openid-connect/token/introspect
security.oauth2.resource.user-info-uri=${rest.security.issuer-uri}/protocol/openid-connect/userinfo
security.oauth2.resource.jwt.key-value=-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtLXaZjNl+vVB58mjJUkNH4noJieFAWn8ny+ONkqD4Y/EDrx+6pEZynZjNxNcOylI9KU2YqiFVzbVJLsQ35+qWaxO1f0w3XLTnzZ78mV1fLRK8oOX5IpLdQip+VuuUvcwGGs9UfnCEhLc/Tq+AuRxuvT3xIBHAMG/P1ZlhAww9A6hqyYiLy5YBrrZQeFCqYKT/hCpoebeR8M0/iAjOaJ7+qV44Mp6xtYN0f8Xk5jy2k4fbXBgr/1yqsUDJjJuOeJDSRSPwu18NeR70ldbB0lLcpW15d7GTkGLTCTDUia9JbxRuI7tXX93md3LxEpJq224qKxiPTY/7cyxx/AKbEEnywIDAQAB-----END PUBLIC KEY-----


security.oauth2.client.client-id=employee-service
security.oauth2.client.client-secret=b0ea9376-778a-4dc9-b400-90118f32958c
security.oauth2.client.user-authorization-uri=${rest.security.issuer-uri}/protocol/openid-connect/auth
security.oauth2.client.access-token-uri=${rest.security.issuer-uri}/protocol/openid-connect/token
security.oauth2.client.scope=openid
security.oauth2.client.grant-type=client_credentials
Run Code Online (Sandbox Code Playgroud)

(不用担心这个秘密,这个 keycloak 在我的本地主机上运行只是为了测试目的)

“客户端”是用来做什么的?

那么“资源”是用来做什么的呢?

提前致谢。

小智 5

OAuth 2 是一种授权方法,用于通过 HTTP 协议提供对受保护资源的访问。\nOAuth 定义了四个角色 \xe2\x80\x93

\n
    \n
  • 资源所有者 - 应用程序的用户。
  • \n
  • 客户端\xe2\x80\x93 需要访问资源服务器上的用户数据的应用程序(用户正在使用)。
  • \n
  • 资源服务器\xe2\x80\x93存储用户\xe2\x80\x99s数据和http服务,可以将用户数据返回给经过身份验证的客户端。
  • \n
  • 授权服务器\xe2\x80\x93负责验证用户\xe2\x80\x99s的身份并给出授权令牌。该令牌被资源服务器接受并验证您的身份。
  • \n
\n

上面列出的属性/配置是一起定义/列出这些实体的参数。

\n