2017-10-11 13 views
7

Mam utworzoną aplikację w https://apps.dev.microsoft.com (platformy: Web)Microsoft Graph API - AADSTS90094: Dotacja wymaga uprawnień administratora

Ta aplikacja wymaga zgody administratora dla niektórych uprawnień. Pamiętam, w przeszłości, dostęp do https://login.microsoftonline.com/{tenant name}/adminconsent?client_id={application id}&state={some state data}&redirect_uri={redirect uri} z kontem administratora, aby dać uprawnienia dostępu do zasobów w naszej organizacji, które może udzielić tylko administrator. Stamtąd użytkownicy musieli wyrazić zgodę na poziomie użytkownika, aby móc korzystać z aplikacji.

Teraz mogę z powodzeniem zalogować się przy użyciu konta administratora, a aplikacja działa zgodnie z oczekiwaniami, ale wciąż uzyskać monit, dla użytkowników, z następującym komunikatem:

You can't access this application APP NAME needs permission to access resources in your organization that only an admin can grant. Please ask an admin to grant permission to this app before you can use it.

Have an admin account? Sign in with that account

Return to the application without granting consent

komunikat o błędzie jest: AADSTS90094: The grant requires admin permission. które nie wydają się być udokumentowane gdziekolwiek ..

Jeśli kliknę na Have an admin account? Sign in with that account i zaloguję się na konto administratora, to działa, ale próbuję ponownie, używając zwykłego konta użytkownika, otrzymam powyższy komunikat ponownie.

enter image description here

EDIT: więc pozbawiony uprawnienia do minimum. celownicze w mojej aplikacji są teraz: openid, profile, user.read i Microsoft Graph Uprawnienia są teraz na delegowanych uprawnień: Mail.Send, User.Read. Nic w Uprawnienia aplikacji i NADALĘ otrzymuję powyższą wiadomość dla zwykłych użytkowników! Ktoś z Microsoft ma jakieś informacje na temat kodu błędu AADSTS90094?

+0

Właśnie badam ten sam problem dla mojej aplikacji dla wielu dzierżawców. Znalazłeś coś jeszcze? – sergej

+0

Cześć @sergej, nic jeszcze niestety. Zajęło to najlepszą część mojego dnia. Nie jestem pewien, co zmieniło się w ciągu ostatnich kilku miesięcy, podobna aplikacja z podobnymi prawami działała po jednorazowej decyzji administratora. Wygląda na to, że zgoda administratora nie ma żadnego skutku i użytkownicy nie mogą się połączyć. –

+0

Czy mógłbyś pokazać uprawnienia dodane do interfejsu graficznego? –

Odpowiedz

1

OK, więc skontaktowałem się z pomocą techniczną firmy Microsoft, ponieważ od tej daty nie ma informacji o tym komunikacie o błędzie.

Krótko mówiąc, Microsoft wprowadził kilka ostatnich zmian dotyczących uprawnień. W przeszłości, jeśli Twoja aplikacja wymagała jednego z openid, lub offline_access, możesz po prostu umieścić je w swojej aplikacji jako zakresy, nie były one dostępne pod numerem https://apps.dev.microsoft.com. Administrator wyraziłby zgodę, a Twoja aplikacja działałaby prawidłowo.

Co należy teraz zrobić, to lustro zakresy Twojej aplikacji z uprawnieniami masz na https://apps.dev.microsoft.com albo będziesz utrzymać się, że komunikat o błędzie, więc upewnij się, że masz samo obustronnie teraz, zwłaszcza jeśli jesteś przyzwyczajony do starego zachowania.

Tych trzech zakresach/uprawnienia (openid, profile i offline_access) może być teraz wybrany dla swojej aplikacji na portalu dev.

+0

Czy możesz dodać trochę szczegółów na temat tego, co masz na myśli, dodając "Zakresy" do swojej aplikacji? – Sam

+1

Witam @Sam. Pewnie. Aby odzyskać token dostępu, musisz przesłać kilka zakresów wraz z żądaniem. Zostaną użyte w adresie URL podobnym do: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?state=TDDBBAE9x40TQ4JKFHOSA&scope=openid+profile+user.read+mail.readwrite+mail. wyślij + offline_access [...] '. Zwróć uwagę na 'openid',' profil', 'user.read' itd .., to są zakresy. To, co ostatnio zmieniło MS, to to, że teraz trzeba mieć te same zasięgi po obu stronach, aplikacji, a także w 'https: // apps.dev.microsoft.com'. Nie wahaj się, jeśli potrzebujesz więcej pomocy. –

+0

Dziękujemy za przesłanie wyników tutaj. Mam do czynienia z podobnym problemem i zastanawiam się, czy Twoje rozwiązanie będzie dla mnie skuteczne, ale nie mogę znaleźć interfejsu do definiowania zakresów na https://apps.dev.microsoft.com. Wszystko, co widzę, to edytor pliku manifestu. Czy coś się zmieniło od momentu opublikowania? Wydaje mi się, że ta strona wygląda inaczej ... –

0

Punkt końcowy zgody administratora nie pomaga w przypadku zakresu dynamicznego i scenariusza zgody dynamicznej.

Użycie punktu końcowego zgody administratora spowoduje przyznanie uprawnień zarejestrowanych w portalu rejestracji aplikacji. Możesz znaleźć sekcję Uprawnienia do wykresów Microsoft, a następnie dodać uprawnienia wymagane przez aplikację. Po uzyskaniu zgody administratora przy użyciu punktu końcowego zgody administratora, aplikacja może zbierać uprawnienia dla wszystkich użytkowników najemcy, w tym zakresy ograniczone przez administratora.

+0

Nie potrzebuję zakresu dynamicznego ani zgody. Komunikat pojawia się natychmiast po zalogowaniu użytkownika. Oto, co mam w portalu aplikacji: Delegowane uprawnienia: 'Mail.Send',' User.Read', 'User.ReadBasic.All',' User.Read. Wszystkie (tylko administratorzy) '. Uprawnienia aplikacji: 'Directory.ReadWrite.All (tylko administrator)', 'User.Read.All (tylko administrator)'. Co muszę zmienić? –

+0

Testuję twój scenariusz, wynik jest obecnie dobrze znany (openid, profile, offline_access) prosi o zgodę użytkownika raz po wydaniu zgody administratora. To powinna być domyślna zgoda. Ale nie powtórzyłem twojego scenariusza, że ​​zakres administratora wciąż wymaga zgody użytkownika po wydaniu zgody administratora. –

0

Używam MSAL i punktu końcowego 2.0 (login.microsoft ...), rozwijam aplikację Multi-Tenant.

moja organizacja ma 2 Najemców

Jednym z nich jest w zasadzie nasza Dev instancji (i mam globalne uprawnienia administratora). Zarejestrowałem swoją aplikację w Tenant, że nie mam praw administratora i wykonałem Admin Zgoda dla tej aplikacji na Najemcy, gdzie sam mogę wykonać Zgoda. Moi użytkownicy mogą się logować z powodzeniem i mieć zgodę na zasoby, których potrzebują.

Jednak po utworzeniu rejestracji aplikacji (wszystkie aplikacje konwergentne na apps.dev.mic) z konta, na którym mam uprawnienia administratora globalnego, login dla moich użytkowników otrzymuje numer AADSTS90094 Error.

Jedynym sposobem Doszedłem do „rozwiązać” ten błąd jest

Na pierwszym logowaniu do aplikacji zakres byłby openid wówczas użytkownik wyraża zgodę na to, że po zakończeniu muszę zrobić kolejny zaloguj się z zakresem zdefiniowanym dla aplikacji i wszystko działa. Oczywiście, że UX jest co najmniej dziwaczny.

+1

Proszę sformatować swoją odpowiedź lepiej, bardzo trudno jest wydestylować informacje, które są pomocne, podczas gdy OP może faktycznie wypróbować coś, co zrobiłeś. Nie musisz opisywać całej konfiguracji i tego, co tworzysz. Po prostu zaproponuj rozwiązanie i wyjaśnij, dlaczego może to pomóc, użyj przecinka, białej spacji i popraw literę. – Glubus

Powiązane problemy