Delen via


Gebruikers aanmelden en een API aanroepen in een voorbeeld van een mobiele iOS-app met behulp van systeemeigen verificatie

Van toepassing op: Witte cirkel met een grijs X-symbool. Werknemerhuurders Groene cirkel met een wit vinkje. Externe huurders (meer informatie)

In deze quickstart leert u hoe u een iOS-voorbeeldtoepassing configureert om een ASP.NET Core-web-API aan te roepen.

Voorwaarden

Een web-API-toepassing registreren

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een Applicatieontwikkelaar.

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

  3. Blader naar Identity>Applications>App-registraties.

  4. Selecteer + Nieuwe registratie.

  5. In de pagina Een toepassing registreren die wordt weergegeven, voert u de registratiegegevens van uw toepassing in.

    1. Voer in de sectie Naam een beschrijvende toepassingsnaam in die wordt weergegeven aan gebruikers van de app, bijvoorbeeld ciam-ToDoList-api.

    2. Selecteer onder Ondersteunde accounttypen alleen Accounts in deze organisatiemap.

  6. Selecteer om Register aan te maken voor de toepassing.

  7. Het deelvenster Overzicht van de toepassing wordt weergegeven wanneer de registratie is voltooid. Noteer de Directory-id (tenant) en de -toepassings-id (client)-id die moet worden gebruikt in de broncode van uw toepassing.

API-bereiken configureren

Een API moet minimaal één bereik publiceren, ook wel gedelegeerde machtiginggenoemd, zodat de client-apps een toegangstoken voor een gebruiker kunnen verkrijgen. Voer de volgende stappen uit om een reikwijdte te publiceren:

  1. Selecteer op de pagina App-registraties de API-toepassing die u hebt gemaakt (ciam-ToDoList-api) om de bijbehorende pagina Overzicht te openen.

  2. Selecteer onder BeherenMaak een API beschikbaar.

  3. Selecteer bovenaan de pagina, naast URI voor de toepassings-id, de link Toevoegen om een URI te genereren die uniek is voor deze app.

  4. Accepteer de voorgestelde URI voor de toepassings-id, zoals api://{clientId}, en selecteer Opslaan. Wanneer uw webtoepassing een toegangstoken voor de web-API aanvraagt, wordt de URI toegevoegd als het voorvoegsel voor elk bereik dat u voor de API definieert.

  5. Selecteer onder scopen die zijn gedefinieerd door deze APIEen scope toevoegen.

  6. Voer de volgende waarden in waarmee een leestoegang tot de API wordt gedefinieerd en selecteer vervolgens Bereik toevoegen om uw wijzigingen op te slaan:

    Vastgoed Waarde
    Scope-naam ToDoList.Read
    Wie kan toestemming geven Alleen beheerders
    Weergavenaam van beheerderstoestemming De takenlijst van gebruikers lezen met de 'TodoListApi'
    Beschrijving van beheerderstoestemming Sta de app toe om de takenlijst van de gebruiker te lezen met de 'TodoListApi'.
    Staat ingeschakeld
  7. Selecteer Nogmaals een scope toevoegen en voer de volgende waarden in waarmee een scope voor lees- en schrijftoegang tot de API wordt gedefinieerd. Selecteer Voeg scope toe om uw wijzigingen op te slaan:

    Vastgoed Waarde
    Scope-naam ToDoList.ReadWrite
    Wie kan toestemming geven alleen beheerders
    Beheerderstoestemming weergavenaam Gebruikers ToDo-lijst lezen en schrijven met de 'ToDoListApi'
    Beschrijving van beheerderstoestemming Toestaan dat de app de Takenlijst van de gebruiker kan lezen en schrijven met behulp van de toDoListApi-
    Staat ingeschakeld

Meer informatie over het principe van minimale bevoegdheden bij het publiceren van machtigingen voor een web-API.

App-rollen configureren

