2014-09-29 18 views
7

Mamy stronę internetową (zbudowaną na szkielecie php), w której udostępniamy narzędzia edukacyjne dla nauczycieli/uczniów. Zrobiliśmy integrację OAuth z witryną google.com, na której użytkownicy mogą "rejestrować się" i "logować się" do naszej witryny za pomocą swoich kont Google (może to być osobiste konto Gmail lub członek domeny Google Apps).Integracja OAuth z O365 kończy się niepowodzeniem z błędem AADSTS65005

Staramy się przeprowadzić podobną integrację z O365, gdzie nasza strona internetowa może poprosić O365 o e-mail i imię/nazwisko użytkownika, abyśmy mogli utworzyć dla nich konto na naszej stronie, a po utworzeniu konta zaloguj się Stworzyliśmy listę aplikacji na Azure -> Active Directory i wygenerowaliśmy identyfikator klienta oraz tajny klucz i podłączymy go do kodu PHP. Przepływ pracy OAuth described here działa aż do momentu, w którym próbuję zażądać tokenu dostępu przy użyciu żądania POST pod numerem https://login.windows.net/common/oauth2/token. Przekierowuje z powrotem do mojego redirect_uri ale zamiast dać mi kod uwierzytelniający, to daje mi te params w 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 

Wszystko, co potrzebne jest dla O365 dać mi nazwy e-mail i f/l użytkownika. Z pewnością jest szybka naprawa tego, czego mi brakuje?

Odpowiedz

11

Domyślnie zarejestrowana aplikacja jest skonfigurowana do żądania "Odczytaj profil użytkownika", który po wyrażeniu zgody przez użytkownika pozwala aplikacji na pobranie tokena użytkownika (identyfikator token przy użyciu OpenID Connect) i odczytanie zalogowanego użytkownika profil użytkownika (w tym jego adres e-mail lub adresy) podczas dzwonienia pod numer Azure AD Graph API. Aplikacje zabezpieczone przez Azure AD muszą obecnie konfigurować zakresy uprawnień, których potrzebują z góry (w ramach procesu rejestracji aplikacji, w sekcji "Uprawnienia dla innych aplikacji"). Wygląda na to, że podałeś adres Outlook.com jako zasób, dla którego chcesz uzyskać kod i token dostępu, ale Twoja aplikacja nie jest skonfigurowana do zezwalania na dostęp do witryny O365 Outlook.com/Exchange Online.

Spróbuj ustawić zasób w swoim żądaniu na Azure AD - https://graph.windows.net/. Ten powinien pracować dla ciebie. Następnie możesz zamienić kod na token dostępu, aby wywołać interfejs API Azure AD Graph.

Nadzieja to pomaga

+0

Hi Dan Próbowałem przełączania zasobów do https://graph.windows.net/ ale teraz jestem przedstawiane z tego błędu: AADSTS50001: http zasobów”: // wykres. Windows.net/ "nie jest zarejestrowany dla konta. Na koniec konfiguracji aplikacji, wszystko co widzę jako opcje na pozwolenie są takie:! [uprawnienia] (http://i.imgur.com/Jha9O1O.png) Dzięki! – user2950957

+0

Udało mi się teraz sprawić, że działa. Twoja odpowiedź była prawidłowa. Musiałem zmienić adres URL na https zamiast http. – user2950957

+0

Gdybym mógł przegłosować milion razy, zrobiłbym! –

Powiązane problemy