Udostępnij za pośrednictwem


Konfigurowanie uwierzytelniania w przykładowej aplikacji Swift dla systemu iOS przy użyciu usługi Azure AD B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

W tym artykule użyto przykładowej aplikacji Swift dla systemu iOS , aby zilustrować sposób dodawania uwierzytelniania usługi Azure Active Directory B2C (Azure AD B2C) do aplikacji mobilnych.

Przegląd

OpenID Connect (OIDC) to protokół uwierzytelniania oparty na protokole OAuth 2.0. Aby bezpiecznie logować użytkowników do aplikacji, możesz użyć funkcji OIDC. Ten przykład aplikacji mobilnej używa Microsoft Authentication Library (MSAL) z autoryzacją OIDC i mechanizmem PKCE (Proof Key for Code Exchange). Biblioteka MSAL to biblioteka udostępniana przez firmę Microsoft, która upraszcza dodawanie obsługi uwierzytelniania i autoryzacji do aplikacji mobilnych.

Przepływ logowania obejmuje następujące kroki:

  1. Użytkownicy otwierają aplikację i wybierają pozycję Zaloguj się.
  2. Aplikacja otwiera przeglądarkę systemową urządzenia przenośnego i uruchamia żądanie uwierzytelnienia w usłudze Azure AD B2C.
  3. Użytkownicy zarejestrują się lub zalogują się, zresetuj hasło lub zalogują się przy użyciu konta społecznościowego.
  4. Po pomyślnym zalogowaniu użytkowników usługa Azure AD B2C zwraca kod autoryzacji do aplikacji.
  5. Aplikacja wykonuje następujące akcje:
    1. Wymienia kod autoryzacji na token identyfikacyjny, token dostępu i token odświeżania.
    2. Odczytuje roszczenia tokenu ID.
    3. Przechowuje tokeny w pamięci podręcznej do późniejszego użycia.

Omówienie rejestracji aplikacji

Aby umożliwić aplikacji logowanie się za pomocą usługi Azure AD B2C i wywoływanie internetowego interfejsu API, zarejestruj dwie aplikacje w katalogu usługi Azure AD B2C:

  • Rejestracja aplikacji mobilnej umożliwia aplikacji logowanie się za pomocą usługi Azure AD B2C. Podczas rejestracji aplikacji określ identyfikator URI przekierowania. Identyfikator URI przekierowania to adres, na który użytkownicy są kierowani przez Azure AD B2C po uwierzytelnieniu. Proces rejestracji aplikacji generuje identyfikator aplikacji, znany również jako identyfikator klienta, który jednoznacznie identyfikuje twoją aplikację mobilną (na przykład identyfikator aplikacji: 1).

  • Rejestracja interfejsu internetowego API umożliwia twojej aplikacji wywoływanie chronionego interfejsu API. Rejestracja uwidacznia uprawnienia internetowego interfejsu API (zakresy). Proces rejestracji aplikacji generuje identyfikator aplikacji, który jednoznacznie identyfikuje internetowy interfejs API (na przykład identyfikator aplikacji: 2). Przyznaj aplikacji mobilnej (identyfikator aplikacji: 1) uprawnienia do zakresów internetowego interfejsu API (identyfikator aplikacji: 2).

Rejestracja i architektura aplikacji przedstawiono na następujących diagramach:

Diagram aplikacji mobilnej z rejestracjami i tokenami wywołań internetowego interfejsu API.

Wezwanie do API sieciowego

Po zakończeniu uwierzytelniania użytkownicy wchodzą w interakcję z aplikacją, która wywołuje chroniony internetowy interfejs API. Internetowy interfejs API używa uwierzytelniania za pomocą tokenu nosiciela. Token elementu nośnego to token dostępu uzyskany przez aplikację z usługi Azure AD B2C. Aplikacja przekazuje token w nagłówku autoryzacji żądania HTTPS.

Authorization: Bearer <access token>

