Dela via


Logga in användare och anropa ett skyddat webb-API i iOS-exempelappen (Swift)

Den här guiden visar hur du konfigurerar ett exempel på iOS-mobilprogram för att logga in användare och anropar ett skyddat ASP.NET Core-webb-API.

I den här artikeln utför du följande uppgifter:

  • Registrera ett program i administrationscentret för Microsoft Entra.
  • Lägg till en URL för plattformsomdirigering.
  • Aktivera offentliga klientflöden.
  • Uppdatera exempelfilen för iOS-konfigurationskoden så att du använder ditt eget externa Microsoft Entra-ID för kundklientinformation.
  • Kör och testa iOS-exempelmobilprogrammet.

Förutsättningar

  • Xcode.

  • En extern klientorganisation. Om du inte redan har en kan du registrera dig för en kostnadsfri utvärderingsversion.

  • En API-registrering som exponerar minst ett omfång (delegerade behörigheter) och en approll (programbehörighet) som ToDoList.Read. Om du inte redan har gjort det följer du anvisningarna för att anropa ett API i en iOS-exempelmobilapp för att ha ett funktionellt skyddat ASP.NET Core-webb-API. Se till att du slutför följande steg:

    • Registrera ett webb-API-program.
    • Konfigurera API-omfång.
    • Konfigurera approller.
    • Konfigurera valfria anspråk.
    • Klona eller ladda ned exempelwebb-API.
    • Konfigurera och köra exempelwebb-API: et.

Registrera en app

För att ditt program ska kunna logga in användare med Microsoft Entra måste microsoft Entras externa ID informeras om det program som du skapar. Appregistreringen upprättar en förtroenderelation mellan appen och Microsoft Entra. När du registrerar ett program genererar externt ID en unik identifierare som kallas ett program-ID (klient)-ID, ett värde som används för att identifiera din app när du skapar autentiseringsbegäranden.

Följande steg visar hur du registrerar din app i administrationscentret för Microsoft Entra:

  1. Logga in på administrationscentret för Microsoft Entra som minst programutvecklare.

  2. Om du har åtkomst till flera klienter använder du ikonenInställningar på den översta menyn för att växla till din externa klientorganisation från menyn Kataloger + prenumerationer.

  3. Bläddra till Identitetsprogram>> Appregistreringar.

  4. Välj + Ny registrering.

  5. På sidan Registrera ett program som visas;

    1. Ange ett beskrivande programnamn som visas för appens användare, till exempel ciam-client-app.
    2. Under Kontotyper som stöds väljer du Endast Konton i den här organisationskatalogen.
  6. Välj Registrera.

  7. Programmets översiktsfönster visas vid lyckad registrering. Registrera det program-ID (klient)-ID som ska användas i programmets källkod.

Lägga till en url för plattformsomdirigering

Följ dessa steg om du vill ange din apptyp för din appregistrering:

  1. Under Hantera väljer du Autentisering.
  2. På sidan Plattformskonfigurationer väljer du Lägg till en plattform och väljer sedan alternativet iOS/macOS .
  3. Ange projektets paket-ID. Om du laddade ned exempelkoden är com.microsoft.identitysample.ciam.MSALiOSdet här värdet .
  4. Välj Konfigurera och spara MSAL-konfigurationen som visas i konfigurationsfönstret i iOS/macOS så att du kan ange den när du konfigurerar appen senare.
  5. Välj Klar.

Aktivera offentligt klientflöde

Följ dessa steg för att identifiera din app som en offentlig klient:

  1. Under Hantera väljer du Autentisering.

  2. Under Avancerade inställningar väljer du Ja för Tillåt offentliga klientflöden.

  3. Välj Spara för att spara dina ändringar.

  1. På sidan Appregistreringar väljer du det program som du skapade (till exempel ciam-client-app) för att öppna sidan Översikt.

  2. Under Hantera väljer du API-behörigheter. Från listan Konfigurerade behörigheter har programmet tilldelats behörigheten User.Read . Men eftersom klientorganisationen är en extern klientorganisation kan inte konsumentanvändare själva samtycka till den här behörigheten. Du som administratör måste godkänna den här behörigheten för alla användare i klientorganisationen:

    1. Välj Bevilja administratörsmedgivande för <ditt klientnamn> och välj sedan Ja.
    2. Välj Uppdatera och kontrollera sedan att Beviljat för <klientorganisationens namn> visas under Status för båda omfången.

