我正在尝试从允许我验证JWT令牌的Keycloak open-id connect certs端点获取密钥。获取密钥seam来工作的api:
GET http://localhost:8080/auth/realms/my-realm/protocol/openid-connect/certs
{
"keys": [
{
"kid": "MfFp7IWWRkFW3Yvhb1eVrtyQQNYqk6BG-6HZFpl_JxI",
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"n": "qDWXUhNtfuHNh0lm3o-oTnP5S8ENpzsyi-dGrjSeewxV6GNiKTW5INJ4hDQ7ZWkUFfJJhfhQWJofqgN9rUBQgbRxXuUvEkrzXQiT9AT_8r-2XLMwRV3eV_t-WRIJhVWsm9CHS2gzbqbNP8HFoB_ZaEt2FYegQSoAFC1EXMioarQbFs7wFNEs1sn1di2xAjoy0rFrqf_UcYFNPlUhu7FiyhRrnoctAuQepV3B9_YQpFVoiUqa_p5THcDMaUIFXZmGXNftf1zlepbscaeoCqtiWTZLQHNuYKG4haFuJE4t19YhAZkPiqnatOUJv5ummc6i6CD69Mm9xAzYyMQUEvJuFw",
"e": "AQAB"
}
]
}但是密钥在哪里?如何解码它?$.keys[0].n看起来不像base64,我不知道它是什么?...if有人可以告诉我如何从有效载荷中获得公钥,这将是很棒的!
发布于 2016-10-06 16:21:36
查看https://github.com/keycloak/keycloak/blob/master/core/src/main/java/org/keycloak/jose/jwk/JWKParser.java,它认为返回的键是使用以下代码进行pem编码的:
modulus exponent查看上面提到的java类来获取java中的公钥,或者查看https://github.com/tracker1/node-rsa-pem-from-mod-exp来获取javascript中的公钥。
发布于 2018-10-08 16:25:29
一个或多个密钥的类型为JSON Web Key (JWK)。支持的库列表在OpenID web page上。我使用jose.4.j从Keycloak中检索密钥。
https://stackoverflow.com/questions/39890232
复制相似问题