Jeśli zakres tokenu dostępu nie jest zgodny z zakresami internetowego interfejsu API, biblioteka uwierzytelniania uzyskuje nowy token dostępu z poprawnymi zakresami.

Przepływ wylogowania

Przepływ wylogowania obejmuje następujące kroki:

  1. Z aplikacji użytkownicy się wylogowują.
  2. Aplikacja czyści obiekty sesji, a biblioteka uwierzytelniania czyści pamięć podręczną tokenów.
  3. Aplikacja przenosi użytkowników do punktu końcowego wylogowania usługi Azure AD B2C, aby zakończyć sesję usługi Azure AD B2C.
  4. Użytkownicy są przekierowywani z powrotem do aplikacji.

Wymagania wstępne

Komputer z systemem:

Krok 1. Konfigurowanie przepływu użytkownika

Gdy użytkownicy próbują zalogować się do Twojej aplikacji, aplikacja rozpoczyna żądanie uwierzytelniania do punktu końcowego autoryzacji poprzez przepływ użytkownika. Przepływ użytkownika definiuje i kontroluje środowisko użytkownika. Po zakończeniu przepływu użytkownika usługa Azure AD B2C generuje token, a następnie przekierowuje użytkowników z powrotem do aplikacji.

Jeśli jeszcze tego nie zrobiono, utwórz przepływ użytkownika lub politykę niestandardową. Powtórz kroki, aby utworzyć trzy oddzielne przepływy użytkownika w następujący sposób:

  • Połączony przepływ logowania i rejestracji użytkownika, taki jak susi. Ten przepływ użytkownika obsługuje także funkcję Nie pamiętasz hasła.
  • Przepływ użytkownika dotyczący edycji profilu, taki jak edit_profile.
  • Proces resetowania hasła przez użytkownika, taki jak reset_password.

Usługa Azure AD B2C dodaje przed B2C_1_ nazwę przepływu użytkownika. Na przykład, susi staje się B2C_1_susi.

Krok 2. Rejestrowanie aplikacji mobilnych

Utwórz aplikację mobilną oraz zarejestruj aplikację internetową z interfejsem API, a następnie określ zakresy dostępu dla swojego internetowego interfejsu API.

Krok 2.1: Zarejestruj aplikację interfejsu API WWW

Aby utworzyć rejestrację aplikacji internetowego interfejsu API (identyfikator aplikacji: 2), wykonaj następujące kroki:

  1. Zaloguj się do witryny Azure Portal.

  2. Upewnij się, że używasz katalogu zawierającego tenant usługi Azure AD B2C. Wybierz ikonę Katalogi i subskrypcje na pasku narzędzi portalu.

  3. W ustawieniach portalu | Strona Katalogi i subskrypcje , znajdź katalog usługi Azure AD B2C na liście Nazwa katalogu, a następnie wybierz pozycję Przełącz.

  4. W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.

  5. Wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Nowa rejestracja.

  6. W polu Nazwa wprowadź nazwę aplikacji (na przykład my-api1). Pozostaw wartości domyślne dla Redirect URI i obsługiwanych typów kont.

  7. Wybierz pozycję Zarejestruj.

  8. Po zakończeniu rejestracji aplikacji wybierz pozycję Przegląd.

  9. Zarejestruj wartość identyfikatora aplikacji (klienta) do późniejszego użycia podczas konfigurowania aplikacji internetowej.

    Zrzut ekranu przedstawiający sposób uzyskiwania identyfikatora aplikacji web API.

