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
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:
Meld u als toepassingsontwikkelaar aan bij het Microsoft Entra-beheercentrum.
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.
Blader naar identiteitstoepassingen>> App-registraties.
Selecteer + Nieuwe registratie.
Op de pagina Een toepassing registreren die wordt weergegeven;
- Voer een betekenisvolle toepassingsnaam in die wordt weergegeven aan gebruikers van de app, bijvoorbeeld ciam-client-app.
- Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
Selecteer Registreren.
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:
- Selecteer Verificatie onder Beheren.
- Selecteer op de pagina Platformconfiguraties een platform toevoegen en selecteer vervolgens de optie iOS/macOS.
- Voer de bundel-id van het project in. Als u de voorbeeldcode hebt gedownload, is
com.microsoft.identitysample.ciam.MSALiOS
deze waarde. - 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.
- Selecteer Gereed.
Openbare clientstroom inschakelen
Volg deze stappen om uw app te identificeren als een openbare client:
Selecteer Verificatie onder Beheren.
Selecteer Ja onder Geavanceerde instellingen voor openbare clientstromen toestaan.
Selecteer Opslaan om uw wijzigingen op te slaan.
Beheerderstoestemming verlenen
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:
Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.
Selecteer onder Beheren de optie API-machtigingen.
- Selecteer Beheerderstoestemming verlenen voor <uw tenantnaam> en selecteer Vervolgens Ja.
- 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:
Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.
Selecteer onder Beheren de optie API-machtigingen.
Selecteer onder Geconfigureerde machtigingen de optie Een machtiging toevoegen.
Selecteer de API's die door mijn organisatie worden gebruikt .
Selecteer in de lijst met API's de API, zoals ciam-ToDoList-api.
Selecteer de optie Gedelegeerde machtigingen .
Selecteer In de lijst met machtigingen toDoList.Read, ToDoList.ReadWrite (gebruik indien nodig het zoekvak).
Selecteer de knop Toestemmingen toevoegen.
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:
Selecteer Beheerderstoestemming verlenen voor <uw tenantnaam> en selecteer Vervolgens Ja.
Selecteer Vernieuwen en controleer vervolgens of Verleend voor <uw tenantnaam> wordt weergegeven onder Status voor beide machtigingen.
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}
ofapi://{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:
Open in Xcode het project dat u hebt gekloond.
Open het bestand /MSALiOS/Configuration.swift .
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 iscontoso.onmicrosoft.com
, gebruikt ucontoso
. 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:
- 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.
- Selecteer Token interactief verkrijgen om een toegangstoken aan te vragen.
- 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 HTTP403
onbevoegde toegang aantekent.