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
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:
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 de optie Een platform toevoegen en selecteer vervolgens de optie Android.
- Voer de pakketnaam van het project in. Als u de voorbeeldcode hebt gedownload, is
com.azuresamples.msaldelegatedandroidkotlinsampleapp
deze waarde. - 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.
- Voer de handtekening-hash in die is gegenereerd door KeyTool.
- Selecteer Configureren.
- Kopieer de MSAL-configuratie vanuit het deelvenster Android-configuratie en sla deze op voor latere app-configuratie.
- 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 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:
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 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:
Open in Android Studio het project dat u hebt gekloond.
Open /app/src/main/res/raw/auth_config_ciam.json bestand.
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 iscontoso.onmicrosoft.com
, gebruikt ucontoso
. Als u uw tenantsubdomein niet weet, leest u de details van uw tenant.
Open het bestand /app/src/main/AndroidManifest.xml .
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.
Open /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt-bestand .
Zoek de eigenschap met de naam
WEB_API_BASE_URL
en stel de URL in op uw web-API.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:
Selecteer uw app in het menu Configuraties uitvoeren in de werkbalk.
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.
Selecteer de knop Run (Uitvoeren).
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 HTTP 403 onbevoegde toegang aantekent.