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.

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+d320620c-3d56-42bc-bc45-4cdd85c41f00%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