Udostępnij za pośrednictwem


Logowanie użytkowników i wywoływanie chronionego internetowego interfejsu API w przykładowej aplikacji systemu iOS (Swift)

W tym przewodniku pokazano, jak skonfigurować przykładową aplikację mobilną dla systemu iOS w celu logowania użytkowników i wywołać chroniony internetowy interfejs API ASP.NET Core.

W tym artykule wykonasz następujące zadania:

  • Zarejestruj aplikację w centrum administracyjnym firmy Microsoft Entra.
  • Dodaj adres URL przekierowania platformy.
  • Włącz przepływy klientów publicznych.
  • Zaktualizuj przykładowy plik kodu konfiguracji systemu iOS, aby użyć własnych Tożsamość zewnętrzna Microsoft Entra na potrzeby szczegółów dzierżawy klienta.
  • Uruchom i przetestuj przykładową aplikację mobilną dla systemu iOS.

Wymagania wstępne

  • Xcode.

  • Dzierżawa zewnętrzna. Jeśli jeszcze go nie masz, utwórz konto bezpłatnej wersji próbnej.

  • Rejestracja interfejsu API, która uwidacznia co najmniej jeden zakres (uprawnienia delegowane) i jedną rolę aplikacji (uprawnienie aplikacji), taką jak ToDoList.Read. Jeśli jeszcze tego nie zrobiono, postępuj zgodnie z instrukcjami dotyczącymi wywoływania interfejsu API w przykładowej aplikacji mobilnej systemu iOS, aby mieć funkcjonalny chroniony interfejs API sieci Web ASP.NET Core. Upewnij się, że wykonasz następujące kroki:

    • Rejestrowanie aplikacji internetowego interfejsu API.
    • Konfigurowanie zakresów interfejsu API.
    • Konfigurowanie ról aplikacji.
    • Konfigurowanie opcjonalnych oświadczeń.
    • Sklonuj lub pobierz przykładowy internetowy interfejs API.
    • Konfigurowanie i uruchamianie przykładowego internetowego interfejsu API.

Rejestrowanie aplikacji

Aby umożliwić aplikacji logowanie użytkowników w usłudze Microsoft Entra, Tożsamość zewnętrzna Microsoft Entra należy pamiętać o tworzonej aplikacji. Rejestracja aplikacji ustanawia relację zaufania między aplikacją a firmą Microsoft Entra. Podczas rejestrowania aplikacji identyfikator zewnętrzny generuje unikatowy identyfikator znany jako identyfikator aplikacji (klienta) — wartość używana do identyfikowania aplikacji podczas tworzenia żądań uwierzytelniania.

W poniższych krokach pokazano, jak zarejestrować aplikację w centrum administracyjnym firmy Microsoft Entra:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako deweloper aplikacji.

  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy zewnętrznej z menu Katalogi i subskrypcje.

  3. Przejdź do aplikacji tożsamości>> Rejestracje aplikacji.

  4. Wybierz pozycję + Nowa rejestracja.

  5. Na wyświetlonej stronie Rejestrowanie aplikacji ;

    1. Wprowadź zrozumiałą nazwę aplikacji wyświetlaną użytkownikom aplikacji, na przykład ciam-client-app.
    2. W obszarze Obsługiwane typy kont wybierz pozycję Konta tylko w tym katalogu organizacyjnym.
  6. Wybierz pozycję Zarejestruj.

  7. Po pomyślnej rejestracji zostanie wyświetlone okienko Przegląd aplikacji. Zarejestruj identyfikator aplikacji (klienta), który ma być używany w kodzie źródłowym aplikacji.

Dodawanie adresu URL przekierowania platformy

Aby określić typ aplikacji do rejestracji aplikacji, wykonaj następujące kroki:

  1. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.
  2. Na stronie Konfiguracje platformy wybierz pozycję Dodaj platformę, a następnie wybierz opcję iOS/macOS.
  3. Wprowadź identyfikator pakietu projektu. Jeśli pobrano przykładowy kod, ta wartość to com.microsoft.identitysample.ciam.MSALiOS.
  4. Wybierz pozycję Konfiguruj i zapisz konfigurację biblioteki MSAL wyświetlaną w okienku konfiguracji systemu iOS/macOS, aby później można było wprowadzić ją podczas konfigurowania aplikacji.
  5. Wybierz pozycję Gotowe.

Włączanie publicznego przepływu klienta

Aby zidentyfikować aplikację jako klienta publicznego, wykonaj następujące kroki:

  1. W obszarze Zarządzanie wybierz pozycję Uwierzytelnianie.

  2. W obszarze Ustawienia zaawansowane w obszarze Zezwalaj na przepływy klientów publicznych wybierz pozycję Tak.

  3. Wybierz Zapisz, aby zapisać zmiany.

Po zarejestrowaniu aplikacji zostanie przypisane uprawnienie User.Read . Jednak ponieważ dzierżawa jest dzierżawą zewnętrzną, użytkownicy sami nie mogą wyrazić zgody na to uprawnienie. Administrator musi wyrazić zgodę na to uprawnienie w imieniu wszystkich użytkowników w dzierżawie:

  1. Na stronie Rejestracje aplikacji wybierz utworzoną aplikację (np. ciam-client-app), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzanie wybierz pozycję Uprawnienia interfejsu API.

    1. Wybierz pozycję Udziel zgody administratora dla <swojej nazwy> dzierżawy, a następnie wybierz pozycję Tak.
    2. Wybierz pozycję Odśwież, a następnie sprawdź, czy dla nazwy dzierżawy jest wyświetlana wartość> w <obszarze Stan uprawnienia.

