Udostępnij za pośrednictwem


Logowanie użytkowników i wywoływanie interfejsu API w przykładowej aplikacji mobilnej systemu iOS przy użyciu uwierzytelniania natywnego

Dotyczy: Biały okrąg z szarym symbolem X. Najemcy Workforce Zielony okrąg z białym znacznikiem wyboru. Najemcy zewnętrzni (więcej informacji)

Z tego przewodnika Szybki start dowiesz się, jak skonfigurować przykładową aplikację dla systemu iOS w celu wywołania internetowego interfejsu API platformy ASP.NET Core.

Warunki wstępne

Zarejestruj aplikację internetowego interfejsu API

  1. Zaloguj się w centrum administracyjnym Microsoft Entra jako co najmniej 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 Tożsamość>Aplikacje>Rejestracje aplikacji.

  4. Wybierz pozycję + Nowa rejestracja.

  5. Na wyświetlonej stronie Zarejestruj aplikację wprowadź informacje o rejestracji aplikacji:

    1. W sekcji Nazwa wprowadź zrozumiałą nazwę aplikacji, która będzie wyświetlana użytkownikom aplikacji, na przykład ciam-ToDoList-api.

    2. W obszarze Obsługiwane typy kont wybierz pozycję tylko konta w tym katalogu organizacyjnym.

  6. Wybierz pozycję Zarejestruj, aby utworzyć aplikację.

  7. Po zakończeniu rejestracji zostanie wyświetlone okienko przeglądu aplikacji. Zapisz identyfikator katalogu (dzierżawy) i identyfikator aplikacji (klienta) do użycia w kodzie źródłowym aplikacji.

Konfigurowanie zakresów interfejsu API

Interfejs API musi opublikować co najmniej jeden zakres, nazywany również uprawnieniami delegowanymi , aby aplikacje klienckie pomyślnie uzyskały token dostępu dla użytkownika. Aby opublikować zakres, wykonaj następujące kroki:

  1. Na stronie rejestracje aplikacji wybierz utworzoną aplikację interfejsu API (ciam-ToDoList-api), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzajwybierz pozycję Uwidaczniaj interfejs API.

  3. W górnej części strony obok identyfikatora URI aplikacjiwybierz link Dodaj, aby wygenerować unikatowy identyfikator URI dla tej aplikacji.

  4. Zaakceptuj proponowany identyfikator URI aplikacji, np. api://{clientId}, i wybierz Zapisz. Gdy aplikacja internetowa żąda tokenu dostępu dla internetowego interfejsu API, dodaje identyfikator URI jako prefiks dla każdego zakresu zdefiniowanego dla interfejsu API.

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

  6. Wprowadź następujące wartości, które definiują dostęp do odczytu interfejsu API, a następnie wybierz Dodaj zakres, aby zapisać zmiany.

    Własność Wartość
    Nazwa zakresu ToDoList.Read
    Kto może wyrazić zgodę Tylko administratorzy
    Nazwa wyświetlana zgody administratora Odczytaj listę zadań użytkowników przy użyciu "TodoListApi"
    Opis zgody administratora Zezwól aplikacji na odczytanie listy zadań użytkownika przy użyciu "TodoListApi".
    Stan włączone
  7. Wybierz ponownie Dodaj zakres, a następnie wprowadź następujące wartości definiujące zakres dostępu do odczytu i zapisu w interfejsie API. Wybierz pozycję Dodaj zakres, aby zapisać zmiany:

    Własność Wartość
    Nazwa zakresu ToDoList.ReadWrite
    Kto może wyrazić zgodę Tylko administratorzy
    Nazwa wyświetlana zgody administratora Przeczytaj i zapisz listę zadań użytkowników przy użyciu "ToDoListApi"
    Opis zgody administratora Zezwól aplikacji na odczytywanie i zapisywanie listy zadań użytkownika przy użyciu "ToDoListApi"
    Stan włączone

Dowiedz się więcej na temat zasady najmniejszych uprawnień podczas publikowania uprawnień dla webowego API.

Konfigurowanie ról aplikacji

Interfejs API musi opublikować co najmniej jedną rolę aplikacji, znaną również jako uprawnienia aplikacji , aby aplikacje klienckie mogły uzyskiwać token dostępu w swoim imieniu. Uprawnienia aplikacji to rodzaj uprawnień, które interfejsy API powinny publikować, gdy chcą umożliwić aplikacjom klienckim pomyślne uwierzytelnianie się jako samodzielne aplikacje, bez potrzeby logowania użytkowników. Aby udostępnić uprawnienie aplikacji, wykonaj następujące kroki:

  1. Na stronie Rejestracje aplikacji wybierz utworzoną aplikację (na przykład ciam-ToDoList-api), aby otworzyć stronę Przegląd.

  2. W obszarze Zarządzajwybierz pozycję Role aplikacji.

  3. Wybierz pozycję Utwórz rolę aplikacji, a następnie wprowadź następujące wartości, a następnie wybierz pozycję Zastosuj, aby zapisać zmiany:

    Własność Wartość
    Nazwa wyświetlana ToDoList.Read.All
    Dozwolone typy elementów Aplikacji
    Wartość ToDoList.Read.All
    Opis Zezwól aplikacji na czytanie listy zadań każdego użytkownika przy użyciu "TodoListApi"
    Czy chcesz włączyć tę rolę aplikacji? Zachowaj to zaznaczone
  4. Ponownie wybierz pozycję Utwórz rolę aplikacji, a następnie wprowadź następujące wartości dla drugiej roli aplikacji, a następnie wybierz pozycję Zastosuj, aby zapisać zmiany:

    Własność Wartość
    Nazwa wyświetlana ToDoList.ReadWrite.All
    Dozwolone typy członków Aplikacji
    Wartość ToDoList.ReadWrite.All
    Opis Zezwalaj aplikacji na odczytywanie i zapisywanie listy zadań do wykonania każdego użytkownika przy użyciu "ToDoListApi"
    Czy chcesz włączyć tę rolę aplikacji? Zachowaj zaznaczenie

