2017-10-27 64 views
6

के साथ समस्या मुझे Azure प्रमाणीकरण के साथ एक अजीब समस्या है। यह एक परिदृश्य में काम करता है (अदल का उपयोग करके एक कोणीय ऐप के साथ लॉग इन करना) लेकिन एक दूसरे में नहीं (एएसपीनेट वेब एपीआई लोड करना और swagger ui प्राधिकृत तंत्र के माध्यम से लॉग इन करना)। मैं करने के लिए एक पोस्ट करने के लिए नीचे यह संकुचित है:Azure AD B2C OAuth/OpenIdConnect

https://login.microsoftonline.com/te/{tenantid}/oauth2/authresp 

endpoint जो बल्कि unhelpfully रिटर्न:

302 

<html> 
<head> 
    <title>Object moved</title></head> 
    <body> 
    <h2>Object moved to <a href="http://localhost:49919/swagger/ui/oauth2redirect-html#error=server_error&amp;error_description=AADB2C%3a+An+exception+has+occured.%0d%0aCorrelation+ID%3a+1816d2f8-aa74-4433-a7c0-d9c8fabebdb0%0d%0aTimestamp%3a+2017-10-27+13%3a46%3a08Z%0d%0a&amp;state={ommitted}">here</a>.</h2> 
</body> 
</html> 

मूल रूप से मुझे एक अपवाद कह आ गई है।

error_description = AADB2C एक अपवाद हुआ है।

CorrelationID = 1816d2f8-aa74-4433-a7c0-d9c8fabebdb0

टाइमस्टैम्प = 2017-10-27 13:46:08

कोणीय एप्लिकेशन, ठीक उसी पोस्ट करता है, लेकिन वह फिर भी एक लिंक देता है टोकन आईडी के साथ:

302 

<html> 
    <head> 
    <title>Object moved</title> 
    </head> 
    <body> 
    <h2>Object moved to <a href="http://localhost:4200/#state={state - 
    ommitted}&amp;id_token={id token - omitted}">here</a>. 
    </h2> 
    </body> 
</html> 

मुझे पदों में कोई अंतर नहीं दिख रहा है। यह एक काम नहीं करता है

POST https://login.microsoftonline.com/te/{tenant - omitted}/oauth2/authresp HTTP/1.1 
Host: login.microsoftonline.com 
Connection: keep-alive 
Content-Length: 1595 
Cache-Control: max-age=0 
Origin: https://login.microsoftonline.com 
Upgrade-Insecure-Requests: 1 
Content-Type: application/x-www-form-urlencoded 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
DNT: 1 
Referer: https://login.microsoftonline.com/{tenant - omitted}/oauth2/authorize?client_id={clientid - omitted}&redirect_uri=https:%2f%2flogin.microsoftonline.com%2fte%2f{tenant - omitted}%2foauth2%2fauthresp&response_type=id_token&response_mode=form_post&nonce={nonce}&state=StateProperties 
Accept-Encoding: gzip, deflate, br 
Accept-Language: en-GB,en;q=0.9,de-CH;q=0.8,de;q=0.7,fr-CH;q=0.6,fr;q=0.5,it-CH;q=0.4,it;q=0.3 
Cookie: {cookie - omitted}=; x-ms-gateway-slice=005; stsservicecookie=cpim_te 

id_token={omitted} 

(वेब ​​एपीआई परियोजना पर अकड़ ui से शुरू) लेकिन इस पोस्ट करता है:

POST https://login.microsoftonline.com/te/{tenant - omitted}/oauth2/authresp HTTP/1.1 
Host: login.microsoftonline.com 
Connection: keep-alive 
Content-Length: 1590 
Cache-Control: max-age=0 
Origin: https://login.microsoftonline.com 
Upgrade-Insecure-Requests: 1 
Content-Type: application/x-www-form-urlencoded 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
DNT: 1 
Referer: https://login.microsoftonline.com/{tenant - omitted}/oauth2/authorize?client_id={clientid - omitted}&redirect_uri=https:%2f%2flogin.microsoftonline.com%2fte%2f{tenant - omitted}%2foauth2%2fauthresp&response_type=id_token&response_mode=form_post&nonce={nonce}&state=StateProperties 
Accept-Encoding: gzip, deflate, br 
Accept-Language: en-GB,en;q=0.9,de-CH;q=0.8,de;q=0.7,fr-CH;q=0.6,fr;q=0.5,it-CH;q=0.4,it;q=0.3 
Cookie: {cookie - omitted}; x-ms-gateway-slice=003; stsservicecookie=cpim_te 

