如何从 Keycloak openid-connect 证书解码密钥 api
How to decode keys from Keycloak openid-connect cert api
我正在尝试从 Keycloak open-id connect certs 端点获取密钥,该端点允许我验证 JWT 令牌。 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,我不知道它是什么?
...如果有人能告诉我如何从有效负载中获取 public 密钥,那就太好了!
查看 https://github.com/keycloak/keycloak/blob/master/core/src/main/java/org/keycloak/jose/jwk/JWKParser.java 它返回的密钥接缝是使用 pem 编码的:
modulus
exponent
查看提到的 java class 以获取 java 中的 public 密钥或 https://github.com/tracker1/node-rsa-pem-from-mod-exp 以获取 public 中的密钥java脚本。
密钥(或多个密钥)的类型是 JSON Web Key (JWK). List of supported library is on OpenID web page. I am using jose.4.j,用于从 Keycloak 检索密钥。
我正在尝试从 Keycloak open-id connect certs 端点获取密钥,该端点允许我验证 JWT 令牌。 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,我不知道它是什么?
...如果有人能告诉我如何从有效负载中获取 public 密钥,那就太好了!
查看 https://github.com/keycloak/keycloak/blob/master/core/src/main/java/org/keycloak/jose/jwk/JWKParser.java 它返回的密钥接缝是使用 pem 编码的:
modulus
exponent
查看提到的 java class 以获取 java 中的 public 密钥或 https://github.com/tracker1/node-rsa-pem-from-mod-exp 以获取 public 中的密钥java脚本。
密钥(或多个密钥)的类型是 JSON Web Key (JWK). List of supported library is on OpenID web page. I am using jose.4.j,用于从 Keycloak 检索密钥。