Delen via


Gebruikers aanmelden en een beveiligde web-API aanroepen in de voorbeeld-iOS-app (Swift)

In deze handleiding ziet u hoe u een voorbeeld van een mobiele iOS-toepassing configureert om gebruikers aan te melden en een beveiligde ASP.NET Core-web-API aan te roepen.

In dit artikel voert u de volgende taken uit:

  • Registreer een toepassing in het Microsoft Entra-beheercentrum.
  • Voeg een omleidings-URL voor het platform toe.
  • Schakel openbare clientstromen in.
  • Werk het voorbeeldbestand van de iOS-configuratiecode bij om uw eigen Microsoft Entra Externe ID te gebruiken voor tenantgegevens van de klant.
  • Voer de mobiele iOS-voorbeeldtoepassing uit en test deze.

Vereisten

  • Xcode.

  • Een externe tenant. Als u nog geen abonnement hebt, meldt u zich aan voor een gratis proefversie.

  • Een API-registratie die ten minste één bereik (gedelegeerde machtigingen) en één app-rol (toepassingsmachtiging) beschikbaar maakt, zoals ToDoList.Read. Als u dat nog niet hebt gedaan, volgt u de instructies voor het aanroepen van een API in een voorbeeld van een mobiele iOS-app om een functionele beveiligde ASP.NET Core-web-API te hebben. Zorg ervoor dat u de volgende stappen uitvoert:

    • Registreer een web-API-toepassing.
    • API-bereiken configureren.
    • App-rollen configureren.
    • Configureer optionele claims.
    • Kloon of download voorbeeldweb-API.
    • Configureer en voer voorbeeldweb-API uit.

Een toepassing registreren

Als u wilt dat uw toepassing gebruikers kan aanmelden met Microsoft Entra, moet Microsoft Entra Externe ID op de hoogte worden gesteld van de toepassing die u maakt. De app-registratie brengt een vertrouwensrelatie tot stand tussen de app en Microsoft Entra. Wanneer u een toepassing registreert, genereert externe id een unieke id die bekend staat als een toepassings-id (client), een waarde die wordt gebruikt om uw app te identificeren bij het maken van verificatieaanvragen.

De volgende stappen laten zien hoe u uw app registreert in het Microsoft Entra-beheercentrum:

  1. Meld u als toepassingsontwikkelaar aan bij het Microsoft Entra-beheercentrum.

  2. Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om vanuit het menu Mappen en abonnementen over te schakelen naar uw externe tenant.

  3. Blader naar identiteitstoepassingen>> App-registraties.

  4. Selecteer + Nieuwe registratie.

  5. Op de pagina Een toepassing registreren die wordt weergegeven;

    1. Voer een betekenisvolle toepassingsnaam in die wordt weergegeven aan gebruikers van de app, bijvoorbeeld ciam-client-app.
    2. Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
  6. Selecteer Registreren.

  7. Het deelvenster Overzicht van de toepassing wordt weergegeven bij een geslaagde registratie. Noteer de toepassings-id (client) die moet worden gebruikt in de broncode van uw toepassing.

Een omleidings-URL voor het platform toevoegen

Voer de volgende stappen uit om uw app-type op te geven voor uw app-registratie:

  1. Selecteer Verificatie onder Beheren.
  2. Selecteer op de pagina Platformconfiguraties een platform toevoegen en selecteer vervolgens de optie iOS/macOS.
  3. Voer de bundel-id van het project in. Als u de voorbeeldcode hebt gedownload, is com.microsoft.identitysample.ciam.MSALiOSdeze waarde.
  4. Selecteer Configureren en sla de MSAL-configuratie op die wordt weergegeven in het configuratievenster iOS/macOS, zodat u deze kunt invoeren wanneer u de app later configureert.
  5. Selecteer Gereed.

Openbare clientstroom inschakelen

Volg deze stappen om uw app te identificeren als een openbare client:

  1. Selecteer Verificatie onder Beheren.

  2. Selecteer Ja onder Geavanceerde instellingen voor openbare clientstromen toestaan.

  3. Selecteer Opslaan om uw wijzigingen op te slaan.

Nadat u uw toepassing hebt geregistreerd, krijgt deze de machtiging User.Read toegewezen. Omdat de tenant echter een externe tenant is, kunnen de gebruikers van de klant zelf geen toestemming geven voor deze machtiging. U als beheerder moet toestemming geven voor deze machtiging namens alle gebruikers in de tenant:

  1. Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.

  2. Selecteer onder Beheren de optie API-machtigingen.

    1. Selecteer Beheerderstoestemming verlenen voor <uw tenantnaam> en selecteer Vervolgens Ja.
    2. Selecteer Vernieuwen en controleer vervolgens of Verleend voor <uw tenantnaam> wordt weergegeven onder Status voor de machtiging.

