Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ostrzeżenie
Ta zawartość dotyczy starszego punktu końcowego usługi Azure AD w wersji 1.0. Użyj platformy tożsamości firmy Microsoft dla nowych projektów.
Aplikacje jednostronicowe (SPA) są zwykle ustrukturyzowane jako warstwa prezentacji Języka JavaScript (fronton), która działa w przeglądarce, oraz zaplecze internetowego interfejsu API, które działa na serwerze i implementuje logikę biznesową aplikacji. Aby dowiedzieć się więcej na temat niejawnego udzielania autoryzacji i pomóc w podjęciu decyzji, czy jest ona odpowiednia dla scenariusza aplikacji, zobacz Opis niejawnego przepływu udzielania OAuth2 w usłudze Azure Active Directory.
W tym scenariuszu, gdy użytkownik się zaloguje, front-end JavaScript używa biblioteki uwierzytelniania usługi Active Directory dla JavaScript (ADAL.JS) i niejawnego przyznania autoryzacji w celu uzyskania tokenu identyfikatora (id_token) z usługi Azure AD. Token jest buforowany i klient dołącza go do żądania jako token elementu nośnego podczas wykonywania wywołań do zaplecza internetowego interfejsu API, który jest zabezpieczony przy użyciu oprogramowania pośredniczącego OWIN.
Schemat
Przepływ protokołu
- Użytkownik przechodzi do aplikacji internetowej.
- Aplikacja zwraca fronton JavaScript (warstwę prezentacji) do przeglądarki.
- Użytkownik inicjuje logowanie, na przykład klikając link logowania. Przeglądarka wysyła żądanie GET do punktu końcowego autoryzacji usługi Azure AD, aby zażądać tokenu identyfikatora. To żądanie zawiera identyfikator aplikacji i adres URL odpowiedzi w parametrach zapytania.
- Usługa Azure AD weryfikuje adres URL odpowiedzi względem zarejestrowanego adresu URL odpowiedzi skonfigurowanego w witrynie Azure Portal.
- Użytkownik loguje się na stronie logowania.
- Jeśli uwierzytelnianie zakończy się pomyślnie, usługa Azure AD utworzy token identyfikatora i zwróci go jako fragment adresu URL (#) do adresu URL odpowiedzi aplikacji. W przypadku aplikacji produkcyjnej ten adres URL odpowiedzi powinien mieć wartość HTTPS. Zwrócony token zawiera oświadczenia dotyczące użytkownika i usługi Azure AD, które są wymagane przez aplikację do zweryfikowania tokenu.
- Kod klienta javaScript uruchomiony w przeglądarce wyodrębnia token z odpowiedzi na użycie w zabezpieczaniu wywołań zaplecza internetowego interfejsu API aplikacji.
- Przeglądarka wywołuje zaplecze API aplikacji, przekazując token identyfikatora w nagłówku autoryzacji. Usługa uwierzytelniania Azure AD wystawia token identyfikatora, który może być używany jako token nosiciela, jeśli zasób jest taki sam jak identyfikator klienta (w tym przypadku jest to prawda, ponieważ interfejs API web jest własnym zapleczem aplikacji).
Przykłady kodu
Zobacz przykłady kodu dla scenariuszy aplikacji jednostronicowych. Pamiętaj, aby często sprawdzać, jak często są dodawane nowe próbki.
Rejestracja aplikacji
- Pojedyncza dzierżawa — jeśli tworzysz aplikację tylko dla swojej organizacji, musi zostać zarejestrowana w katalogu firmy przy użyciu portalu Azure.
- Wiele dzierżaw — jeśli tworzysz aplikację, która może być używana przez użytkowników spoza organizacji, musi być zarejestrowana w katalogu firmy, ale także musi być zarejestrowana w katalogu każdej organizacji, której użytkownicy będą korzystać z aplikacji. Aby udostępnić aplikację w katalogu, możesz dołączyć proces rejestracji dla klientów, który umożliwia im wyrażanie zgody na aplikację. Po zarejestrowaniu się w aplikacji zostanie wyświetlone okno dialogowe z uprawnieniami wymaganymi przez aplikację oraz możliwością wyrażenia zgody. W zależności od wymaganych uprawnień administrator w innej organizacji może być zobowiązany do wyrażenia zgody. Gdy użytkownik lub administrator wyrazi zgodę, aplikacja jest zarejestrowana w katalogu.
Po zarejestrowaniu aplikacji należy ją skonfigurować tak, aby korzystała z niejawnego protokołu udzielania OAuth 2.0. Domyślnie ten protokół jest wyłączony dla aplikacji. Aby włączyć niejawny protokół udzielania OAuth2 dla aplikacji, zmodyfikuj manifest aplikacji w witrynie Azure Portal i ustaw wartość "oauth2AllowImplicitFlow" na true. Aby uzyskać więcej informacji, zobacz Manifest aplikacji.
Wygaśnięcie tokenu
Korzystanie z ADAL.js ułatwia:
- Odświeżanie wygasłego tokenu
- Żądanie tokenu dostępu do zasobu internetowego API
Po pomyślnym uwierzytelnieniu usługa Azure AD zapisuje plik cookie w przeglądarce użytkownika w celu ustanowienia sesji. Zwróć uwagę, że sesja istnieje między użytkownikiem a usługą Azure AD (nie między użytkownikiem a aplikacją internetową). Po wygaśnięciu tokenu ADAL.js używa tej sesji do dyskretnego uzyskania innego tokenu. ADAL.js używa ukrytego elementu iFrame do wysyłania i odbierania żądania przy użyciu niejawnego protokołu udzielania OAuth. ADAL.js można również użyć tego samego mechanizmu, aby dyskretnie uzyskać tokeny dostępu dla innych zasobów API sieciowego, które aplikacja wywołuje, pod warunkiem że te zasoby obsługują udostępnianie zasobów między domenami (CORS), są zarejestrowane w katalogu użytkownika oraz użytkownik wyraził wszelkie wymagane zgody podczas logowania.