Udzielanie uprawnień internetowego interfejsu API do przykładowej aplikacji systemu iOS

Po zarejestrowaniu aplikacji klienckiej, internetowego interfejsu API i uwidocznieniu interfejsu API przez utworzenie zakresów można skonfigurować uprawnienia klienta do interfejsu API, wykonując następujące kroki:

  1. Na stronie Rejestracje aplikacji wybierz utworzoną aplikację (np. ciam-client-app), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzanie wybierz pozycję Uprawnienia interfejsu API.

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

  4. Wybierz kartę Interfejsy API używane przez moją organizację.

  5. Na liście interfejsów API wybierz interfejs API, taki jak ciam-ToDoList-api.

  6. Wybierz opcję Delegowane uprawnienia .

  7. Z listy uprawnień wybierz pozycję ToDoList.Read, ToDoList.ReadWrite (w razie potrzeby użyj pola wyszukiwania).

  8. Wybierz przycisk Dodaj uprawnienia.

  9. W tym momencie przypisano uprawnienia poprawnie. Jednak ponieważ dzierżawa jest dzierżawą klienta, użytkownicy odbiorcy sami nie mogą wyrazić zgody na te uprawnienia. Aby rozwiązać ten problem, administrator musi wyrazić zgodę na te uprawnienia w imieniu wszystkich użytkowników w dzierżawie:

    1. Wybierz pozycję Udziel zgody administratora dla <swojej nazwy> dzierżawy, a następnie wybierz pozycję Tak.

    2. Wybierz pozycję Odśwież, a następnie sprawdź, czy w obszarze Stan dla obu uprawnień jest wyświetlana wartość Przyznane dla <nazwy> dzierżawy.

  10. Z listy Skonfigurowane uprawnienia wybierz uprawnienia ToDoList.Read i ToDoList.ReadWrite, pojedynczo, a następnie skopiuj pełny identyfikator URI uprawnienia do późniejszego użycia. Pełny identyfikator URI uprawnień wygląda podobnie do api://{clientId}/{ToDoList.Read} lub api://{clientId}/{ToDoList.ReadWrite}.

Klonowanie przykładowej aplikacji mobilnej dla systemu iOS

Aby uzyskać przykładową aplikację, możesz ją sklonować z usługi GitHub lub pobrać jako plik .zip.

  • Aby sklonować przykład, otwórz wiersz polecenia i przejdź do miejsca, w którym chcesz utworzyć projekt, a następnie wprowadź następujące polecenie:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-browser-delegated-ios-sample.git
    

Konfigurowanie przykładowej aplikacji mobilnej dla systemu iOS

Aby włączyć uwierzytelnianie i dostęp do zasobów internetowego interfejsu API, skonfiguruj przykład, wykonując następujące kroki:

  1. W programie Xcode otwórz sklonowany projekt.

  2. Otwórz plik /MSALiOS/Configuration.swift .

  3. Znajdź symbol zastępczy:

    • Enter_the_Application_Id_Herezastąp ją identyfikatorem aplikacji (klienta) zarejestrowanej wcześniej aplikacji.
    • Enter_the_Redirect_URI_Here zastąp go wartością kRedirectUri w pobranym wcześniej pliku konfiguracji biblioteki Microsoft Authentication Library (MSAL) po dodaniu adresu URL przekierowania platformy.
    • Enter_the_Protected_API_Full_URL_Here i zastąp go adresem URL do internetowego interfejsu API. Enter_the_Protected_API_Full_URL_Here powinien zawierać podstawowy adres URL (wdrożony internetowy adres URL interfejsu API) oraz punkt końcowy (/api/todolist) dla naszego internetowego interfejsu API ASP.NET.
    • Enter_the_Protected_API_Scopes_Here i zastąp go zakresami zarejestrowanymi w sekcji Udzielanie uprawnień internetowego interfejsu API do przykładowej aplikacji systemu iOS.
    • Enter_the_Tenant_Subdomain_Here i zastąp ją poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa dzierżawy to contoso.onmicrosoft.com, użyj polecenia contoso. Jeśli nie znasz poddomeny dzierżawy, dowiedz się, jak odczytywać szczegóły dzierżawy.

Skonfigurowano aplikację i wszystko jest gotowe do uruchomienia.

Uruchamianie przykładowej aplikacji systemu iOS i wywoływanie internetowego interfejsu API

Aby skompilować i uruchomić aplikację, wykonaj następujące kroki:

  1. Aby skompilować i uruchomić kod, wybierz pozycję Uruchom z menu Produkt w programie Xcode. Po pomyślnej kompilacji środowisko Xcode uruchomi przykładową aplikację w symulatorze.
  2. Wybierz pozycję Uzyskaj token interaktywnie , aby zażądać tokenu dostępu.
  3. Wybierz pozycję Interfejs API — wykonaj polecenie GET , aby wywołać wcześniej skonfigurowany interfejs API sieci Web ASP.NET Core. Pomyślne wywołanie internetowego interfejsu API zwraca protokół HTTP, a protokół HTTP 200403 oznacza nieautoryzowany dostęp.