Krok 2.2. Konfigurowanie zakresów aplikacji internetowego interfejsu API

  1. Wybierz utworzoną aplikację my-api1 (identyfikator aplikacji: 2), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzanie wybierz pozycję Uwidaczniaj interfejs API.

  3. Obok URI identyfikatora aplikacji wybierz link Ustaw. Zastąp wartość domyślną (GUID) unikatową nazwą (na przykład tasks-api), a następnie wybierz pozycję Zapisz.

    Gdy aplikacja internetowa żąda tokenu dostępu dla API, powinna dodać ten identyfikator URI jako prefiks dla każdego zakresu zdefiniowanego dla API.

  4. W obszarze Zakresy zdefiniowane przez ten interfejs API, wybierz pozycję Dodaj zakres.

  5. Aby utworzyć zakres definiujący dostęp do odczytu do interfejsu API:

    1. Dla Nazwa zakresu, wprowadź tasks.read.
    2. Dla Nazwa zgody administratora do wyświetlenia wprowadź dostęp do odczytu interfejsu API zadań.
    3. W polu Opis zgody administratora wprowadź Zezwala na dostęp do odczytu do API zadań.
  6. Wybierz Dodaj zakres.

  7. Wybierz pozycję Dodaj zakres, a następnie dodaj zakres definiujący dostęp do zapisu do interfejsu API:

    1. Dla Nazwa zakresu wprowadź tasks.write.
    2. Dla Nazwa wyświetlana zgody administratora wprowadź Uprawnienia zapisu do API zadań.
    3. W polu Opis zgody administratora wprowadź wartość Zezwalaj na dostęp do zapisu do interfejsu API zadań.
  8. Wybierz Dodaj zakres.

Krok 2.3. Rejestrowanie aplikacji mobilnej

Aby utworzyć rejestrację aplikacji mobilnej, wykonaj następujące czynności:

  1. Zaloguj się do witryny Azure Portal.
  2. Wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję Nowa rejestracja.
  3. W obszarze Nazwa wprowadź nazwę aplikacji (na przykład iOs-app1).
  4. W obszarze Obsługiwane typy kontwybierz Konta w dowolnym dostawcy tożsamości lub katalogu organizacyjnym, aby uwierzytelniać użytkowników za pomocą przepływów użytkowników.
  5. W polu Identyfikator URI przekierowania wybierz pozycję Klient publiczny/natywny (mobilny i stacjonarny), a następnie w polu adresu URL wprowadź msauth.com.microsoft.identitysample.MSALiOS://auth.
  6. Wybierz pozycję Zarejestruj.
  7. Po zakończeniu rejestracji aplikacji wybierz pozycję Przegląd.
  8. Zarejestruj identyfikator aplikacji (klienta) do późniejszego użycia podczas konfigurowania aplikacji mobilnej. Zrzut ekranu przedstawiający identyfikator aplikacji mobilnej.

Krok 2.4. Udzielanie uprawnień aplikacji mobilnej dla internetowego interfejsu API

Aby udzielić aplikacji (identyfikator aplikacji: 1) uprawnień, wykonaj następujące kroki:

  1. Wybierz Rejestracje aplikacji, a następnie wybierz utworzoną aplikację (identyfikator aplikacji: 1).

  2. W sekcji Zarządzanie wybierz Uprawnienia API.

  3. W obszarze Skonfigurowane uprawnienia wybierz pozycję Dodaj uprawnienie.

  4. Wybierz kartę Moje interfejsy API.

  5. Wybierz interfejs API (App ID: 2), do którego aplikacja internetowa powinna mieć dostęp. Na przykład wprowadź ciąg my-api1.

  6. W obszarze Uprawnienie rozwiń węzeł zadania, a następnie wybierz zdefiniowane wcześniej zakresy (na przykład tasks.read i tasks.write).

  7. Wybierz Dodaj uprawnienia.

  8. Wybierz pozycję Udziel zgody administratora dla <nazwy dzierżawy>.

  9. Wybierz opcję Tak.

  10. Wybierz Odśwież, a następnie sprawdź, czy pod Stan dla obu zakresów jest wyświetlana wartość Przyznane dla ....

  11. Z listy Skonfigurowane uprawnienia wybierz zakres, a następnie skopiuj pełną nazwę zakresu.

    Zrzut ekranu przedstawiający okienko skonfigurowanych uprawnień z wyświetlonymi uprawnieniami dostępu do odczytu.

Krok 3. Konfigurowanie przykładowego internetowego interfejsu API

