gpt4 book ai didi

spring - spring-security-oauth2 authorizedGrantTypes 的配置在实践中意味着什么?

转载 作者:行者123 更新时间:2023-12-04 05:11:37 25 4
gpt4 key购买 nike

例如,在默认的 jhipster UAA 配置中,我们有:
clients.inMemory()
.withClient("web_app")
.scopes("openid")
.autoApprove(true)
.authorizedGrantTypes("implicit","refresh_token", "password",
"authorization_code")
.and()
.withClient(jHipsterProperties.getSecurity()
.getClientAuthorization().getClientId())
.secret(jHipsterProperties.getSecurity()
.getClientAuthorization().getClientSecret())
.scopes("web-app")
.autoApprove(true)
.authorizedGrantTypes("client_credentials");

那么“authorizedGrantTypes”在实践中的真正含义是什么?第一个客户端“web_app”将具有不同的类型,包括刷新,因此第二个客户端将能够生成一个 token 作为 client_credentials。有什么不同?

另一个问题,使用“client_credentials”的第二个客户端身份验证的目的是什么?由于这与存储的真实用户断开了连接。微服务到微服务通信?如果配置部署在 Spring Cloud(客户端和 secret 硬编码配置)上以允许通过网关进行任何外部身份验证,则看起来很糟糕。如何防止这种情况?

最佳答案

OAuth 2.0 grant types是您的客户端应用程序获取 token 的不同“方式”。
有一堆articles解释它better ,但这里是一个摘要:

  • authorization_code是“经典”的 OAuth 2.0 流程,通过重定向请求用户同意。客户端应用程序经过严格身份验证,因为它必须在获得 token 之前发送其所有凭据( client_id + client_secret + redirect_uri )。
  • implicit与authorization_code 几乎相同,但适用于公共(public)客户端(Web 应用程序或已安装/移动应用程序)。从用户的角度来看,流程几乎相同,但客户端身份验证较弱。 redirect_uri是唯一的安全性,因为客户端通过重定向+请求参数接收访问 token 。
  • password直截了当:客户端应用程序收集用户凭据,并发送用户凭据 (username + password) 和它自己的凭据 (client_id + client_secret) 以换取 token 。此流程将授权与身份验证混合在一起,并且仅应在没有其他选择时使用(即您自己安装的/移动应用程序,您不希望用户在 native 应用程序和浏览器之间来回切换)。你应该 从不允许第三方使用此流程。

  • 对于所有这些流程,以一种或另一种方式要求用户获得许可。提供给客户端的 token 只允许它访问该单个用户的数据。 client_credentials授权是不同的,因为它不涉及用户。它是 HTTP Basic 的替代品。
    您的客户端不会为每个请求发送用户名 ( client_id ) + 密码 ( client_secret ),而是发送其凭据以换取 token 。
    它用于服务器到服务器的通信,您想通过为其提供不同的凭据来了解“哪个应用程序正在调用”,但您不会将其授权与特定用户绑定(bind)。
    一些例子 :
  • 使用安全服务的命令行应用程序(批处理)或工作进程。这类应用程序可能一次处理一堆用户数据,它无法请求每个用户的同意。被调用的服务必须知道“谁”在调用,以允许客户端应用程序访问任何内容。
  • 您的 API 的第三方/外部客户端想要了解与用户数据无关的信息(例如:使用情况统计、配额、计费...)
  • 具有特殊权限的第三方/外部客户端,可以访问您所有用户的数据

  • 注意:在服务到服务的通信中,您应该中继从外部接收到的 token ,而不是让每个中间应用程序请求自己的 token 。

    关于spring - spring-security-oauth2 authorizedGrantTypes 的配置在实践中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579623/

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