Konfigurace ověřování v ukázkové aplikaci Swift pro iOS pomocí Azure AD B2C

Tento článek používá ukázkovou aplikaci Swift pro iOS, která ukazuje, jak do mobilních aplikací přidat ověřování Azure Active Directory B2C (Azure AD B2C).

Přehled

OpenID Connect (OIDC) je ověřovací protokol, který je založený na OAuth 2.0. OIDC můžete použít k bezpečnému přihlašování uživatelů k aplikaci. Tato ukázka mobilní aplikace používá knihovnu Microsoft Authentication Library (MSAL) s ověřovacím klíčem autorizačního kódu OIDC pro tok výměny kódu (PKCE). Knihovna MSAL je knihovna od Microsoftu, která zjednodušuje přidávání podpory ověřování a autorizace do mobilních aplikací.

Tok přihlášení zahrnuje následující kroky:

  1. Uživatelé aplikaci otevřou a vyberou přihlásit se.
  2. Aplikace otevře systémový prohlížeč mobilního zařízení a spustí žádost o ověření, aby Azure AD B2C.
  3. Uživatelé se zaregistrují nebo přihlásí, resetují heslo nebo se přihlásí pomocí účtu sociální sítě.
  4. Po úspěšném přihlášení uživatelů vrátí Azure AD B2C do aplikace autorizační kód.
  5. Aplikace provede následující akce:
    1. Autorizační kód vymění za token ID, přístupový token a obnovovací token.
    2. Přečte deklarace identity tokenu ID.
    3. Tokeny uloží do mezipaměti v paměti pro pozdější použití.

Přehled registrace aplikací

Pokud chcete aplikaci povolit přihlášení pomocí Azure AD B2C a volání webového rozhraní API, zaregistrujte v adresáři Azure AD B2C dvě aplikace:

  • Registrace mobilní aplikace umožňuje aplikaci přihlásit se pomocí Azure AD B2C. Během registrace aplikace zadejte identifikátor URI přesměrování. Identifikátor URI přesměrování je koncový bod, na který jsou uživatelé přesměrováni Azure AD B2C po ověření pomocí Azure AD B2C. Proces registrace aplikace vygeneruje ID aplikace, označované také jako ID klienta, které jedinečně identifikuje vaši mobilní aplikaci (například ID aplikace: 1).

  • Registrace webového rozhraní API umožňuje vaší aplikaci volat chráněné webové rozhraní API. Registrace zpřístupňuje oprávnění (obory) webového rozhraní API. Proces registrace aplikace vygeneruje ID aplikace, které jednoznačně identifikuje vaše webové rozhraní API (například ID aplikace: 2). Udělte mobilní aplikaci (ID aplikace: 1) oprávnění k oborům webového rozhraní API (ID aplikace: 2).

Registrace aplikace a architektura jsou znázorněny v následujících diagramech:

Diagram mobilní aplikace s registracemi a tokeny volání webového rozhraní API

Volání webového rozhraní API

Po dokončení ověřování uživatelé interagují s aplikací, která vyvolá chráněné webové rozhraní API. Webové rozhraní API používá ověřování nosný token . Nosný token je přístupový token, který aplikace získala z Azure AD B2C. Aplikace předá token v autorizační hlavičce požadavku HTTPS.

Authorization: Bearer <access token>

Pokud obor přístupového tokenu neodpovídá oborům webového rozhraní API, knihovna ověřování získá nový přístupový token se správnými obory.

Tok odhlášení

Tok odhlášení zahrnuje následující kroky:

  1. Z aplikace se uživatelé odhlásí.
  2. Aplikace vymaže objekty relace a knihovna ověřování vymaže mezipaměť tokenů.
  3. Aplikace přenese uživatele do koncového bodu pro odhlášení Azure AD B2C, aby ukončila relaci Azure AD B2C.
  4. Uživatelé jsou přesměrováni zpět do aplikace.

Požadavky

Počítač se systémem:

Krok 1: Konfigurace toku uživatele

Když se uživatelé pokusí přihlásit k vaší aplikaci, aplikace prostřednictvím toku uživatele spustí žádost o ověření do koncového bodu autorizace. Tok uživatele definuje a řídí uživatelské prostředí. Jakmile uživatelé dokončí tok uživatele, Azure AD B2C vygeneruje token a přesměruje uživatele zpět do vaší aplikace.

Pokud jste to ještě neudělali, vytvořte tok uživatele nebo vlastní zásadu. Opakováním kroků vytvořte následující tři samostatné toky uživatelů:

  • Kombinovaný tok přihlášení a registrace uživatele, například susi. Tento tok uživatele také podporuje prostředí Zapomenuté heslo .
  • Tok uživatele pro úpravu profilu, například edit_profile.
  • Tok uživatele pro resetování hesla , například reset_password.

