DEX LDAP 连接器令牌签名



我正在玩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)

相关内容

最新更新