Een API moet minimaal één app-rol publiceren voor toepassingen, ook wel toepassingsmachtiginggenoemd, zodat de client-apps zelf een toegangstoken kunnen verkrijgen. Toepassingsmachtigingen zijn het type machtigingen dat API's moeten publiceren wanneer ze clienttoepassingen in staat willen stellen zich als zichzelf te verifiëren en geen gebruikers hoeven aan te melden. Voer de volgende stappen uit om een toepassingsmachtiging te publiceren:

  1. Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-ToDoList-api) om de pagina Overzicht te openen.

  2. Selecteer onder Beherende optie App-rollen.

  3. Selecteer app-rol makenen voer vervolgens de volgende waarden in en selecteer vervolgens Toepassen om uw wijzigingen op te slaan:

    Vastgoed Waarde
    Weergavenaam ToDoList.Read.All
    Toegestane lidtypen Toepassingen
    Waarde ToDoList.Read.All
    Beschrijving Toestaan dat de app de takenlijst van elke gebruiker kan lezen met behulp van de TodoListApi
    Wilt u deze app-rol inschakelen? Houd deze ingeschakeld
  4. Selecteer App-rol maken opnieuw en voer vervolgens de volgende waarden in voor de tweede app-rol en selecteer vervolgens Toepassen om uw wijzigingen op te slaan:

    Vastgoed Waarde
    Weergavenaam ToDoList.ReadWrite.All
    Toegestane lidtypen Toepassingen
    Waarde ToDoList.ReadWrite.All
    Beschrijving toestaan dat de app de Takenlijst van elke gebruiker kan lezen en schrijven met behulp van de toDoListApi-
    Wilt u deze app-rol inschakelen? Houd deze ingeschakeld

Optionele claims configureren

U kunt de idtyp optionele claim toevoegen om de web-API te helpen bepalen of een token een -app is token of een -app + gebruiker token. Hoewel u een combinatie van scp-- en -rollen claims voor hetzelfde doel kunt gebruiken, is het gebruik van de claim idtyp de eenvoudigste manier om een app-token en een app + gebruikerstoken van elkaar te onderscheiden. De waarde van deze claim is bijvoorbeeld app wanneer het token een alleen-app-token is.

API-machtigingen verlenen aan de iOS-voorbeeld-app

Zodra u zowel uw client-app als web-API hebt geregistreerd en u de API beschikbaar hebt gemaakt 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 pagina Overzicht te openen.

  2. Selecteer onder 'Beheer' API-machtigingen.

  3. Selecteer onder Geconfigureerde machtigingenEen machtiging toevoegen.

  4. Selecteer de API's die mijn organisatie gebruikt tabblad.

  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 Machtigingen 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 Vernieuwenen controleer vervolgens of Verleend voor <uw tenantnaam> wordt weergegeven onder Status voor beide machtigingen.

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

Voorbeeldweb-API klonen of downloaden

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-dotnet-tutorial.git
    
  • Download het .zip bestand. Pak het uit naar een bestandspad waarbij de lengte van de naam minder dan 260 tekens is.

Voorbeeldweb-API configureren en uitvoeren

  1. Open 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json bestand in de code-editor.

  2. Zoek de plaatsaanduiding:

    • Enter_the_Application_Id_Here en vervang deze door de Application (client) ID van de web-API die u eerder hebt gekopieerd.
    • Enter_the_Tenant_Id_Here en vervang deze door het Directory-id (tenant) die u eerder hebt gekopieerd.
    • Enter_the_Tenant_Subdomain_Here en vervang dit door het subdomein Directory (tenant). Als uw primaire tenantdomein bijvoorbeeld is contoso.onmicrosoft.com, gebruikt u contoso. Als u uw tenantnaam niet hebt, leert u hoe u uw tenantgegevens kunt lezen.

U moet uw web-API hosten voor de iOS-voorbeeld-app om deze aan te roepen. Volg quickstart: Een ASP.NET-web-app implementeren om uw web-API te implementeren.

Voorbeeld van een mobiele iOS-app configureren om web-API aan te roepen

Met het voorbeeld kunt u meerdere eindpunten van Web API-URL's en sets van scopes configureren. In dit geval configureert u slechts één eindpunt voor de Web-API-URL en de bijbehorende scopes.

  1. Open /NativeAuthSampleApp/ProtectedAPIViewController.swift bestand in uw Xcode. Als u macOS gebruikt, ziet u hier een voorbeeld van ProtectedAPIViewController.swift codebestand.

  2. Zoek protectedAPIUrl1 en voer de URL van uw web-API in als waarde.

    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. Zoek protectedAPIScopes1 en stel de scopes vast die zijn vastgelegd in om API-machtigingen te configureren voor de iOS-voorbeeld-app.

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

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. Klik op het tabblad API om de API-aanroep te testen. Een geslaagde aanroep van de web-API retourneert HTTP-200, terwijl HTTP-403 onbevoegde toegang aantekent.

Volgende stappen