2015-11-28 6 views
6

मैं अपने एसपीए (Angular.js और adal.js ( https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi उदाहरण की तरह)एक स्पा से नीला बी 2 सी का उपयोग कर (कोणीय और adal.js)

मेरे ई प्रमाणित करने के लिए कोशिश कर रहा हूँ एक WebAPI के खिलाफ प्रमाणित कर रहा है एक नीला बी 2 सी पूर्वावलोकन किरायेदार है

मैंने सफलतापूर्वक मेरी WebAPI करने के लिए मेरी वेबसाइट से कोणीय के माध्यम से प्रवेश कर सकते हैं, लेकिन नहीं जे एस एसपीए से

मेरे सेटअप:।। WebAPI और वेबसाइट शेयर एक ही clientid (केवल करता है इस तरह से काम करने लगते हैं) एसपीए का अपना ग्राहक है, अन्यथा लॉग इन करने का प्रयास करते समय मुझे "एपीआई संस्करण समर्थित नहीं है" त्रुटियां मिलती हैं। मैंने सभी एप्लिकेशन के लिए oauth2AllowImplicitFlow सक्षम किया है, स्पा से वेबपी तक एप्लिकेशन अनुमतियां दी हैं। वेबपी और एसपीए पर कोर सक्षम हैं।

मुझे लॉगिन पूरा करने के बाद भी टोकन प्राप्त करने में सक्षम होने लगते हैं, लेकिन जब मैं अपना एपीआई कॉल करने का प्रयास करता हूं, तो मुझे इस अनुरोध के लिए एक एक्सेस अस्वीकार कर दी जाती है।

क्या यह इस तरह से काम करना चाहिए? मुझे एक स्पा और एपीआई के साथ विभिन्न सर्वरों पर चलने के साथ बी 2 सी का उपयोग करने का उदाहरण नहीं मिला।

अग्रिम धन्यवाद

पीटर

+0

में अब भी है 28 नवंबर 2016 के रूप में के समय इस कार्यक्षमता उपलब्ध है। इसे देखें: https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/15334311-support-oauth-2-0-implict-flow – user1843640

उत्तर

2

यह not currently supported है।

एकल पृष्ठ अनुप्रयोग (जावास्क्रिप्ट)

कई आधुनिक अनुप्रयोगों एक एकल पृष्ठ आवेदन (SPA) सामने के अंत में मुख्य रूप से जावास्क्रिप्ट में और अक्सर एक स्पा ऐसे AngularJS, Ember.js रूप चौखटे का उपयोग कर लिखा है, Durandal, आदि। यह प्रवाह है जो अभी तक Azure AD B2C पूर्वावलोकन में उपलब्ध नहीं है।

5

आधिकारिक तौर पर यह माइक्रोसॉफ्ट द्वारा समर्थित नहीं है, लेकिन GitHub पर प्रयोगात्मक शाखा के कुछ संशोधनों के azure-activedirectory-library-for-js आप यह काम कर रहा प्राप्त कर सकते हैं के साथ। लाइन 546 पर adal.js से प्रस्थान विधि में नीति पैरामीटर के साथ OAuth2 प्रोटोकॉल के v2.0 समाप्ति बिंदु को

फिक्स लॉगआउट यूआरएल:

var urlNavigate = this.instance + tenant + '/oauth2/v2.0/logout?' + logout + (this.config.extraQueryParameter ? '&' + this.config.extraQueryParameter : ''); 

उपयोगकर्ता नाम संपत्ति Adal की विधि _createUser में सेट कभी नहीं किया गया है। जे एस।

if (parsedJson.hasOwnProperty('emails')) { 
    user.userName = parsedJson.emails[0]; 
} 

अंत में, लाइन 146 पर Adal-Angular.js में, acquireTokenSilent गलत प्रकार पैरामीटर के साथ कहा जाता है: उपयोगकर्ता नाम टोकन प्रक्रिया को नवीनीकृत, इस तीन लाइनों को जोड़कर इसे ठीक किया जाता है। यह विधि केवल सरणी प्रकार स्वीकार पैरामीटर scopes के रूप में सरणी में clientid रखकर इसे ठीक:

_adal.acquireTokenSilent([_adal.config.clientId], null, function (error, tokenOut) { 

मैं पहले से ही इस बारे में github पर एक अनुरोध खींच लिया आप संदर्भ के रूप में उपयोग कर सकते हैं।

जब आप कोणीय पर Adal प्रदाता को प्रारंभ इस तरह extraQueryParameter में नीति में आपकी बी 2 सी पर हस्ताक्षर कर दिया:

adalProvider.init({ 
    tenant: 'tenant.onmicrosoft.com', 
    clientId: 'clientid', 
    extraQueryParameter: "p=B2C_1_SignIn" 
}, $httpProvider); 
2

एसपीए के लिए एक AzureAD बी 2 सी परिदृश्य नमूना कोड की तरह लग रहा सिर्फ GitHub पर जारी किया गया था। इसे here देखें।

"नमूना दिखाता है कि हैलो.जेएस का उपयोग करके वेब एप्लिकेशन कैसे बनाया जाए जो Azure AD B2C के साथ पहचान प्रबंधन करता है। ऐप एक साधारण वेब एप्लिकेशन है जो साइन-इन, साइन-अप और साइन-आउट फ़ंक्शंस करता है साइन-इन और साइनइन-साइनअप नीतियां और EditProfile नीति का उपयोग करके प्रोफ़ाइल संपादित करें। "

नोट: इस उत्तर कार्यक्षमता "पूर्वावलोकन"

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