Azure AD B2C před název B2C_1_ toku uživatele. Například se změní na susiB2C_1_susi.

Krok 2: Registrace mobilních aplikací

Vytvořte mobilní aplikaci a registraci aplikace webového rozhraní API a zadejte obory webového rozhraní API.

Krok 2.1: Registrace aplikace webového rozhraní API

Pokud chcete vytvořit registraci aplikace webového rozhraní API (ID aplikace: 2), postupujte takto:

  1. Přihlaste se k webu Azure Portal.

  2. Ujistěte se, že používáte adresář, který obsahuje vašeho tenanta Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná .

  3. Na | nastavení portálu Na stránce Adresáře a předplatná vyhledejte svůj adresář Azure AD B2C v seznamu Název adresáře a pak vyberte Přepnout.

  4. V Azure Portal vyhledejte a vyberte Azure AD B2C.

  5. Vyberte Registrace aplikací a pak vyberte Nová registrace.

  6. Do pole Název zadejte název aplikace (například my-api1). U identifikátoru URI pro přesměrování a Podporované typy účtů ponechte výchozí hodnoty.

  7. Vyberte Zaregistrovat.

  8. Po dokončení registrace aplikace vyberte Přehled.

  9. Poznamenejte si hodnotu ID aplikace (klienta) pro pozdější použití při konfiguraci webové aplikace.

    Snímek obrazovky, který ukazuje, jak získat ID webové aplikace A P I

Krok 2.2: Konfigurace oborů aplikace webového rozhraní API

  1. Výběrem aplikace my-api1 , kterou jste vytvořili (ID aplikace: 2), otevřete její stránku Přehled .

  2. V části Spravovat vyberte Zveřejnit rozhraní API.

  3. Vedle identifikátoru URI ID aplikace vyberte odkaz Nastavit . Nahraďte výchozí hodnotu (GUID) jedinečným názvem (například tasks-api) a pak vyberte Uložit.

    Když webová aplikace požaduje přístupový token pro webové rozhraní API, měla by tento identifikátor URI přidat jako předponu pro každý obor, který pro rozhraní API definujete.

  4. V části Obory definované tímto rozhraním API vyberte Přidat obor.

  5. Vytvoření oboru, který definuje přístup pro čtení k rozhraní API:

    1. Jako Název oboru zadejte tasks.read.
    2. Pro Správa zobrazovaný název souhlasu zadejte oprávnění ke čtení k rozhraní API úloh.
    3. Pokud chcete Správa popis souhlasu, zadejte Povolit přístup pro čtení k rozhraní API úloh.
  6. Vyberte Přidat obor.

  7. Vyberte Přidat obor a pak přidejte obor, který definuje přístup pro zápis do rozhraní API:

    1. Jako Název oboru zadejte tasks.write.
    2. Pro Správa zobrazovaný název souhlasu zadejte oprávnění k zápisu do rozhraní API úloh.
    3. Pokud chcete Správa popis souhlasu, zadejte Povolit přístup k zápisu do rozhraní API úloh.
  8. Vyberte Přidat obor.

Krok 2.3: Registrace mobilní aplikace

Registraci mobilní aplikace vytvoříte takto:

  1. Přihlaste se k webu Azure Portal.
  2. Vyberte Registrace aplikací a pak vyberte Nová registrace.
  3. V části Název zadejte název aplikace (například iOs-app1).
  4. V části Podporované typy účtů vyberte Účty v libovolném zprostředkovateli identity nebo organizačním adresáři (pro ověřování uživatelů s toky uživatelů).
  5. V části Identifikátor URI pro přesměrování vyberte Veřejný klient nebo nativní (mobilní & počítač) a pak do pole Adresa URL zadejte msauth.com.microsoft.identitysample.MSALiOS://auth.
  6. Vyberte Zaregistrovat.
  7. Po dokončení registrace aplikace vyberte Přehled.
  8. Poznamenejte si ID aplikace (klienta) pro pozdější použití při konfiguraci mobilní aplikace. Snímek obrazovky se zvýrazněním ID mobilní aplikace

Krok 2.4: Udělení oprávnění mobilní aplikaci pro webové rozhraní API