Konfigurowanie opcjonalnych oświadczeń

Możesz dodać opcjonalne oświadczenie idtyp, aby ułatwić interfejsowi sieci Web API określenie, czy token jest tokenem aplikacji, czy tokenem aplikacji i użytkownika. Chociaż można użyć kombinacji ról scp i oświadczeń w tym samym celu, użycie oświadczenia idtyp jest najprostszym sposobem odróżnienia tokenu aplikacji od tokenu aplikacji + użytkownika. Na przykład, wartość tego oświadczenia to aplikacja, gdy token jest przeznaczony wyłącznie dla aplikacji.

Przyznaj uprawnienia interfejsu API do przykładowej aplikacji na iOS

Gdy zarejestrujesz zarówno aplikację kliencką, jak i interfejs API oraz udostępnisz interfejs API, tworząc zakresy, możesz skonfigurować uprawnienia klienta do interfejsu API, wykonując następujące kroki:

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

  2. W obszarze Zarządzajwybierz uprawnienia interfejsu API.

  3. W obszarze Skonfigurowane uprawnieniawybierz pozycję Dodaj uprawnienie.

  4. Na karcie interfejsy API używane przez moją organizację wybierz.

  5. Na liście API wybierz API taki jak ciam-ToDoList-api.

  6. Wybierz opcję uprawnienia delegowane .

  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 prawidłowo przypisano uprawnienia. Jednak ponieważ najemca jest najemcą klienta, użytkownicy końcowi 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 Udziel zgody administratora dla <swojego dzierżawcy>, a następnie wybierz Tak.

    2. Wybierz Odśwież, a następnie sprawdź, czy Udzielono <nazwa dzierżawcy> jest wyświetlana pod Stanem dla obu zezwoleń.

  10. Z listy Skonfigurowane uprawnienia wybierz uprawnienia ToDoList.Read i ToDoList.ReadWrite, jedno po drugim, a następnie skopiuj pełny identyfikator URI uprawnienia, aby użyć go później. Pełny identyfikator URI uprawnień wygląda podobnie do api://{clientId}/{ToDoList.Read} lub api://{clientId}/{ToDoList.ReadWrite}.

Klonowanie lub pobieranie przykładowego internetowego interfejsu API

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-dotnet-tutorial.git
    
  • pobierz plik .zip. Wyodrębnij go do ścieżki pliku, w której długość nazwy jest mniejsza niż 260 znaków.

Konfigurowanie i uruchamianie przykładowego internetowego interfejsu API

  1. W edytorze kodu otwórz plik 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.

  2. Znajdź symbol zastępczy:

    • Enter_the_Application_Id_Here i zastąp go identyfikatorem aplikacji (klienta) skopiowanego wcześniej interfejsu API sieci Web.
    • Enter_the_Tenant_Id_Here i zastąp go skopiowanym wcześniej identyfikatorem katalogu (dzierżawy).
    • Enter_the_Tenant_Subdomain_Here i zastąp ją poddomeną Katalog (dzierżawa). Jeśli na przykład domena podstawowa dzierżawy jest contoso.onmicrosoft.com, użyj contoso. Jeśli nie masz nazwy najemcy, dowiedz się, jak odczytywać szczegóły dzierżawy.

Aby przykładowa aplikacja na iOS mogła ją wywołać, musisz udostępnić swoją sieciową API. Postępuj zgodnie z Quickstart: Deploy an ASP.NET web app, aby wdrożyć swój interfejs API.

Konfigurowanie przykładowej aplikacji mobilnej dla systemu iOS do wywoływania internetowego interfejsu API

Przykład umożliwia skonfigurowanie wielu punktów końcowych URL interfejsu Web API i zestawów zakresów. W takim przypadku należy skonfigurować tylko jeden punkt końcowy adresu URL internetowego interfejsu API i skojarzone z nim zakresy.

  1. W programie Xcode otwórz plik /NativeAuthSampleApp/ProtectedAPIViewController.swift. Jeśli używasz systemu macOS, oto przykładowy plik kodu ProtectedAPIViewController.swift.

  2. Znajdź protectedAPIUrl1 i wprowadź jako jego wartość adres URL interfejsu API.

    let protectedAPIUrl1: String? = nil // Developers should set the respective URL of their web API here. For example let protectedAPIUrl1: String? = "https://api.example.com/v1/resource"
    
  3. Znajdź protectedAPIScopes1 i ustaw zakresy zarejestrowane w , aby przyznać uprawnienia API przykładowej aplikacji iOS.

    let protectedAPIScopes1: [String] = [] // Developers should set the respective scopes of their web API here.For example, let protectedAPIScopes = ["api://{clientId}/{ToDoList.Read}","api://{clientId}/{ToDoList.ReadWrite}"]
    

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 Product w programie Xcode. Po pomyślnej kompilacji środowisko Xcode uruchomi przykładową aplikację w symulatorze.
  2. Wybierz kartę API, aby przetestować wywołanie API. Pomyślne wywołanie internetowego interfejsu API zwraca HTTP 200, podczas gdy HTTP 403 oznacza nieautoryzowany dostęp.

Następne kroki