登录
首页 >  Golang >  Go问答

签署令牌的DEX LDAP连接器

来源:stackoverflow

时间:2024-03-17 21:12:31 403浏览 收藏

本文讨论了如何验证使用 DEX 和 openldap 生成的 JWT 令牌的签名。由于调试工具无法在计算机上运行,作者建议使用日志语句进行调试。文章提供了获取密钥和使用 Golang 提取公钥的步骤,以便使用 JWT 调试器验证令牌签名。

问题内容

我正在使用 DEX 和 openldap。当我在浏览器中获取令牌并使用我生成的公钥将其放入 JWT 调试器时,它不会验证签名。我正在尝试单步调试 DEX 的代码,但调试工具在我的计算机上并没有真正运行。我已经诉诸日志语句。我真的找不到在哪里可以观察令牌的签名以查看程序是否使用我提供的密钥。哪个函数实际上对令牌进行了签名?我如何观察它使用什么密钥进行签名?


解决方案


密钥可以从 dex“keys”端点读取,该端点可以从以下位置获取:

http://your.dex.com/.well-known/openid-configuration

通常,它会是这样的:

http://your.dex.co/keys

之后,可以使用以下程序提取公钥:

https://play.golang.org/p/wVusucNGDI

其中一个密钥将能够验证令牌:

from jose import jwt

key = '''-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArT9AtIlC8MxhLYhz8ODH
...
+QIDAQAB
-----END PUBLIC KEY-----'''

encoded = 'eyJh...ocw'

audience = ''
if audience == "":
    opts = {"verify_aud": False}
else:
    opts = {}
opts['verify_at_hash'] = False
decoded = jwt.decode(encoded, key, audience=audience, options=opts)

print(decoded)

理论要掌握,实操不能落!以上关于《签署令牌的DEX LDAP连接器》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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