2016-01-13 9 views
15

मैं Azure AD के लिए सही ढंग से करने के लिए OAuth2 वर्कफ़्लो प्राप्त करने का प्रयास कर रहा हूं। मैं इस स्रोत से निर्देशों का पालन कर रहा हूँ: https://login.microsoftonline.com/[app-endpoint-id]/oauth2/authorize?response_type=code&client_id=[client-id]&redirect_uri=[redirect-uri]Azure AD के साथ OAuth2 - उपयोगकर्ता सहमति नहीं मिल रहा है

मैं तो इतना की तरह एक http पोस्ट के साथ पहुंच टोकन का अनुरोध करने के प्राधिकरण कोड का उपयोग करें: https://msdn.microsoft.com/en-us/library/azure/dn645542.aspx

मैं सफलतापूर्वक इस अनुरोध का उपयोग करके एक प्राधिकरण कोड प्रतिक्रिया प्राप्त कर सकते हैं (मैं इस डाकिया का उपयोग कर परीक्षण कर रहा हूँ):

पोस्ट/[एप्लिकेशन-endpoint-id]/OAuth2/टोकन HTTP/1.1 मेजबान: login.microsoftonline.com कैश-नियंत्रण: नहीं कैश डाकिया-टोकन: ed098281-9aa4-6e5f-915d-0253d9a876d3 सामग्री-प्रकार: आवेदती/पर एक्स-www फार्म-urlencoded

grant_type = authorization_code & client_id = [क्लाइंट id] & कोड = [authorization_code] & redirect_uri = [redirect_uri] & client_secret = [ग्राहक गुप्त] & संसाधन = [app- यूआरएल]

मुझे POST अनुरोध से निम्न त्रुटि संदेश मिलता है: {"त्रुटि": "अमान्य_ग्रेंट", "त्रुटि_डिस्क्रिप्शन": "AADSTS65001: उपयोगकर्ता या व्यवस्थापक ने आईडी 'ऐप के साथ एप्लिकेशन का उपयोग करने के लिए सहमति नहीं दी है। आईडी '। इस उपयोगकर्ता और संसाधन के लिए एक इंटरैक्टिव प्राधिकरण अनुरोध भेजें। \ R \ n ट्रेस आईडी: trace-di \ r \ n सहसंबंध आईडी: सहसंबंध-आईडी \ r \ n टिमस्टैम्प: 2016-01-13 17: 18: 39Z "," error_codes ": [65001], "टाइमस्टैम्प": "2016-01-13 17: 18: 3 9जेड", "trace_id": "ट्रेस-आईडी", "correlation_id": "सहसंबंध-आईडी"}

यदि मैं अपना कैश साफ़ करता हूं और प्राधिकरण कोड के लिए पहला अनुरोध करें, मुझे लॉग इन करने के लिए रीडायरेक्ट किया जाएगा। हालांकि, मुझे लॉग इन करने के बाद मेरे ऐप को अधिकृत करने का कोई तरीका नहीं है, जैसा कि यह कहता है कि मुझे इस दस्तावेज़ में होना चाहिए:

// azure। microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/

मैं यहाँ क्या गलत कर रहा हूं? मैं कोशिश करने की कोशिश कर रहा हूं एक पहुंच टोकन।

+0

आप विशेष रूप से क्या करने की कोशिश कर रहे हैं? यानी आप एएडी या मोबाइल एप के साथ काम कर रहे वेबएपीआई ऐप को किस भाषा में प्राप्त करने की कोशिश कर रहे हैं? – theadriangreen

+0

मैं जावा में एएडी के साथ काम कर रहे एक वेबएपीआई ऐप प्राप्त करने की कोशिश कर रहा हूं। – Spensaur

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है लेकिन मैं PHP का उपयोग कर रहा हूं। –

उत्तर

9

आप जिस समस्या का सामना कर रहे हैं वह यह है कि आपके द्वारा उपयोग किए जाने वाले किरायेदार ने आपके आवेदन को समर्थित अनुप्रयोगों की सूची में नहीं जोड़ा है। यह आपको एक प्रशासक के रूप में इंटरैक्टिव प्रवाह का उपयोग करने के लिए कह रहा है।

