모든 OpenID Connect 제공 업체는 jwks_uri
속성이 포함 된 검색 문서를 게시합니다. jwks_uri
에서 반환 된 데이터는 두 가지 다른 형식을 취하는 것으로 보입니다. 하나의 양식에는 x5c
및 x5t
이라는 필드가 있습니다. 내가 볼C#에서 OpenID Connect jwks_uri 메타 데이터를 올바르게 사용하는 방법?
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "C61F8F2524D080D0DB0A508747A94C2161DEDAC8",
"x5t": "xh-PJSTQgNDbClCHR6lMIWHe2sg", <------ HERE
"e": "AQAB",
"n": "lueb...",
"x5c": [
"MIIC/..." <------ HERE
],
"alg": "RS256"
}
]
}
다른 버전은 x5c 및 x5t 속성을 생략하지만 e
및 n
이 포함되어처럼 이것의 예를 보인다. 이것의 예는 다음과 같습니다 나는 꽤 차이가 있으며 때때로 x5c/x5t
조합을 이용하지만 다른 시간에 왜 단순히 e/n
무엇인지 이해하지 못하는
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"kid": "cb11e2f233aee0329a5344570349cddb6b8ff252",
"n": "sJ46h...", <------ HERE
"e": "AQAB" <------ HERE
}
]
}
. 또한 C#의 클래스 Microsoft.IdentityModel.Tokens.TokenValidationParameters
과 같은 클래스를 사용할 경우 주어진 정보를 사용하여 IssuerSigningKey
을 어떻게 제공합니까? 이 클래스의 샘플 사용은 내가 내가 액세스 토큰의 유효성을 검사 할 수있는 TokenValidationParameter
에 IssuerSigningKey
을 제공하는 데 사용할 어떻게 두 개의 다른 JWK 메타 데이터 형식을 감안할 때
new TokenValidationParameters
{
ValidateAudience = true,
ValidateIssuer = true,
...,
IssuerSigningKey = new X509SecurityKey(???) or new JsonWebKey(???) //How to create this based on x5c/x5t and also how to create this based on e and n ?
}
입니까?