2016-02-24 20 views
6

Azure Active Directory aracılığıyla kimlik doğrulaması için ADAL kütüphanesini kullanan bir web uygulamasına sahibim.C# REST hizmetindeki ADAL JWT belirtecini doğrulama

Bu web uygulaması, ADAL belirteci dizesini parametre olarak ileterek bir C# REST hizmetine çağrı yapar. REST hizmetimde bu belirteci doğrulamak istiyorum. Jeton sadece geçerliyse, servis işlemi gerçekleştirir.

Çok arandım, ancak dinlenme hizmetimdeki JWT belirtecini doğrulamanın bir yolunu bulamadım. Bu konuda bana yardımcı olabilir misiniz?

1. Kullanım Owin katman sizin için belirteç doğrulama idare edecek

Kullanım katman:

cevap

5

İki seçeneğiniz vardır. Ortak bir durum, sizin için tüm büyüyü yapan OWIN ara katman yazılımı olacaktır. Genellikle, bu, kodunuzu düşük düzeyli jeton doğrulaması için değil API'niz için iş mantığına odaklamanıza izin verdiği için en iyi yaklaşımdır. Owin kullanan örnek REST API için, bu iki örnek göz atın:

2. Manuel JWT doğrulama

JSON Web Jetonu kullanabilirsiniz Elle JWT belirteci doğrulama yapmak için ASP.NET için işleyici. (Tamam, bu yüzden değil tamamen manuel, ama elle çağrılır.) Orada bunun için bir örnek de var:

  • https://github.com/Azure-Samples/active-directory-dotnet-webapi-manual-jwt-validation (fiili JWT doğrulama Global.asax.cs olur ve şöyle görünür:

    JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); 
    
    TokenValidationParameters validationParameters = new TokenValidationParameters 
    { 
        ValidAudience = audience, 
        ValidIssuer = issuer, 
        IssuerSigningTokens = signingTokens, 
        CertificateValidator = X509CertificateValidator.None 
    }; 
    
    try 
    { 
        // Validate token. 
        SecurityToken validatedToken = new JwtSecurityToken(); 
        ClaimsPrincipal claimsPrincipal = tokenHandler.ValidateToken(jwtToken, validationParameters, out validatedToken); 
    
        // Do other validation things, like making claims available to controller... 
    } 
    catch (SecurityTokenValidationException) 
    { 
        // Token validation failed 
        HttpResponseMessage response = BuildResponseErrorMessage(HttpStatusCode.Unauthorized); 
        return response; 
    } 
    
+0

App.UseWindowsAzureActiveDirectoryBearerAuthentication, bu doğrulamayı otomatik olarak yapar mı? – r590

+0

@ r590 evet .Bu yöntemi kullanırsanız, tüm bunlar sizin için yapılandırılır. –

İlgili konular