Go DEX LDAP连接器令牌签名

Go DEX LDAP连接器令牌签名,go,jwt,openldap,openid-dex,Go,Jwt,Openldap,Openid Dex,我正在玩DEX和openldap。当我在浏览器中获取令牌并将其与生成的公钥一起放入JWT调试器时,它不会验证签名。我正试图逐步完成DEX的代码,但调试工具在我的计算机上并没有真正起作用。我求助于日志声明。我真的找不到哪里可以观察令牌的签名,看程序是否使用我提供的密钥。哪个函数实际对令牌进行签名?我如何观察它用于签名的密钥?可以从DEX“keys”端点读取密钥,该端点可以从以下位置获得: 通常情况下,它类似于: 之后,可以使用以下程序提取公钥: 其中一个密钥将能够验证令牌: from jos

我正在玩DEX和openldap。当我在浏览器中获取令牌并将其与生成的公钥一起放入JWT调试器时,它不会验证签名。我正试图逐步完成DEX的代码,但调试工具在我的计算机上并没有真正起作用。我求助于日志声明。我真的找不到哪里可以观察令牌的签名,看程序是否使用我提供的密钥。哪个函数实际对令牌进行签名?我如何观察它用于签名的密钥?

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

通常情况下,它类似于:

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

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

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)