Pokud chcete aplikaci (ID aplikace: 1) udělit oprávnění, postupujte takto:

  1. Vyberte Registrace aplikací a pak vyberte aplikaci, kterou jste vytvořili (ID aplikace: 1).

  2. V části Spravovat vyberte Oprávnění rozhraní API.

  3. V části Nakonfigurovaná oprávnění vyberte Přidat oprávnění.

  4. Vyberte kartu Moje rozhraní API .

  5. Vyberte rozhraní API (ID aplikace: 2), ke kterému má mít webová aplikace udělený přístup. Zadejte například my-api1.

  6. V části Oprávnění rozbalte úkoly a pak vyberte obory, které jste definovali dříve (například tasks.read a tasks.write).

  7. Vyberte Přidat oprávnění.

  8. Vyberte Udělit souhlas správce pro < název >tenanta.

  9. Vyberte Ano.

  10. Vyberte Aktualizovat a pak ověřte, že se v části Stav pro oba obory zobrazuje hodnota Uděleno pro.

  11. V seznamu Nakonfigurovaná oprávnění vyberte obor a zkopírujte úplný název oboru.

    Snímek obrazovky s nakonfigurovaným podoknem oprávnění, na kterém je vidět, že jsou udělená oprávnění pro přístup ke čtení

Krok 3: Konfigurace ukázkového webového rozhraní API

Tato ukázka získá přístupový token s příslušnými obory, které mobilní aplikace může použít pro webové rozhraní API. Pokud chcete volat webové rozhraní API z kódu, postupujte takto:

  1. Použijte existující webové rozhraní API nebo vytvořte nové. Další informace najdete v tématu Povolení ověřování ve vlastním webovém rozhraní API pomocí Azure AD B2C.
  2. Změňte vzorový kód tak, aby volal webové rozhraní API.
  3. Po konfiguraci webového rozhraní API zkopírujte identifikátor URI koncového bodu webového rozhraní API. Koncový bod webového rozhraní API použijete v dalších krocích.

Tip

Pokud nemáte webové rozhraní API, můžete tuto ukázku přesto spustit. V takovém případě aplikace vrátí přístupový token, ale nebude moct volat webové rozhraní API.

Krok 4: Získání ukázky mobilní aplikace pro iOS

  1. Stáhněte si soubor .zip nebo naklonujte ukázkovou webovou aplikaci z úložiště GitHub.

    git clone https://github.com/Azure-Samples/active-directory-b2c-ios-swift-native-msal
    
  2. Pomocí CocoaPods nainstalujte knihovnu MSAL. V okně terminálu přejděte do kořenové složky projektu. Tato složka obsahuje soubor podfile . Spusťte následující příkaz:

    pod install
    
  3. Otevřete pracovní prostor pomocí MSALiOS.xcworkspace Xcode.

Krok 5: Konfigurace ukázkové mobilní aplikace

Otevřete soubor ViewController.swift . Členy ViewController třídy obsahují informace o zprostředkovateli identity Azure AD B2C. Mobilní aplikace používá tyto informace k navázání vztahu důvěryhodnosti s Azure AD B2C, přihlašování a odhlašování uživatelů, získávání tokenů a jejich ověřování.

Aktualizujte následující členy třídy:

Klíč Hodnota
kTenantName Váš Azure AD úplný název tenanta B2C (například contoso.onmicrosoft.com).
kAuthorityHostName První část Azure AD název tenanta B2C (například contoso.b2clogin.com).
kClientID ID mobilní aplikace z kroku 2.3.
Identifikátor kRedirectUri Identifikátor URI přesměrování mobilní aplikace z kroku 2.3 . msauth.com.microsoft.identitysample.MSALiOS://auth
kSignupOrSigninPolicy Tok uživatele registrace nebo přihlašování nebo vlastní zásady, které jste vytvořili v kroku 1.
kEditProfilePolicy Upravit tok uživatele profilu nebo vlastní zásadu, kterou jste vytvořili v kroku 1.
Identifikátor kGraphURI (Volitelné) Koncový bod webového rozhraní API, který jste vytvořili v kroku 3 (například https://contoso.azurewebsites.net/hello).
kScopes Obory webového rozhraní API, které jste vytvořili v kroku 2.4.

Krok 6: Spuštění a testování mobilní aplikace

  1. Sestavte a spusťte projekt pomocí simulátoru připojeného zařízení s iOSem.

  2. Vyberte Přihlásit se a pak se zaregistrujte nebo přihlaste pomocí místního účtu Azure AD B2C nebo účtu na sociálních sítích.

    Snímek obrazovky se zvýrazněným způsobem spuštění toku přihlašování

  3. Po úspěšném ověření se na navigačním panelu zobrazí vaše zobrazované jméno.

    Snímek obrazovky se zvýrazněním Azure AD přístupového tokenu B2C a ID uživatele

Další kroky

Naučte se: