2015-10-21 28 views
8

Tôi đang tìm OpenID Connect (OIDC) Relying Party thư viện nhẹ sẽ thực hiện các thủ tục này.Thư viện nhẹ OpenID Connect

  1. Soạn "Xác thực Request"
  2. Validate "id_token" chữ ký (bao gồm tải chứng chỉ từ endpoint metadata)
  3. Parse "id_token" JWT

duy nhất dòng OIDC để được hỗ trợ là được gọi là "luồng ẩn" "trong đó máy chủ trả lời với" id_token "(và" access_token "nếu được yêu cầu) ngay từ điểm cuối ủy quyền (spec link).

Tìm kiếm trên kho lưu trữ NuGet dường như mang lại lựa chọn phù hợp duy nhất - phần mềm trung gian OWIN, và mặc dù tôi có thể xác nhận nó hoạt động, tốt hơn là nên thay thế nhẹ.

OIDC implicit flow

Trả lời

11

Chỉ chia sẻ những gì phù hợp với tôi.

Để đạt được mục tiêu thứ nhất, gói NuGet được gọi là Thinktecture.IdentityModel.Client (link) có thể được sử dụng (gói từ người tạo IdentityServer không thể tin được). Một ví dụ cho thấy việc sử dụng cơ bản là dưới đây.

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); 

Như để phân tích và xác nhận của JWT nhận được từ OIDC nhận dạng cung cấp sự System.IdentityModel.Tokens.Jwt (link) gói NuGet của Microsoft là một cách để đi. Đoạn mã cũng dưới đây.

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; 

Tất cả đều nhẹ và giữ ứng dụng của bạn sạch sẽ khỏi các phụ thuộc không cần thiết.

NuGets

Các vấn đề liên quan