Web-API-machtigingen verlenen aan de iOS-voorbeeld-app

Nadat u zowel uw client-app, web-API als de API hebt geregistreerd door bereiken te maken, kunt u de machtigingen van de client voor de API configureren door de volgende stappen uit te voeren:

  1. Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.

  2. Selecteer onder Beheren de optie API-machtigingen.

  3. Selecteer onder Geconfigureerde machtigingen de optie Een machtiging toevoegen.

  4. Selecteer de API's die door mijn organisatie worden gebruikt .

  5. Selecteer in de lijst met API's de API, zoals ciam-ToDoList-api.

  6. Selecteer de optie Gedelegeerde machtigingen .

  7. Selecteer In de lijst met machtigingen toDoList.Read, ToDoList.ReadWrite (gebruik indien nodig het zoekvak).

  8. Selecteer de knop Toestemmingen toevoegen.

  9. Op dit moment hebt u de machtigingen correct toegewezen. Omdat de tenant echter de tenant van een klant is, kunnen de consumentengebruikers zelf geen toestemming geven voor deze machtigingen. Om dit te verhelpen, moet u als beheerder toestemming geven voor deze machtigingen namens alle gebruikers in de tenant:

    1. Selecteer Beheerderstoestemming verlenen voor <uw tenantnaam> en selecteer Vervolgens Ja.

    2. Selecteer Vernieuwen en controleer vervolgens of Verleend voor <uw tenantnaam> wordt weergegeven onder Status voor beide machtigingen.

  10. Selecteer in de lijst Geconfigureerde machtigingen de machtigingen ToDoList.Read en ToDoList.ReadWrite , één voor één en kopieer de volledige URI van de machtiging voor later gebruik. De volledige machtigings-URI ziet er ongeveer als volgt uit api://{clientId}/{ToDoList.Read} of api://{clientId}/{ToDoList.ReadWrite}.

Voorbeeld van mobiele iOS-toepassing klonen

Als u de voorbeeldtoepassing wilt verkrijgen, kunt u deze klonen vanuit GitHub of downloaden als een .zip-bestand.

  • Als u het voorbeeld wilt klonen, opent u een opdrachtprompt en navigeert u naar de locatie waar u het project wilt maken en voert u de volgende opdracht in:

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

De mobiele voorbeeldtoepassing voor iOS configureren

Als u verificatie en toegang tot web-API-resources wilt inschakelen, configureert u het voorbeeld door de volgende stappen uit te voeren:

  1. Open in Xcode het project dat u hebt gekloond.

  2. Open het bestand /MSALiOS/Configuration.swift .

  3. Zoek de tijdelijke aanduiding:

    • Enter_the_Application_Id_Here en vervang deze door de toepassings-id (client) van de app die u eerder hebt geregistreerd.
    • Enter_the_Redirect_URI_Here en vervang deze door de waarde van kRedirectUri in het MSAL-configuratiebestand (Microsoft Authentication Library) dat u eerder hebt gedownload toen u de omleidings-URL van het platform hebt toegevoegd.
    • Enter_the_Protected_API_Full_URL_Here en vervang deze door de URL naar uw web-API. De Enter_the_Protected_API_Full_URL_Here moet de basis-URL (de geïmplementeerde WEB-API-URL) en het eindpunt (/api/todolist) voor onze ASP.NET-web-API bevatten.
    • Enter_the_Protected_API_Scopes_Here en vervang deze door de bereiken die zijn vastgelegd in Web-API-machtigingen verlenen voor de iOS-voorbeeld-app.
    • Enter_the_Tenant_Subdomain_Here en vervang het door het subdomein Directory (tenant). Als uw primaire tenantdomein bijvoorbeeld is contoso.onmicrosoft.com, gebruikt u contoso. Als u uw tenantsubdomein niet weet, leest u de details van uw tenant.

U hebt de app geconfigureerd en deze kan worden uitgevoerd.

Voorbeeld-app voor iOS uitvoeren en web-API aanroepen

Voer de volgende stappen uit om uw app te bouwen en uit te voeren:

  1. Als u uw code wilt bouwen en uitvoeren, selecteert u Uitvoeren in het menu Product in Xcode. Na een geslaagde build start Xcode de voorbeeld-app in de simulator.
  2. Selecteer Token interactief verkrijgen om een toegangstoken aan te vragen.
  3. Selecteer API: VOER GET uit om de eerder ingestelde ASP.NET Core-web-API aan te roepen. Een geslaagde aanroep van de web-API retourneert HTTP 200, terwijl HTTP 403 onbevoegde toegang aantekent.