。
第1目標を達成するには、Thinktecture.IdentityModel.Client
(link)と呼ばれるNuGetパッケージを使用できます(それ自体信じられないIdentityServerクリエータからのパッケージ)。基本的な使用法を示す例は以下のとおりです。 JWTの解析と検証については
var client = new OAuth2Client(new Uri(AuthorizeEndpointUrl));
string url = client.CreateAuthorizeUrl(
clientId: ClientId,
redirectUri: RedirectUri,
responseType: "id_token",
responseMode: "form_post",
nonce: Guid.NewGuid().ToString(),
additionalValues: additionalValues);
OIDC IDプロバイダからSystem.IdentityModel.Tokens.Jwt
を受けた(link)マイクロソフトのNuGetパッケージは移動するための方法です。コードスニペットも同様です。
var parameters = new TokenValidationParameters()
{
IssuerSigningTokens = GetSigningTokens(MetadataEndpointUrl),
ValidAudience = ValidAudience,
ValidIssuer = ValidIssuer,
};
var tokenHandler = new JwtSecurityTokenHandler();
SecurityToken validated;
tokenHandler.ValidateToken(jwt, parameters, out validated);
return validated as JwtSecurityToken;
これはすべて軽量であり、不要な依存関係からアプリケーションをきれいに保ちます。