Bevilja webb-API-behörigheter till iOS-exempelappen

När du har registrerat både klientappen, webb-API:et och du har exponerat API:et genom att skapa omfång, kan du konfigurera klientens behörigheter till API:et genom att följa dessa steg:

  1. På sidan Appregistreringar väljer du det program som du skapade (till exempel ciam-client-app) för att öppna sidan Översikt.

  2. Under Hantera väljer du API-behörigheter.

  3. Under Konfigurerade behörigheter väljer du Lägg till en behörighet.

  4. Välj fliken API:er som min organisation använder .

  5. I listan över API:er väljer du API:et, till exempel ciam-ToDoList-api.

  6. Välj alternativet Delegerade behörigheter .

  7. I behörighetslistan väljer du ToDoList.Read, ToDoList.ReadWrite (använd sökrutan om det behövs).

  8. Välj knappen Lägg till behörigheter.

  9. Nu har du tilldelat behörigheterna korrekt. Men eftersom klientorganisationen är en kunds klientorganisation kan konsumentanvändarena själva inte samtycka till dessa behörigheter. För att åtgärda detta måste du som administratör samtycka till dessa behörigheter för alla användare i klientorganisationen:

    1. Välj Bevilja administratörsmedgivande för <ditt klientnamn> och välj sedan Ja.

    2. Välj Uppdatera och kontrollera sedan att Beviljat för <klientorganisationens namn> visas under Status för båda behörigheterna.

  10. I listan Konfigurerade behörigheter väljer du behörigheterna ToDoList.Read och ToDoList.ReadWrite, en i taget, och kopierar sedan behörighetens fullständiga URI för senare användning. Den fullständiga behörighets-URI:n ser ut ungefär api://{clientId}/{ToDoList.Read} som eller api://{clientId}/{ToDoList.ReadWrite}.

Klona exempel på iOS-mobilprogram

Om du vill hämta exempelprogrammet kan du antingen klona det från GitHub eller ladda ned det som en .zip fil.

  • Om du vill klona exemplet öppnar du en kommandotolk och navigerar till den platsen där du vill skapa projektet och anger följande kommando:

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

Konfigurera iOS-exempelmobilprogrammet

Om du vill aktivera autentisering och åtkomst till webb-API-resurser konfigurerar du exemplet genom att följa dessa steg:

  1. Öppna det projekt som du klonade i Xcode.

  2. Öppna filen /MSALiOS/Configuration.swift .

  3. Hitta platshållaren:

    • Enter_the_Application_Id_Here och ersätt det med program-ID :t (klient) för den app som du registrerade tidigare.
    • Enter_the_Redirect_URI_Here och ersätt det med värdet för kRedirectUri i konfigurationsfilen för Microsoft Authentication Library (MSAL) som du laddade ned tidigare när du lade till omdirigerings-URL:en för plattformen.
    • Enter_the_Protected_API_Full_URL_Here och ersätt den med URL:en till webb-API:et. Enter_the_Protected_API_Full_URL_Here ska innehålla bas-URL:en (den distribuerade webb-API:ens URL) och slutpunkten (/api/todolist) för vårt ASP.NET webb-API.
    • Enter_the_Protected_API_Scopes_Here och ersätt den med de omfång som registrerats i Bevilja webb-API-behörigheter till iOS-exempelappen.
    • Enter_the_Tenant_Subdomain_Here och ersätt den med underdomänen Katalog (klientorganisation). Om din primära klientdomän till exempel är contoso.onmicrosoft.comanvänder du contoso. Om du inte känner till klientorganisationens underdomän kan du läsa klientinformationen.

Du har konfigurerat appen och den är redo att köras.

Kör iOS-exempelappen och anropa webb-API

Följ dessa steg för att skapa och köra din app:

  1. Om du vill skapa och köra koden väljer du Körmenyn Produkt i Xcode. Efter en lyckad version startar Xcode exempelappen i simulatorn.
  2. Välj Hämta token interaktivt för att begära en åtkomsttoken.
  3. Välj API – Utför GET för att anropa det tidigare konfigurerade webb-API:et ASP.NET Core. Ett lyckat anrop till webb-API:et returnerar HTTP 200, medan HTTP 403 betyder obehörig åtkomst.