2017-02-01 10 views
9

मैं एक सी # आधारित एमवीसी अनुप्रयोग के भीतर प्रमाणीकरण के लिए पहचान सर्वर 4 का उपयोग कर रहा हूं। मैं मान्य उपयोगकर्ताओं के स्रोत के रूप में Azure AD में संग्रहीत खातों का उपयोग करना चाहता हूं लेकिन दस्तावेज़ केवल Google और ओपनआईडी & को संदर्भित करता है, केवल उत्तीर्ण होने में Azure का उल्लेख करता है।पहचानकर्ता 4 और Azure AD

क्या किसी को किसी भी अच्छे दस्तावेज़ीकरण और/या ट्यूटोरियल के बारे में पता है कि Azure AD का उपयोग पहचान सर्वर 4 के साथ उपयोग करने के संदर्भ में कैसे किया जाए?

उत्तर

5

आप पहचानकर्ता से Azure एडी के लिए साइनइन का उपयोग कर सकते हैं जैसे कि आप पहचान से सर्वर पर साइनइन का उपयोग करेंगे। एक जावास्क्रिप्ट या एमवीसी ऐप।

मैं इस हाल ही में किया है, और तुम सब करने की जरूरत है इस तरह Azure विज्ञापन करने के लिए OpenIdConnect विकल्पों रजिस्टर है: यहां इस बारे में

public void ConfigureAuth(IAppBuilder app) 
{ 
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

    app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

    app.UseOpenIdConnectAuthentication(
     new OpenIdConnectAuthenticationOptions 
     { 
      ClientId = clientId, 
      Authority = authority, 
      PostLogoutRedirectUri = postLogoutRedirectUri, 
     }); 
} 

और जानकारी: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devquickstarts-webapp-dotnet

आप अपने लॉग इन में तो ऐसा करना चाहिए कार्रवाई कॉल ChallengeAsync विधि:

var authenticationProperties = new AuthenticationProperties { RedirectUri = "your redirect uri" }; 
await HttpContext.Authentication.ChallengeAsync(your policy, authenticationProperties); 

फिर एक कॉलबैक विधि प्रदान के रूप में एक GET पद्धति तो ईद में प्रदान की बाहरी लॉग इन नमूनों का पालन करें इकाई सर्वर नमूने: https://github.com/IdentityServer/IdentityServer4.Samples/blob/dev/Quickstarts/4_ImplicitFlowAuthenticationWithExternal/src/QuickstartIdentityServer/Quickstart/Account/AccountController.cs

+0

जानकारी के लिए धन्यवाद तय की। मैं बस आईएस 4 से शुरू कर रहा हूं, इसलिए मुझे आपको कुछ पूछने की ज़रूरत है: मैंने बाहरी लॉगिन के बारे में दस्तावेज़ पढ़े हैं, और नमूना आपको एक बटन दिखाता है और मुझे लगता है कि यह आपको Google प्रमाणीकरण पृष्ठ पर रीडायरेक्ट करता है, इसलिए मुझे लगता है कि आपका उदाहरण रीडायरेक्ट करता है माइक्रोसॉफ्ट लॉगिन पेज, या मैं गलत हूँ? यदि यह सत्य है, तो अपने क्रेडेंशियल को जानने वाले उपयोगकर्ता को स्वचालित रूप से प्रमाणित करना संभव है? मेरा मतलब है, कोई मेरे जेएस ऐप को उपयोगकर्ता के क्रेडेंशियल्स (माइक्रोसॉफ्ट) भेजता है, फिर मैं उन्हें आईएस 4 भेजता हूं और यह टोकन – FacundoGFlores

+2

प्राप्त करने का प्रयास करता है जो वास्तव में ओपनआईडी कनेक्ट के साथ बिंदु है; इस मामले में माइक्रोसॉफ्ट, आप किसी अन्य सिस्टम में पासवर्ड को संभालने की परेशानी का प्रतिनिधित्व करते हैं। आपको login.microsoft.com या इसी तरह के अधिकार को जोड़ना होगा, फिर इसे रीडायरेक्ट करते समय उपयोग किया जाएगा। ओपनआईडी कनेक्ट माइक्रोसॉफ्ट विशिष्ट नहीं है; यह केवल एक विनिर्देश है कि किसी तृतीय पक्ष प्रदाता के साथ लॉगिन कैसे होना चाहिए। –

6

sample with Azure AD on github है, IdentityServer samples में प्रदान किए गए बाहरी लॉगिन नमूने से फोर्क किया गया है।

नमूना भी एक ज्ञात समस्या "State parameter generated by middleware is too large for Azure AD #978"

+1

https://github.com/aspnet/Security/issues/1310 ऊपर दिए गए कोड उदाहरण अब हाोक की टिप्पणियों से अप्रचलित है, "पुराना 1.0 प्रमाणीकरण स्टैक अब काम नहीं करेगा, और 2.0 में अप्रचलित है"। यह विशेष रूप से IdentityServer startup.cs के कॉन्फ़िगर/कुकी प्रमाणीकरण के उपरोक्त रेपो सेट के तरीके से संबंधित है। माइग्रेशन 17 जून के आसपास किया गया था, सबसे अच्छा मैं बता सकता हूं। – JakeJ

+0

यदि आप ऐप में डालते हैं। यूसीकुकी प्रमाणीकरण, फिर कन्स्ट्रक्टर पर टिप्पणियों को देखें, यह आपको उपरोक्त लिंक पर ले जाएगा। मैंने अभी भी आपकी मदद के लिए आपको उकसाया है, अगर मैं उस रेपो से केवल उस कोड में प्लग इन कर सकता था तो मैं बहुत ही अच्छा होता। – JakeJ

+0

@ जेकेजे, आप गिटहब रिपॉजिटरी पर एक मुद्दा बना सकते हैं, कोर 2.0 में अपग्रेड करने के लिए कह रहे हैं या यहां तक ​​कि पुल अनुरोध भी सबमिट कर सकते हैं। –

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