id_token={omitted} 

पदों के रूप में काफी समान मुद्दा या तो कुकी में कहीं झूठ चाहिए या आईडी टोकन (जिसे मैं सुरक्षा कारणों से आपूर्ति नहीं कर सकता)। दोनों अनुरोधों से आईडी टोकन को http://www.jwt.io में चिपकाकर मुझे दोनों में मौजूद सही दावों के साथ एक ही जानकारी मिलती है। तो मैं थोड़ा फंस गया हूं और आशा करता हूं कि एज़ूर टीम से कोई भी कदम उठा सकता है और मदद कर सकता है?

बहुत धन्यवाद

+0

क्या आपके पास कोई पृष्ठ या अनुरोध यूआरएल है जिसे आप दोनों मामलों के लिए साझा कर सकते हैं? यदि नहीं, तो क्या आप अनुरोध URL को एक फिडलर अनुरोध से प्राप्त कर सकते हैं और दोनों मामलों के लिए भी प्रदान कर सकते हैं भले ही वह स्थानीयहोस्ट को लक्षित कर रहा हो? –

+0

हां मैं फिडलर से पूर्ण अनुरोध प्रदान कर सकता हूं लेकिन मैं उन्हें यहां पोस्ट नहीं कर सकता क्योंकि उनमें संवेदनशील जानकारी – Magrangs

+0

@OmerIqbal मैंने आपको LinkedIn पर जोड़ा है, अगर आप मुझे संदेश दे सकते हैं तो हम आपको यह अनुरोध कैसे प्राप्त कर सकते हैं। धन्यवाद – Magrangs

उत्तर

1

आपके अनुरोध के नमूनों में रेफरर के आधार पर यह आपको बुला रहा नहीं कर रहे हैं की तरह /v2.0/ बी 2 सी endpoint लग रहा है। उदाहरण के लिए, निम्न अनुरोध में, पथ/{किरायेदार}/OAuth2/v2.0/अधिकृत करते हैं ...

https://login.microsoftonline.com/{tenant}/oauth2/authorize?client_id={clientid}&redirect_uri=https:%2f%2flogin.microsoftonline.com%2fte%2f{tenant}%2foauth2%2fauthresp&response_type=id_token&response_mode=form_post&nonce={nonce}&state=StateProperties 

कारण यह करने के लिए किया जाना चाहिए, आप दोनों में आपके एप्लिकेशन में अनपेक्षित व्यवहार हो रही है । इसका यह भी अर्थ है कि आपके द्वारा उपयोग किए जा रहे एप्लिकेशन B2C पोर्टल का उपयोग नहीं किए गए थे (हमने इसे हमारे ऑफ़लाइन चैट के माध्यम से भी सत्यापित किया है)।

अभी तक, बी 2 सी केवल बी 2 सी पोर्टल के माध्यम से बनाए गए अनुप्रयोगों का समर्थन करता है। इसलिए, यदि आप कृपया बी 2 सी पोर्टल के माध्यम से आवेदन कर सकते हैं, और पुनः प्रयास करें, तो आपको यह समस्या हल होनी चाहिए।

+0

ऐसा लगता है कि यह हमारी समस्या का समाधान कर चुका है। – Magrangs

+0

जब हमने पहली बार ऐप पंजीकरण बनाया था तो वे v1 endpoint पर बनाए गए थे। ओमर द्वारा वर्णित बी 2 सी पोर्टल पर ऐप बनाने के लिए यह चाल थी। फिर आप यूआरएल को देखने के लिए 'अभी आज़माएं' बटन का उपयोग कर सकते हैं जिसे आपको कॉल करना चाहिए। – Magrangs

+0

यह भी सुनिश्चित करें कि आपका वेब एपीआई कॉन्फ़िगरेशन v2.0 नीति एंडपॉइंट का उपयोग करता है। यानी https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1} (जहां आपका किरायेदार है और 1 आपकी नीति है) – Magrangs

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