Dela via


Logga in användare och anropa ett API i iOS-exempelmobilappen med inbyggd autentisering

Gäller för: vit cirkel med en grå X-symbol. Arbetsstyrkeklienter grön cirkel med en vit kontrollsymbol. externa klienter (läs mer)

I den här snabbstarten lär du dig hur du konfigurerar iOS-exempelprogram för att anropa ett ASP.NET Core-webb-API.

Förutsättningar

Registrera ett webb-API-program

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

  2. Om du har åtkomst till flera klienter, använd ikonen Inställningar i den övre menyn för att växla till din externa klient från menyn Kataloger + prenumerationer.

  3. Bläddra till Identity>Applications>App registrations.

  4. Välj + Ny registrering.

  5. På sidan Registrera ett program som visas anger du programmets registreringsinformation:

    1. I avsnittet Namn anger du ett beskrivande programnamn som ska visas för appens användare, till exempel ciam-ToDoList-api.

    2. Under Kontotyper som stödsväljer du endast Konton i den här organisationskatalogen.

  6. Välj Registrera för att skapa programmet.

  7. Programmets översiktsfönster visas när registreringen är klar. Registrera Directory-ID:t (klientorganisation) och program-ID (klient)-ID:t som ska användas i programmets källkod.

Konfigurera API-omfång

Ett API måste publicera minst ett omfång, även kallat delegerad behörighet, för att klientapparna ska kunna hämta en åtkomsttoken för en användare. Följ dessa steg för att publicera ett omfång:

  1. På sidan Appregistreringar väljer du det API-program som du skapade (ciam-ToDoList-api) för att öppna sidan Översikt.

  2. Under Hanteraväljer du alternativet Exponera ett API.

  3. Längst upp på sidan väljer du länken Lägg till bredvid program-ID-URIför att generera en URI som är unik för den här appen.

  4. Acceptera den föreslagna program-ID-URI:n, till exempel api://{clientId}, och välj Spara. När ditt webbprogram begär en åtkomsttoken för webb-API:et läggs URI:n till som prefix för varje omfång som du definierar för API:et.

  5. Under Omfång som definierats av det här API:etväljer du Lägg till ett omfång.

  6. Ange följande värden som definierar läsbehörighet till API:et och välj sedan Lägg till omfång för att spara ändringarna:

    Egenskap Värde
    Omfångsnamn ToDoList.Read
    Vem kan samtycka endast administratörer
    Visningsnamn för administratörsmedgivande Läsa användarnas ToDo-lista med hjälp av "TodoListApi"
    Beskrivning av administratörsmedgivande Tillåt att appen läser användarens ToDo-lista med hjälp av "TodoListApi".
    Stat aktiverat
  7. Välj Lägg till ett omfång igen och ange följande värden som definierar ett läs- och skrivåtkomstomfång till API:et. Välj Lägg till omfång för att spara ändringarna:

    Egenskap Värde
    Omfångsnamn ToDoList.ReadWrite
    Vem kan samtycka endast administratörer
    Visningsnamn för administratörsgodkännande Läsa och skriva användares ToDo-lista med hjälp av "ToDoListApi"
    Beskrivning av administratörsmedgivande Tillåt att appen läser och skriver användarens ToDo-lista med hjälp av "ToDoListApi"
    Stat aktiverat
  8. Under Hanteraväljer du Manifest för att öppna API-manifestredigeraren.

  9. Ange egenskapen accessTokenAcceptedVersion till 2.

  10. Välj Spara.

Läs mer om principen om lägsta behörighet när du publicerar behörigheter för ett webb-API.

Konfigurera app roller

Ett API måste publicera minst en approll för applikationer, även kallat programbehörighet, för att klientapparna ska få en åtkomsttoken som sig själv. Programbehörigheter är den typ av behörigheter som API:er bör publicera när de vill att klientprogram ska kunna autentiseras som sig själva och inte behöver logga in användare. Följ dessa steg för att publicera en applikationsbehörighet:

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

  2. Under Hanteraväljer du Applikationsroller.

  3. Välj Skapa approlloch ange sedan följande värden och välj sedan Använd för att spara ändringarna:

    Egenskap Värde
    Visningsnamn ToDoList.Read.All
    Tillåtna medlemstyper Applikationer
    Värde ToDoList.Read.All
    Beskrivning Tillåt att appen läser alla användares ToDo-lista med hjälp av "TodoListApi"
  4. Välj Skapa approll igen och ange sedan följande värden för den andra approllen och välj sedan Använd för att spara ändringarna:

    Egenskap Värde
    Visningsnamn ToDoList.ReadWrite.All
    Tillåtna medlemstyper Applikationer
    Värde ToDoList.ReadWrite.All
    Beskrivning Tillåt att appen läser och skriver alla användares ToDo-lista med hjälp av "ToDoListApi"

Konfigurera valfria anspråk

Du kan lägga till det valfria idtyp-anspråket för att hjälpa webb-API:t att avgöra om en token är en apptoken eller en app- och användartoken. Även om du kan använda en kombination av scp- och -roller claims för samma ändamål, är det enklaste sättet att skilja mellan en apptoken och en app + användartoken att använda idtyp claims. Värdet för det här anspråket är till exempel app när token är en token som endast används för appar.

Bevilja API-behörigheter till iOS-exempelappen

När du har registrerat både klientappen och 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 Hanteraväljer du API-behörigheter.

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

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

  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 Uppdateraoch kontrollera sedan att Beviljas för <ditt klientnamn> 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 som api://{clientId}/{ToDoList.Read} eller api://{clientId}/{ToDoList.ReadWrite}.

Klona eller ladda ned exempelwebb-API

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-dotnet-tutorial.git
    
  • Ladda ned filen .zip. Extrahera den till en filsökväg där namnets längd är mindre än 260 tecken.

Konfigurera och köra exempelwebb-API

  1. Öppna 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json fil i kodredigeraren.

  2. Hitta platshållaren:

    • Enter_the_Application_Id_Here och ersätt det med program-ID (klient)-ID:t för webb-API:et som du kopierade tidigare.
    • Enter_the_Tenant_Id_Here och ersätt det med Directory-ID:t (klientorganisation) du kopierade tidigare.
    • 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 har ditt klientnamn lär du dig att läsa klientinformationen.

Du måste vara värd för ditt webb-API för att iOS-exempelappen ska kunna anropa den. Följ snabbstart: Distribuera en ASP.NET webbapp för att distribuera webb-API:et.

Konfigurera iOS-exempelmobilappen för att anropa webb-API

Med exemplet kan du konfigurera flera webb-API URL-slutpunkter och uppsättningar med omfång. I det här fallet konfigurerar du bara en URL-slutpunkt för webb-API:et och dess associerade omfång.

  1. Öppna /NativeAuthSampleApp/ProtectedAPIViewController.swift-filen i Xcode. Om du använder macOS, här är ett exempel ProtectedAPIViewController.swift kodfil.

  2. Leta upp protectedAPIUrl1 och ange webbadressen till webb-API:et som dess värde.

    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. Leta upp protectedAPIScopes1 och ange omfången som registrerats i Bevilja API-behörigheter till iOS-exempelappen.

    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}"]
    

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ör på menyn Product i Xcode. Efter en lyckad version startar Xcode exempelappen i simulatorn.
  2. Välj fliken API för att testa API-anropet. Ett lyckat anrop till webb-API:et returnerar HTTP-200, medan HTTP-403 innebär obehörig åtkomst.

Nästa steg