Подписание токена соединителя DEX LDAP - PullRequest
0 голосов
/ 06 октября 2018

Я играю с DEX и openldap.Когда я возвращаю токен в свой браузер и помещаю его в отладчик JWT с открытым ключом, который я сгенерировал, он не проверяет подпись.Я пытаюсь пройтись по коду DEX, но инструменты отладки не работают на моем компьютере.Я прибег к журналу отчетности.Я действительно не могу найти, где я могу наблюдать подпись токена, чтобы увидеть, использует ли программа предоставленные мной ключи или нет.Какая функция на самом деле подписывает токен и как я могу узнать, какой ключ он использует для подписи?

1 Ответ

0 голосов
/ 27 ноября 2018

Ключ можно прочитать из конечной точки «ключей» DEX, которую можно получить из:

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)
...