2016-02-24 8 views
6

मेरे पास एक वेब एप्लिकेशन है जो एज़ल एक्टिव डायरेक्टरी के माध्यम से प्रमाणीकरण के लिए एडीएएल लाइब्रेरी का उपयोग करता है।सी # आरईएसटी सेवा में एडीएएल जेडब्ल्यूटी टोकन को मान्य करना

यह वेब एप्लिकेशन पैरामीटर के रूप में ADAL टोकन स्ट्रिंग को पास करके सी # आरईएसटी सेवा को कॉल करता है। मेरी आरईएसटी सेवा में, मैं इस टोकन को सत्यापित करना चाहता हूं। यदि टोकन केवल वैध है तो सेवा ऑपरेशन करेगी।

मैंने बहुत कुछ खोजा लेकिन मेरी बाकी सेवा में जेडब्ल्यूटी टोकन को सत्यापित करने का कोई तरीका नहीं मिला। क्या आप कृपया इस पर मेरी मदद कर सकते हैं?

1. Owin मिडलवेयर

उपयोग मिडलवेयर है कि आप के लिए टोकन सत्यापन संभाल लेंगे:

उत्तर

5

आपके पास दो विकल्प। एक सामान्य मामला ओविन मिडलवेयर होगा, जो आपके लिए सभी जादू करता है। आमतौर पर, यह सबसे अच्छा तरीका है, क्योंकि यह आपको अपने एपीआई के लिए व्यावसायिक तर्क पर अपना कोड केंद्रित करने की अनुमति देता है, न कि निम्न स्तर के टोकन सत्यापन पर। Owin का उपयोग करता है एक नमूना REST API लिए, इन दो नमूनों की जाँच:

2. मैनुअल जेडब्ल्यूटी सत्यापन

आप JSON वेब टोकन का उपयोग कर सकते मैनुअल जेडब्ल्यूटी टोकन सत्यापन करने के लिए एएसपी.नेट के लिए हैंडलर। (ठीक है, तो यह नहीं पूरी तरह से मैनुअल है, लेकिन यह मैन्युअल रूप से शुरू हो जाती है।) वहाँ भी इस के लिए एक नमूना है:

  • https://github.com/Azure-Samples/active-directory-dotnet-webapi-manual-jwt-validation (वास्तविक जेडब्ल्यूटी सत्यापन Global.asax.cs में होता है और इस तरह दिखता है:

    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

क्या ऐप है .UseWindowsAzureActiveDirectoryBearer प्रमाणीकरण स्वचालित रूप से इस सत्यापन को निष्पादित करता है? – r590

+0

@ r590 हां। यदि आप उस विधि का उपयोग करते हैं, तो यह सब आपके लिए कॉन्फ़िगर किया जाएगा –

संबंधित मुद्दे