2015-10-21 33 views
8

Poszukuję urządzenia OpenID Connect (OIDC) Raiding Party lekka biblioteka, która będzie implementować te procedury.Lekka biblioteka OpenID Connect

  1. Compose "Request Authentication"
  2. Zatwierdź "id_token" podpisu (w tym pobierania certyfikatu z końcowym metadanych)
  3. Parse "id_token" JWT

Jedynym przepływu OIDC być obsługiwany jest tak zwany "niejawny przepływ", gdzie serwer odpowiada za pomocą "id_token" (i "access_token", jeśli jest wymagany) bezpośrednio od punktu końcowego autoryzacji (spec link).

Wyszukiwanie w repozytorium NuGet wydaje się przynosić jedyną odpowiednią opcję - oprogramowanie pośredniczące OWIN, i choć mogę potwierdzić, że działa, lepiej byłoby mieć lekką alternatywę.

OIDC implicit flow

Odpowiedz

11

Wystarczy dzielenie co pracował dla mnie.

Aby uzyskać 1-gę osiągniętego pakietu NuGet o nazwie Thinktecture.IdentityModel.Client (link), można go użyć (pakiet od twórców IdentityServer, który sam w sobie jest niesamowity). Przykład pokazujący podstawowe użycie znajduje się poniżej.

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

Jak do analizowania i walidacji JWT otrzymał od OIDC Identity Provider System.IdentityModel.Tokens.Jwt (link) Pakiet Microsoft Nuget jest droga. Fragment kodu jest również poniżej.

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; 

To wszystko jest lekkie i utrzymuje aplikację w czystości od niepotrzebnych zależności.

NuGets