Stosowanie najlepszych rozwiązań w programie Microsoft Graph
W tej lekcji opisano najlepsze rozwiązania, które można zastosować, aby jak najlepiej wykorzystać program Microsoft Graph i zwiększyć niezawodność aplikacji dla użytkowników końcowych.
Uwierzytelnianie
Aby uzyskać dostęp do danych w programie Microsoft Graph, aplikacja musi uzyskać token dostępu OAuth 2.0 i przedstawić go programowi Microsoft Graph w jednej z następujących metod:
- Nagłówek żądania autoryzacji HTTP jako token elementu nośnego
- Konstruktor klienta programu Graph w przypadku korzystania z biblioteki klienta programu Microsoft Graph
Użyj interfejsu API biblioteki uwierzytelniania firmy Microsoft, biblioteki MSAL, aby uzyskać token dostępu do programu Microsoft Graph.
Zgoda i autoryzacja
Zastosuj następujące najlepsze rozwiązania dotyczące zgody i autoryzacji w aplikacji:
Użyj najniższych uprawnień. Żądaj tylko niezbędnych uprawnień i tylko wtedy, gdy są one potrzebne. W przypadku interfejsów API wywołania aplikacji sprawdzają sekcję uprawnień w tematach metody. Zobacz na przykład tworzenie użytkownika i wybieranie najmniej uprzywilejowanych uprawnień.
Użyj poprawnego typu uprawnień na podstawie scenariuszy. Jeśli tworzysz interaktywną aplikację, w której znajduje się zalogowany użytkownik, aplikacja powinna używać delegowanych uprawnień. Jeśli jednak aplikacja działa bez zalogowanego użytkownika, takiego jak usługa w tle lub demon, aplikacja powinna używać uprawnień aplikacji.
Uwaga
Korzystanie z uprawnień aplikacji w scenariuszach interaktywnych może narażać aplikację na ryzyko zgodności i zabezpieczeń. Pamiętaj, aby sprawdzić uprawnienia użytkownika, aby upewnić się, że nie ma niepożądanego dostępu do informacji lub czy zasady obrzezania są konfigurowane przez administratora.
Weź pod uwagę środowisko użytkownika końcowego i administratora. Ma bezpośredni wpływ na środowisko użytkownika końcowego i administratora. Na przykład:
Zastanów się, kto wyraża zgodę na twoją aplikację, użytkowników końcowych lub administratorów, i skonfiguruj aplikację w celu odpowiedniego żądania uprawnień.
Upewnij się, że rozumiesz różnicę między wyrażeniem zgody statycznej, dynamicznej i przyrostowej.
Rozważ zastosowanie aplikacji wielodostępnych. Oczekują, że klienci będą mieć różne mechanizmy kontroli aplikacji i zgody w różnych stanach. Na przykład:
Administratorzy dzierżawy mogą wyłączyć możliwość wyrażania zgody przez użytkowników końcowych na aplikacje. W takim przypadku administrator musi wyrazić zgodę w imieniu swoich użytkowników.
Administratorzy dzierżawy mogą ustawić niestandardowe zasady autoryzacji, takie jak blokowanie użytkownikom odczytywania profilów innych użytkowników lub ograniczanie tworzenia grup samoobsługi do ograniczonego zestawu użytkowników. W takim przypadku aplikacja powinna oczekiwać obsługi odpowiedzi o błędzie 403 podczas działania w imieniu użytkownika.
Skuteczne obsługa odpowiedzi
W zależności od żądań wysyłanych do programu Microsoft Graph aplikacje powinny być przygotowane do obsługi różnych typów odpowiedzi. Poniżej przedstawiono niektóre z najważniejszych rozwiązań, które należy zastosować, aby upewnić się, że aplikacja działa niezawodnie i przewidywalnie dla użytkowników końcowych. Na przykład:
Stronicowanie: podczas wykonywania zapytań dotyczących kolekcji zasobów należy oczekiwać, że program Microsoft Graph zwraca zestaw wyników na wielu stronach ze względu na limity rozmiaru strony po stronie serwera. Aplikacja powinna zawsze obsługiwać możliwość stronicowania odpowiedzi i użyć
@odata.nextLink
właściwości , aby uzyskać następny stronicowany zestaw wyników, dopóki wszystkie strony zestawu wyników nie zostaną odczytane. Ostatnia strona nie zawiera@odata.nextLink
właściwości. Aby uzyskać więcej informacji, odwiedź stronę stronicowania.Ewoluowalne wyliczenia: dodawanie elementów członkowskich do istniejących wyliczeń może uszkodzić aplikacje już korzystające z tych wyliczenia. Ewoluowalne wyliczenia to mechanizm używany przez interfejs API programu Microsoft Graph do dodawania nowych elementów członkowskich do istniejących wyliczenia bez powodowania zmiany powodującej niezgodność dla aplikacji. Domyślnie operacja GET zwraca tylko znane elementy członkowskie dla właściwości ewoluowalnych typów wyliczenia, a aplikacja musi obsługiwać tylko znane elementy członkowskie. Jeśli projektujesz aplikację tak, aby obsługiwała również nieznane elementy członkowskie, możesz wyrazić zgodę na odbieranie tych członków przy użyciu nagłówka żądania HTTP
Prefer
.
Przechowywanie danych lokalnie
Aplikacja powinna w idealnym przypadku wykonywać wywołania do programu Microsoft Graph w celu pobierania danych w czasie rzeczywistym w miarę potrzeb. W konkretnym scenariuszu należy buforować lub przechowywać dane lokalnie niezbędne. Jeśli ten przypadek użycia jest objęty warunkami użytkowania i zasadami ochrony prywatności i nie narusza warunków użytkowania interfejsów API firmy Microsoft, aplikacja powinna również zaimplementować odpowiednie zasady przechowywania i usuwania.