当前位置: 首页 > 知识库问答 >
问题:

了解OAuth2客户端凭据流

燕正德
2023-03-14
$ curl -X -v -d 'client_id=the_client&client_secret=secret&grant_type=client_credentials' -X POST "http://localhost:9090/oauth/token"
InsufficientAuthenticationException: There is no client authentication
@FrameworkEndpoint
@RequestMapping(value = "/oauth/token")
public class TokenEndpoint extends AbstractEndpoint {

    @RequestMapping
    public ResponseEntity<OAuth2AccessToken> getAccessToken(Principal principal,
            @RequestParam("grant_type") String grantType, @RequestParam Map<String, String> parameters) {

        if (!(principal instanceof Authentication)) {
            throw new InsufficientAuthenticationException(

看起来我可能对整个客户机凭据流或spring-security的应用程序有一些误解,因此非常感谢任何澄清。

共有1个答案

宰子琪
2023-03-14

您没有将客户端身份验证到授权服务器。

您需要这样做:

curl --user the_client:secret --data "grant_type=client_credentials" http://localhost:9090/oauth/token

这就是向授权服务器验证客户端,然后指定grant_type和其他参数。这将返回一个类型为'Bearer'的访问令牌,其范围由oauth客户端详细信息确定。获得令牌后,可以通过设置Authorization头访问受保护的资源:

curl -H "Authorization: Bearer <accessToken>" <resourceUrl>
 类似资料:
  • 问题内容: 我正在尝试了解和实现新的REST服务器与现有的客户端应用程序之间的客户端凭证流。我已经像这样设置了spring-security OAuth2 。从到目前为止的理解来看,我的服务器现在应该支持以下请求: 但我明白了 由引起的是这里(弹簧安全码): 看来,我需要首先 针对服务器 进行 身份验证 。但这 不是我想做的 。我希望我的两个服务器使用共享密钥相互通信。OAuth提供者服务器应应请

  • 顺便说一句,这些微服务只会通过中间件层互相交谈,我的意思是不需要用户凭据来允许授权(用户登录过程如Facebook)。 我在Internet上寻找了一些示例,展示了如何创建一个授权和资源服务器来管理这种通信。然而,我只是找到了一些例子,解释了如何使用用户凭据(三条腿)来实现它。 有没有人有在Spring Boot和Oauth2中如何做的样例?如果有可能提供更多关于所用范围的详细信息,令牌交换将不胜

  • 我试图使用spring OAuth2在Spring Boot服务中实现服务到服务的安全性。我希望一个服务访问另一个服务的安全资源,而不涉及任何用户操作。 我可以设置auth服务器并使用curl请求获取令牌。我发现的测试使用Http对象来检查状态代码。 如何在具有RestTemplate和spring OAuth2的java客户机中使用客户机凭据授权类型? 我想它一定像添加一个依赖项、一个注释和一个

  • 当授权范围限于客户端控制下的受保护资源或事先与授权服务器商定的受保护资源时客户端凭据可以被用作为一种授权许可。典型的当客户端代表自己表演(客户端也是资源所有者)或者基于与授权服务器事先商定的授权请求对受保护资源的访问权限时,客户端凭据被用作为授权许可。

  • 有人用这种方法吗?https://laravel.com/docs/5.4/passport#client-凭证授予代币 我试图使注册API只包含client_id和client_secret,我希望返回作为访问令牌、刷新令牌、过期日期,但返回www.url。com/oauth/token这是什么 有人能帮我吗?提前谢谢

  • 当客户端是资源所有者时,或者当授权范围限于受客户端控制的受保护资源时,客户端凭证可以用作授权授权。 客户端仅在客户端凭据的帮助下请求访问令牌。 客户端凭证授权流用于获取访问令牌以授权API请求。 使用客户端凭据授权,获取的访问令牌仅授予客户端应用程序搜索和获取目录文档的权限。 下图描绘了客户端凭据流。 上图所示的流程包括以下步骤 - Step 1 - 客户端使用授权服务器进行身份验证,并从令牌端点

  • 我在我的客户端应用程序(我的Spring网关)中配置客户端凭据流时遇到了一些问题。 我的授权服务器功能正常,与邮递员一起测试,没有任何问题。 但在我的客户机应用程序中,oauth2配置似乎没有编译错误。 当我调用服务器资源上的受保护资源时,我的客户端应用程序似乎试图调用其基础中的URL,而不是授权服务器。 请参阅我的配置文件中的代码: 我的客户依赖: 我的网络客户端的配置: 我在资源上的呼叫者:

  • 我有一个相当基本的Spring Boot设置,我已经安装了Spring Security,我已经成功地设置了OAuth2来保护我的API。 几天前,我遇到了一些麻烦,问(并回答)了一个关于达到endpoint的问题。我很快发现问题在于,我试图在请求的正文中发送客户机凭据,但令牌endpoint在Spring Security中被配置为通过HTTP Basic Auth接受客户机凭据(和)。 我使用