登录
首页 >  Golang >  Go问答

Go语言实现RFC7523

来源:stackoverflow

时间:2024-03-06 11:00:28 392浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《Go语言实现RFC7523》,涉及到,有需要的可以收藏一下

问题内容

我想使用 openid connect 服务器并希望使用 jwt 进行客户端身份验证:

post /token.oauth2 http/1.1
 host: as.example.com
 content-type: application/x-www-form-urlencoded

 grant_type=authorization_code&
 code=n0esc3nrze7ltcu7iyzs6a5acc3f0ogp4&
 client_assertion_type=urn%3aietf%3aparams%3aoauth%3a
 client-assertion-type%3ajwt-bearer&
 client_assertion=eyjhbgcioijsuzi1niisimtpzci6ijiyin0.
 eyjpc3mi[...omitted for brevity...].
 cc4hiupo[...omitted for brevity...]

就我而言,我需要 rfc7523 实现,go 在 oauth2 中实现它。但在那里我只找到了如何使用 jwt 作为授权:

POST /token.oauth2 HTTP/1.1
 Host: as.example.com
 Content-Type: application/x-www-form-urlencoded

 grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer
 &assertion=eyJhbGciOiJFUzI1NiJ9.
 eyJpc3Mi[...omitted for brevity...].
 J9l-ZhwP[...omitted for brevity...]

那么我如何在 go 中使用 jwt 进行客户端身份验证?


解决方案


RFC7523 定义的是一种使用 JWT 作为客户端身份验证或授权授予的方法。这意味着如果定义扩展为,

  1. 在访问令牌请求中使用 JWT 将客户端身份验证信息传递给授权服务器(OpenID Connect 服务器,如果支持的话)

  2. 在访问令牌请求中使用 JWT 作为授权授予(与 OAuth 2.0 中的授权代码进行比较)

在这两种情况下,JWT 都是由令牌授予接收授权服务器信任的一方颁发的。

现在,您不必使用库即可使用此扩展。正如您所强调的问题,您必须创建从 GO 客户端到授权服务器的 PUT 请求。

但棘手的部分是为此过程获取有效的 JWT。正如我所说,此 JWT 必须由有效方颁发。并且您的授权服务器应配置为接受 JWT。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Go语言实现RFC7523》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>