调用我的 API 的系统的 OAuth2 客户端凭据或永久令牌?

问题描述 投票:0回答:1

我们有一个 Spring Boot API,用户在使用其端点之前,在 JWT 方案下使用其凭据进行身份验证。现在,我们正在实现一个新系统(聊天机器人),它需要在将答案返回给用户之前消耗这些端点。我的问题是,我们是否应该按照 OAuth2 客户端凭据授予规范的建议实现授权服务器和资源服务器?在这种情况下,我们的聊天机器人是否需要使用其 cliendid 和 Secret 定期进行身份验证?我们正在考虑为客户端聊天机器人提供永久令牌,以避免永久身份验证。我们不希望客户端每次调用 API 时都必须获取令牌,我们希望为客户端提供一个已生成的令牌,它将在每个请求中使用该令牌,从而避免令牌获取步骤。这种方法会不安全吗?在这种情况下哪种方法更可取?

spring oauth-2.0 client token credentials
1个回答
0
投票

据我所知,最佳实践是使用

OAuth2 Client Credentials
,因为它是经过设计的,如果您只有这两种方法,它会更安全:

此流程(OAuth2 客户端凭证)对于需要执行 API 操作的系统很有用 当没有用户存在时。可以是夜间操作,也可以是其他操作 涉及联系 OAuth 受保护的 API。

但是,如果我正确理解了您的意思,这些 api 调用(聊天机器人)将由最终用户触发,在这种情况下,您必须实现

Authorization Code Flow

如果是基于 Spring 的应用程序,您可以从

spring-boot
提供的有关启动器的文档开始。

Oauth2/资源服务器-客户端部分

弹簧授权服务器

© www.soinside.com 2019 - 2024. All rights reserved.