Ten przykład uzyskuje token dostępu z odpowiednimi zakresami, których aplikacja mobilna może używać dla internetowego interfejsu API. Aby wywołać internetowy interfejs API z kodu, wykonaj następujące czynności:

  1. Użyj istniejącego internetowego interfejsu API lub utwórz nowy. Aby uzyskać więcej informacji, zobacz Włączanie uwierzytelniania we własnym internetowym interfejsie API przy użyciu usługi Azure AD B2C.
  2. Zmień przykładowy kod, aby wywołać internetowy interfejs API.
  3. Po skonfigurowaniu webowego interfejsu API skopiuj identyfikator URI punktu końcowego API. W następnych krokach użyjesz internetowego punktu końcowego interfejsu API.

Wskazówka

Jeśli nie masz internetowego interfejsu API, nadal możesz uruchomić ten przykład. W takim przypadku aplikacja zwraca token dostępu, ale nie będzie mógł wywołać internetowego interfejsu API.

Krok 4. Pobieranie przykładu aplikacji mobilnej dla systemu iOS

  1. Pobierz plik .zip lub sklonuj przykładową aplikację internetową z repozytorium GitHub.

    git clone https://github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msal
    
  2. Użyj narzędzia CocoaPods , aby zainstalować bibliotekę MSAL. W oknie terminalu przejdź do folderu głównego projektu. Ten folder zawiera plik podfile . Uruchom następujące polecenie:

    pod install
    
  3. Otwórz obszar roboczy w MSALiOS.xcworkspace Xcode.

Krok 5. Konfigurowanie przykładowej aplikacji mobilnej

Otwórz plik ViewController.swift . Członkowie klasy ViewController zawierają informacje o dostawcy tożsamości Azure AD B2C. Aplikacja mobilna używa tych informacji do ustanowienia relacji zaufania z usługą Azure AD B2C, logowania użytkowników i wylogowywanie ich, uzyskiwanie tokenów i ich weryfikowanie.

Zaktualizuj następujące składowe klasy:

Klawisz Wartość
kTenantName (nazwa_lokatora) Pełna nazwa dzierżawcy usługi Azure AD B2C (na przykład contoso.onmicrosoft.com).
kAuthorityHostName (nazwa_hosta) Pierwsza część nazwy dzierżawcy usługi Azure AD B2C (na przykład contoso.b2clogin.com).
kClientID (identyfikator klienta) Identyfikator aplikacji mobilnej z kroku 2.3.
kRedirectUri Identyfikator URI przekierowania aplikacji mobilnej z kroku 2.3, msauth.com.microsoft.identitysample.MSALiOS://auth.
PolitykaRejestracjiLubLogowania Przepływ użytkownika dotyczący rejestracji lub logowania albo zasady niestandardowe, które utworzyłeś w kroku 1.
ZasadyEdycjiProfilu Proces edycji profilu użytkownika lub niestandardowe zasady utworzone w kroku 1.
kGraphURI (Opcjonalnie) Internetowy punkt końcowy interfejsu API utworzony w kroku 3 (na przykład https://contoso.azurewebsites.net/hello).
kScopes (kZakresy) Zakresy webowego API utworzone w kroku 2.4.

Krok 6. Uruchamianie i testowanie aplikacji mobilnej

  1. Skompiluj i uruchom projekt za pomocą symulatora połączonego urządzenia z systemem iOS.

  2. Wybierz pozycję Zaloguj się, a następnie zarejestruj się lub zaloguj się przy użyciu konta lokalnego lub społecznościowego usługi Azure AD B2C.

    Zrzut ekranu przedstawiający sposób uruchamiania przepływu logowania.

  3. Po pomyślnym uwierzytelnieniu na pasku nawigacyjnym zobaczysz wyświetlaną nazwę.

    Zrzut ekranu przedstawiający token dostępu usługi Azure AD B2C i identyfikator użytkownika.

Dalsze kroki

Dowiedz się, jak: