Zgoda administratora na platformie tożsamości firmy Microsoft
Niektóre uprawnienia wymagają zgody administratora przed udzieleniem im zgody w ramach dzierżawy. Możesz również użyć punktu końcowego zgody administratora, aby udzielić uprawnień całej dzierżawie.
Zalecane: logowanie użytkownika do aplikacji
Zazwyczaj podczas tworzenia aplikacji korzystającej z punktu końcowego zgody administratora aplikacja potrzebuje strony lub widoku, w którym administrator może zatwierdzić uprawnienia aplikacji. Ta strona może być częścią przepływu rejestracji aplikacji, części ustawień aplikacji lub może być dedykowanym przepływem "połącz". W wielu przypadkach warto wyświetlić ten widok "połącz" tylko po zalogowaniu się użytkownika przy użyciu konta Microsoft służbowego.
Po zalogowaniu użytkownika do aplikacji możesz zidentyfikować organizację, do której należy administrator, przed prośbą o zatwierdzenie niezbędnych uprawnień. Chociaż nie jest to ściśle konieczne, może to pomóc w utworzeniu bardziej intuicyjnego środowiska dla użytkowników organizacji.
Żądanie uprawnień od administratora katalogu
Gdy wszystko będzie gotowe do żądania uprawnień od administratora organizacji, możesz przekierować użytkownika do punktu końcowego zgody administratora Platforma tożsamości Microsoft.
https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
?client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&redirect_uri=http://localhost/myapp/permissions
&state=12345
Parametr | Warunek | opis |
---|---|---|
tenant |
Wymagania | Dzierżawa katalogu, z której chcesz zażądać uprawnień. Można podać w formacie GUID lub przyjaznej nazwy LUB w sposób ogólny przywoływny organizations , jak pokazano w przykładzie. Nie używaj wartości "common", ponieważ konta osobiste nie mogą wyrazić zgody administratora, z wyjątkiem kontekstu dzierżawy. Aby zapewnić najlepszą zgodność z kontami osobistymi, które zarządzają dzierżawami, użyj identyfikatora dzierżawy, jeśli to możliwe. |
client_id |
Wymagania | Identyfikator aplikacji (klienta) przypisany do aplikacji przez centrum administracyjne firmy Microsoft — Rejestracje aplikacji. |
redirect_uri |
Wymagania | Identyfikator URI przekierowania, w którym ma zostać wysłana odpowiedź do obsługi aplikacji. Musi dokładnie odpowiadać jednemu z identyfikatorów URI przekierowania zarejestrowanych w portalu rejestracji aplikacji. |
state |
Zalecane | Wartość uwzględniona w żądaniu, która zostanie również zwrócona w odpowiedzi tokenu. Może to być ciąg dowolnej zawartości. Użyj stanu, aby zakodować informacje o stanie użytkownika w aplikacji przed wystąpieniem żądania uwierzytelnienia, takie jak strona lub widok, na której się znajdowały. |
scope |
Wymagania | Definiuje zestaw uprawnień żądanych przez aplikację. Może to być statyczne (przy użyciu /.default ) lub zakresy dynamiczne. Może to obejmować zakresy OIDC (openid , profile , email ). |
W tym momencie identyfikator Entra firmy Microsoft wymaga od administratora dzierżawy zalogowania się w celu ukończenia żądania. Administrator zostanie poproszony o zatwierdzenie wszystkich wymaganych uprawnień w parametrze scope
. Jeśli użyto wartości statycznej (/.default
), będzie ona działać jak punkt końcowy zgody administratora w wersji 1.0 i zażąda zgody dla wszystkich zakresów znalezionych w wymaganych uprawnieniach (zarówno użytkownik, jak i aplikacja). Aby zażądać uprawnień aplikacji, należy użyć /.default
wartości . Jeśli nie chcesz, aby administratorzy widzieli podane uprawnienie na ekranie zgody administratora przez cały czas, gdy używasz /.default
, najlepszym rozwiązaniem jest nie umieszczenie uprawnień w sekcji wymaganych uprawnień. Zamiast tego możesz użyć dynamicznej zgody, aby dodać uprawnienia, które mają znajdować się na ekranie zgody w czasie wykonywania, zamiast używać polecenia /.default
.
Odpowiedź pomyślna
Jeśli administrator zatwierdzi uprawnienia aplikacji, pomyślna odpowiedź wygląda następująco:
http://localhost/myapp/permissions
?admin_consent=True
&tenant=aaaabbbb-0000-cccc-1111-dddd2222eeee
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&state=12345
Parametr | Opis |
---|---|
tenant |
Dzierżawa katalogu, która przyznała aplikacji żądane uprawnienia, w formacie GUID. |
state |
Wartość uwzględniona w żądaniu, która również zostanie zwrócona w odpowiedzi tokenu. Może to być ciąg dowolnej zawartości. Stan jest używany do kodowania informacji o stanie użytkownika w aplikacji przed wystąpieniem żądania uwierzytelnienia, na przykład strony lub widoku, na której się znajdowały. |
scope |
Zestaw uprawnień, do których udzielono dostępu, dla aplikacji. |
admin_consent |
Zostanie ustawiona wartość True . |
Ostrzeżenie
Nigdy nie używaj wartości identyfikatora dzierżawy parametru tenant
do uwierzytelniania lub autoryzacji użytkowników. Wartość identyfikatora dzierżawy można zaktualizować i wysłać przez złych aktorów, aby personifikować odpowiedź na aplikację. Może to spowodować uwidocznienie aplikacji na zdarzenia zabezpieczeń.
Odpowiedź błędna
http://localhost/myapp/permissions
?admin_consent=True
&error=consent_required
&error_description=AADSTS65004%3a+The+resource+owner+or+authorization+server+denied+the+request.%0d%0aTrace+ID%3a+0000aaaa-11bb-cccc-dd22-eeeeee333333%0d%0aCorrelation+ID%3a+8478d534-5b2c-4325-8c2c-51395c342c89%0d%0aTimestamp%3a+2019-09-24+18%3a34%3a26Z
&state=12345
Dodanie do parametrów widocznych w pomyślnej odpowiedzi, parametry błędu są widoczne jak poniżej.
Parametr | Opis |
---|---|
error |
Ciąg kodu błędu, który może służyć do klasyfikowania typów występujących błędów i może służyć do reagowania na błędy. |
error_description |
Określony komunikat o błędzie, który może pomóc deweloperowi zidentyfikować główną przyczynę błędu. |
state |
Wartość uwzględniona w żądaniu, która również zostanie zwrócona w odpowiedzi tokenu. Może to być ciąg dowolnej zawartości. Stan jest używany do kodowania informacji o stanie użytkownika w aplikacji przed wystąpieniem żądania uwierzytelnienia, na przykład strony lub widoku, na której się znajdowały. |
admin_consent |
Zostanie ustawiona wartość , aby wskazać True , że ta odpowiedź wystąpiła w przepływie zgody administratora. |
Następne kroki
- Zobacz , jak przekonwertować aplikację na wielodostępną
- Dowiedz się, jak zgoda jest obsługiwana w warstwie protokołu OAuth 2.0 podczas przepływu udzielania kodu autoryzacji.
- Dowiedz się , jak aplikacja wielodostępna może używać platformy wyrażania zgody do implementowania zgody "użytkownik" i "administrator", obsługując bardziej zaawansowane wzorce aplikacji wielowarstwowych.
- Omówienie środowisk wyrażania zgody aplikacji Entra firmy Microsoft