1) सबसे पहले, किरायेदार के व्यवस्थापक एप्लिकेशन स्वीकार करना चाहिए:

सहमति की प्रक्रिया दो चरणों है। इस किरायेदार एप्लिकेशन या 2) एप्लिकेशन आपके द्वारा प्रवेश के खिलाफ एप्लिकेशन को लॉन्च करने और व्यवस्थापक क्रेडेंशियल्स का उपयोग करके उपयोग करने के इच्छुक के Azure पोर्टल में या तो 1) किया जा सकता है Azure पोर्टल अनुमोदन के

उदाहरण:।

2) दूसरा, किसी भी अतिरिक्त उपयोगकर्ता (गैर व्यवस्थापक) जब पहली बार इस एप्लिकेशन उपयोग करने के बाद व्यवस्थापक सहमति दी है कि एप्लिकेशन इस्तेमाल किया जा सकता अपनी व्यक्तिगत जानकारी के लिए सहमति के लिए बढ़ावा दिया जाएगा।

+0

धन्यवाद! किसी कारण से मैं इंप्रेशन के तहत था कि मैं एक व्यवस्थापक था क्योंकि मैंने ऐप बनाया लेकिन आपकी पोस्ट ने मुझे एहसास दिलाया कि मैं नहीं था। इससे पहले कि मैंने अपना प्रश्न यहां पोस्ट करने से पहले किरायेदार ऐप के एज़ूर पोर्टल में वास्तव में पहले ही दी गई अनुमतियां दी हैं, जिसने मुझे विश्वास दिलाया कि मुझे व्यवस्थापक अनुमतियां थीं। – Spensaur

+3

अपडेट - मैं एक व्यवस्थापक खाते से लॉग इन करने में सक्षम था और मुझे सहमति के लिए कहा गया था। बाद में मुझे पहुंच टोकन मिला। उसी व्यवस्थापक खाते के साथ मैंने Azure पोर्टल पर अनुमतियों की जांच की और सुनिश्चित किया कि किरायेदार को अनुमति है और उसने किया था। लेकिन एक गैर-व्यवस्थापक उपयोगकर्ता के साथ पहुंच टोकन प्राप्त करने का प्रयास करते समय भी मैं एक ही त्रुटि में चला जाता हूं। मेरे पास उपयोगकर्ता असाइनमेंट आवश्यक है जो सेट पर सेट है। लेकिन मैंने अपने उपयोगकर्ता खाते को वैसे भी असाइन किया था। साइन-इन करने के बाद गैर-व्यवस्थापक उपयोगकर्ता के लिए अनुमतियों को तुरंत प्राप्त करने के लिए मुझे कुछ भी करने की ज़रूरत है? – Spensaur

+0

जब मैं एक अलग गैर-व्यवस्थापक उपयोगकर्ता खाता आज़माता हूं जो मेरा नहीं है। मुझे निम्न संदेश मिलता है: क्षमा करें, लेकिन हमें आपको साइन इन करने में समस्या हो रही है। हमें एक बुरा अनुरोध प्राप्त हुआ। अतिरिक्त तकनीकी जानकारी: AADSTS90093: यह ऑपरेशन केवल एक व्यवस्थापक द्वारा किया जा सकता है। साइन आउट करें और व्यवस्थापक के रूप में साइन इन करें या अपने संगठन के व्यवस्थापकों में से किसी एक से संपर्क करें। – Spensaur

2

पोस्ट अनुरोध में संसाधन को 'https://graph.windows.net' के रूप में देने का प्रयास करें।

यह मेरे लिए काम किया।

+1

यह काम करता है। ध्यान दें कि एक सुरक्षित एपीआई को https://stackoverflow.com/questions/44466189/oauth2-resource-owner-password-grant-via-api/44539932#44539932 के अनुसार graph.windows.net को शामिल करने के लिए कॉन्फ़िगर किए गए अनुमत ऑडियंस की आवश्यकता होगी – Sentinel

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