Delen via


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

In dit artikel wordt beschreven hoe u een voorbeeld van een mobiele Android-toepassing configureert om een ASP.NET Core-web-API aan te roepen.

Vereisten

Een web-API-toepassing registreren

  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. Voer op de pagina Een toepassing registreren die wordt weergegeven 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. Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.

  6. Selecteer Registreren om de toepassing te maken.

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

API-bereiken configureren

Een API moet minimaal één bereik, ook wel Gedelegeerde machtiging genoemd, publiceren voor de client-apps om een toegangstoken voor een gebruiker te verkrijgen. Voer de volgende stappen uit om een bereik te publiceren:

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

  2. Selecteer onder Beheren Een API beschikbaar maken.

  3. Selecteer boven aan de pagina, naast de URI van de toepassings-id, de koppeling 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. Onder Bereiken die door deze API worden bepaald selecteert u Een bereik 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:

    Eigenschappen Weergegeven als
    Bereiknaam ToDoList.Read
    Wie kan toestemming verlenen? Alleen beheerders
    Weergavenaam voor beheerderstoestemming ToDo-lijst met gebruikers lezen met behulp van de TodoListApi
    Beschrijving van beheerderstoestemming Sta toe dat de app de Takenlijst van de gebruiker kan lezen met behulp van de TodoListApi.
    Provincie Ingeschakeld
  7. Selecteer Opnieuw een bereik toevoegen en voer de volgende waarden in waarmee een bereik voor lees- en schrijftoegang tot de API wordt gedefinieerd. Selecteer Bereik toevoegen om uw wijzigingen op te slaan:

    Eigenschappen Weergegeven als
    Bereiknaam ToDoList.ReadWrite
    Wie kan toestemming verlenen? Alleen beheerders
    Weergavenaam voor beheerderstoestemming ToDo-lijst met gebruikers lezen en schrijven met behulp van de ToDoListApi
    Beschrijving van beheerderstoestemming Toestaan dat de app de Takenlijst van de gebruiker kan lezen en schrijven met behulp van de ToDoListApi
    Provincie Ingeschakeld
  8. Selecteer onder Beheren manifest om de API-manifesteditor te openen.

  9. Stel accessTokenAcceptedVersion de eigenschap in op 2.

  10. Selecteer Opslaan.

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 Toepassingsmachtiging genoemd, 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 overzichtspagina te openen.

  2. Selecteer onder Beheren app-rollen.

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

    Eigenschappen Weergegeven als
    Display name ToDoList.Read.All
    De toegestane ledentypen Toepassingen
    Weergegeven als ToDoList.Read.All
    Beschrijving Toestaan dat de app de Takenlijst van elke gebruiker kan lezen met behulp van de TodoListApi
  4. Selecteer De app-rol opnieuw maken en voer vervolgens de volgende waarden in voor de tweede app-rol en selecteer Toepassen om uw wijzigingen op te slaan:

    Eigenschappen Weergegeven als
    Display name ToDoList.ReadWrite.All
    De toegestane ledentypen Toepassingen
    Weergegeven als ToDoList.ReadWrite.All
    Beschrijving Toestaan dat de app de Takenlijst van elke gebruiker kan lezen en schrijven met behulp van de ToDoListApi

Optionele claims configureren

U kunt optionele claim idtyp gebruiken om de web-API te helpen bepalen of een token een app-token is of een app + gebruikerstoken. Hoewel u een combinatie van scp - en rollenclaims voor hetzelfde doel kunt gebruiken, is het gebruik van de idtyp-claim de eenvoudigste manier om een app-token en een app + gebruikerstoken apart te vertellen. De waarde van deze claim is bijvoorbeeld app wanneer het token een token is dat alleen voor apps geldt.

API-machtigingen verlenen aan de Android-voorbeeld-app

Wanneer u zowel de clienttoepassing als de Web-API hebt geregistreerd en u de API hebt weergegeven 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}.

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 het bestand in de code-editor.

  2. Zoek de tijdelijke aanduiding:

    • Enter_the_Application_Id_Here en vervang deze door de toepassings-id (client) van de web-API die u eerder hebt gekopieerd.
    • Enter_the_Tenant_Id_Here en vervang deze door de map-id (tenant) die u eerder hebt gekopieerd.
    • 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 tenantnaam niet hebt, leest u de details van uw tenant.

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

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

Met het voorbeeld kunt u meerdere EINDPUNTEN voor web-API-URL's en sets bereiken configureren. In dit geval configureert u slechts één eindpunt voor de WEB-API-URL en de bijbehorende bereiken.

  1. Open /app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt het bestand in uw Android Studio.

  2. Zoek de eigenschap met de naam WEB_API_URL_1 en stel de URL in op uw web-API.

    private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
    
  3. Zoek de eigenschap met de naam scopesForAPI1 en stel de bereiken in die zijn vastgelegd in API-machtigingen verlenen voor de Android-voorbeeld-app.

    private val scopesForAPI1 = listOf<String>() // Developers should set the respective scopes of their web API here. For example, private val scopes = listOf<String>("api://{clientId}/{ToDoList.Read}", "api://{clientId}/{ToDoList.ReadWrite}")
    

Voorbeeld-app voor Android uitvoeren en web-API aanroepen

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

  1. Selecteer uw app in het menu Configuraties uitvoeren in de werkbalk.

  2. Selecteer in het menu van het doelapparaat het apparaat waarop u de app wilt uitvoeren.

    Als u geen apparaten hebt geconfigureerd, moet u een virtueel Android-apparaat maken om de Android Emulator te gebruiken of een fysiek apparaat te verbinden.

  3. Selecteer de knop Uitvoeren . De app wordt geopend op het e-mailbericht en het eenmalige wachtwoordcodescherm.

  4. Selecteer 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