2014-09-29 7 views
7

हमारे पास एक वेबसाइट है (एक PHP ढांचे पर बनाया गया है) जहां हम शिक्षकों/छात्रों के लिए ऑनलाइन शैक्षिक उपकरण प्रदान करते हैं। हमने google.com के साथ एक ओथ एकीकरण किया है जहां उपयोगकर्ता अपने Google खातों का उपयोग करके हमारी साइट पर 'साइन अप' और 'साइन इन' कर सकते हैं (एक निजी जीमेल खाता हो सकता है, या Google Apps डोमेन का सदस्य हो सकता है)।O365 के साथ OAuth एकीकरण त्रुटि के साथ विफल रहता है AADSTS65005

हम O365 के साथ एक समान एकीकरण करने की कोशिश कर रहे हैं, जहां हमारी वेबसाइट उपयोगकर्ता के ईमेल और प्रथम/अंतिम नामों के लिए O365 से पूछ सकती है ताकि हम उनकी साइट पर उनके लिए एक खाता बना सकें, और एक बार खाता बनने के बाद, उन्हें लॉग इन करें हमने Azure -> सक्रिय निर्देशिका में एक एप्लिकेशन सूची बनाई है, और क्लाइंट आईडी और गुप्त उत्पन्न किया है, और उन्हें PHP कोड में प्लग किया है। OAuth वर्कफ़्लो described here उस बिंदु तक काम करता है जहां मैं कोशिश करता हूं और https://login.windows.net/common/oauth2/token पर POST अनुरोध का उपयोग करके एक्सेस टोकन का अनुरोध करता हूं। यह मेरी redirect_uri वापस करने के लिए पुनर्निर्देश लेकिन इसके बजाय मुझे प्रमाणन कोड देने की, यह मेरे URL में इन पैरामीटर देता है:

[error] => access_denied 
[error_description] => AADSTS65005: The client application has requested access to resource 'https://outlook.office365.com/'. This request has failed because the client has not specified this resource in its requiredResourceAccess list. 
Trace ID: xxxxxx 
Correlation ID: xxxxxx 
Timestamp: 2014-09-29 06:28:25Z 
[state] => xxxxxx 

सभी मैं की जरूरत है मुझे उपयोगकर्ता के ईमेल और च/एल नाम देने के लिए O365 के लिए है। निश्चित रूप से इसके लिए एक त्वरित फिक्स है कि मैं याद कर रहा हूँ?

उत्तर

11

डिफ़ॉल्ट रूप से, एक पंजीकृत ऐप को "उपयोगकर्ता की प्रोफ़ाइल पढ़ें" का अनुरोध करने के लिए कॉन्फ़िगर किया गया है, जिसे एक बार उपयोगकर्ता द्वारा सहमति दी जाती है, ऐप को उपयोगकर्ता टोकन (आईडी टोकन ओपनआईडी कनेक्ट का उपयोग करते हुए) प्राप्त करने की अनुमति देता है और साइन इन किया जाता है Azure AD Graph API पर कॉल करते समय उपयोगकर्ता की प्रोफ़ाइल (उनके मेल पते या पते सहित)। Azure AD द्वारा सुरक्षित किए गए ऐप्स को वर्तमान में उन अनुमति स्कोप्स को कॉन्फ़िगर करना होगा जिन्हें वे आगे की आवश्यकता है (ऐप पंजीकरण अनुभव के हिस्से के रूप में, "अन्य अनुप्रयोगों के लिए अनुमतियां" अनुभाग के अंतर्गत)। यहां ऐसा लगता है कि आपने Outlook.com को उस संसाधन के रूप में निर्दिष्ट किया है जिसे आप एक कोड और एक्सेस टोकन चाहते हैं, लेकिन आपका ऐप O365 Outlook.com/Exchange ऑनलाइन तक पहुंच की अनुमति देने के लिए कॉन्फ़िगर नहीं किया गया है।

कृपया Azure AD - https://graph.windows.net/ पर आपके अनुरोध में संसाधन सेट करने का प्रयास करें। आपके लिए काम करना चाहिए। फिर आप Azure AD Graph API को कॉल करने के लिए एक्सेस टोकन के लिए कोड स्वैप कर सकते हैं।

आशा इस मदद करता है

+0

हाय दान, मैं https://graph.windows.net/ लिए संसाधन परिवर्तित करने का प्रयास किया था, लेकिन अब इस त्रुटि के साथ प्रस्तुत कर रहा हूँ: AADSTS50001: संसाधन 'http: // ग्राफ। windows.net/ 'खाते के लिए पंजीकृत नहीं है। एप्लिकेशन कॉन्फ़िगरेशन अंत पर, मुझे अनुमति के विकल्प के रूप में दिखाई देता है: ! [अनुमतियां] (http://i.imgur.com/Jha9O1O.png) धन्यवाद! – user2950957

+0

अब इसे काम करने में कामयाब रहा है। आपका जवाब सही था। मुझे http के बजाय https का उपयोग करने के लिए यूआरएल स्विच करना पड़ा। – user2950957

+0

अगर मैं दस लाख बार उठा सकता हूं तो मैं चाहता हूं! –

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