OpenID Connect轻量级库

我正在寻找将实现这些例程的OpenID Connect(OIDC)依赖方轻量级库

  1. 撰写“身份validation请求”
  2. validation“id_token”签名(包括从元数据端点下载证书)
  3. 解析“id_token”JWT

要支持的唯一OIDC流是所谓的“ 隐式流 ”,其中服务器从授权端点( 规范链接 )回答“id_token”(以及“access_token”,如果请求)。

搜索NuGet存储库似乎只能产生唯一合适的选项–OWIN中间件,即使我可以确认它有效,但最好还是选择轻量级替代品。

OIDC隐含流量

只是分享对我有用的东西。

为了获得第一个目标,可以使用名为Thinktecture.IdentityModel.Client ( link )的NuGet包(来自IdentityServer创建者的包本身就是令人难以置信的)。 显示基本用法的示例如下。

 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身份提供者收到的JWT的解析和validation, System.IdentityModel.Tokens.Jwt ( 链接 )微软的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; 

这一切都是轻量级的,可以保护您的应用程

NuGets