Delen via


Gebruikers aanmelden en een beveiligde web-API aanroepen in een Android-voorbeeld-app (Kotlin)

In deze handleiding ziet u hoe u een voorbeeld van een mobiele Android-toepassing configureert om gebruikers aan te melden en een 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 Android-configuratiecode bij om uw eigen Microsoft Entra Externe ID te gebruiken voor tenantgegevens van de klant.
  • Voer de mobiele Android-voorbeeldtoepassing uit en test deze.
  • Een beveiligde web-API aanroepen.

Vereisten

  • Android Studio.

  • 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 Android-app om een functionele beveiligde ASP.NET Core-web-API te hebben. Zorg ervoor dat u de volgende stappen uitvoert:

    • Een web-API-toepassing registreren
    • API-bereiken configureren
    • App-rollen configureren
    • Optionele claims configureren
    • Voorbeeldweb-API klonen of downloaden
    • Voorbeeldweb-API configureren en uitvoeren

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 de optie Een platform toevoegen en selecteer vervolgens de optie Android.
  3. Voer de pakketnaam van het project in. Als u de voorbeeldcode hebt gedownload, is com.azuresamples.msaldelegatedandroidkotlinsampleappdeze waarde.
  4. Selecteer in de sectie Handtekening-hash van het deelvenster Uw Android-app configureren de optie Een hash voor de ontwikkelingshandtekening genereren. Dit verandert voor elke ontwikkelomgeving. Kopieer en voer de KeyTool-opdracht uit voor uw besturingssysteem in uw Terminal.
  5. Voer de handtekening-hash in die is gegenereerd door KeyTool.
  6. Selecteer Configureren.
  7. Kopieer de MSAL-configuratie vanuit het deelvenster Android-configuratie en sla deze op voor latere app-configuratie.
  8. 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.

  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. In de lijst met geconfigureerde machtigingen is aan uw toepassing de machtiging User.Read toegewezen. Omdat de tenant echter een externe tenant is, kunnen de consumentengebruikers zelf geen toestemming geven voor deze machtiging. U als beheerder moet toestemming geven voor deze machtiging 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 bereiken.

Web-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}.

Voorbeeld van mobiele Android-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-android-sample
    

De mobiele Android-voorbeeldtoepassing 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 Android Studio het project dat u hebt gekloond.

  2. Open /app/src/main/res/raw/auth_config_ciam.json bestand.

  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 redirect_uri in het MSAL-configuratiebestand (Microsoft Authentication Library) dat u eerder hebt gedownload toen u de omleidings-URL van het platform toevoegde.
    • 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.
  4. Open het bestand /app/src/main/AndroidManifest.xml .

  5. Zoek de tijdelijke aanduiding:

    • ENTER_YOUR_SIGNATURE_HASH_HERE en vervang deze door de handtekening-hash die u eerder hebt gegenereerd toen u de omleidings-URL van het platform toevoegde.
  6. Open /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt-bestand .

  7. Zoek de eigenschap met de naam WEB_API_BASE_URL en stel de URL in op uw web-API.

  8. Zoek de eigenschap met de naam scopes en stel de bereiken in die zijn vastgelegd in Machtigingen voor web-API verlenen aan de Android-voorbeeld-app.

    private const val scopes = "" // Developers should set the respective scopes of their web API here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

U hebt de app geconfigureerd en deze kan worden uitgevoerd.

De mobiele Android-voorbeeldtoepassing uitvoeren en testen

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 Android-apparaat te verbinden.

  3. Selecteer de knop Run (Uitvoeren).

  4. Selecteer Token interactief verkrijgen om een toegangstoken aan te vragen.

  5. 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.