Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Externí nájemci (další informace)
V tomto rychlém startu se dozvíte, jak nakonfigurovat ukázkovou mobilní aplikaci pro Android tak, aby volala webové rozhraní API ASP.NET Core.
Požadavky
- Přihlašování uživatelů v ukázkové mobilní aplikaci pro Android (Kotlin) využitím nativního ověřování.
- V Centru pro správu Microsoft Entra zaregistrujte novou aplikaci pro webové rozhraní API s následující konfigurací. Podrobné kroky najdete v tématu Registrace aplikace. Poznamenejte si ID aplikace (klienta) a ID adresáře (tenanta) pro pozdější použití.
- Název: ciam-ToDoList-api.
- podporované typy účtů: Účty v tomto organizačním adresáři (pouze jeden tenant)
Konfigurace oborů rozhraní API
Rozhraní API musí publikovat minimálně jeden obor, označovaný také jako delegovaná oprávnění, aby klientské aplikace úspěšně získaly přístupový token pro uživatele. Chcete-li publikovat rozsah, postupujte takto:
Na stránce Registrace aplikací vyberte vytvořenou API aplikaci (ciam-ToDoList-api) a otevřete její stránku Přehled.
V části Spravovatvyberte Zveřejnit rozhraní API.
V horní části stránky vedle identifikátoru URI ID aplikacevyberte odkaz Přidat a vygenerujte jedinečný identifikátor URI pro tuto aplikaci.
Přijměte navrhovaný identifikátor URI ID aplikace, například
api://{clientId}, a vyberte Uložit. Když vaše webová aplikace požádá o přístupový token pro webové rozhraní API, přidá identifikátor URI jako předponu pro každý obor, který definujete pro rozhraní API.V části Obory definované tímto rozhraním APIvyberte Přidat obor.
Zadejte následující hodnoty, které definují přístup pro čtení k rozhraní API, a pak vyberte Přidat obor a uložte své změny.
Vlastnost Hodnota Název oboru ToDoList.Read Kdo může souhlasit pouze správci Zobrazovaný název souhlasu správce Číst seznam úkolů uživatele pomocí TodoListApi Popis souhlasu správce Povolit aplikaci, aby mohla číst uživatelův seznam úkolů pomocíTodoListApi. Stát Povoleno Vyberte Znovu přidat obor a zadejte následující hodnoty, které definují obor přístupu pro čtení a zápis do rozhraní API. Vyberte Přidat obor a uložte provedené změny:
Vlastnost Hodnota Název oboru toDoList.ReadWrite Kdo může souhlasit pouze správci Zobrazovaný název souhlasu správce Čtení a zapisování seznamu úkolů uživatelů pomocí ToDoListApi Popis souhlasu správce Povolit aplikaci číst a zapisovat seznam úkolů uživatele pomocí ToDoListApi Stát Povoleno
Přečtěte si další informace o principu nejnižšího oprávnění při publikování oprávnění pro webové rozhraní API.
Konfigurace rolí aplikací
Rozhraní API musí publikovat pro aplikace minimálně jednu roli aplikace, označovanou také jako oprávnění aplikace, aby klientské aplikace mohly získat přístupový token jako takové. Oprávnění aplikace jsou typem oprávnění, která by rozhraní API měla publikovat, když chtějí klientským aplikacím umožnit úspěšné ověření jako vlastní subjekt, a není potřeba přihlášení uživatelů. Pokud chcete publikovat oprávnění aplikace, postupujte takto:
Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-ToDoList-api) a otevřete její stránku Přehled.
V části Spravovatvyberte role aplikace.
Vyberte role aplikace Vytvořit, zadejte následující hodnoty, a pak vyberte Použít pro uložení změn:
Vlastnost Hodnota Zobrazovaný název ToDoList.Read.All Povolené typy členů Aplikace Hodnota ToDoList.Read.All Popis Povolit aplikaci číst seznam úkolů každého uživatele pomocí TodoListApi Chcete tuto roli aplikace povolit? Ponechat zaškrtnuté Znovu vyberte Vytvořit roli aplikace, poté zadejte následující hodnoty pro druhou roli aplikace, a pak vyberte Použít pro uložení změn.
Vlastnost Hodnota Zobrazovaný název ToDoList.ReadWrite.All Povolené typy členů Aplikace Hodnota ToDoList.ReadWrite.All Popis Povolit aplikaci číst a zapisovat do seznamu úkolů každého uživatele pomocí 'ToDoListApi' Chcete tuto roli aplikace povolit? Ponechat zaškrtnuté
Konfigurace volitelných nároků
Můžete přidat volitelnou deklaraci idtyp , která pomůže rozhraní API určit, zda jde o token aplikace nebo token aplikace a uživatele. I když můžete použít kombinaci prohlášení scp a rolí pro stejné účely, použití prohlášení idtyp je nejjednodušší způsob, jak rozlišit mezi tokenem aplikace a tokenem aplikace + uživatele. Například hodnota tohoto nároku je aplikace, pokud je token pouze pro aplikace.
Udělte oprávnění rozhraní API ukázkové aplikaci pro Android
Jakmile zaregistrujete svou klientskou aplikaci a webové rozhraní API a API jste zpřístupnili vytvořením oborů, můžete oprávnění klienta k API nakonfigurovat podle následujících kroků:
Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-client-app), a otevřete tak její stránku Přehled.
V části Spravovatvyberte oprávnění rozhraní API.
V části Nakonfigurovaná oprávněnívyberte Přidat oprávnění.
Vyberte kartu rozhraní API , která moje organizace používá.
V seznamu rozhraní API vyberte například ciam-ToDoList-api.
Vyberte možnost Delegovaná oprávnění.
V seznamu oprávnění vyberte ToDoList.Read, ToDoList.ReadWrite (v případě potřeby použijte vyhledávací pole).
Vyberte tlačítko Přidat oprávnění.
V tomto okamžiku jste správně přiřadili oprávnění. Vzhledem k tomu, že se jedná o tenanta zákazníka, koncoví uživatelé sami nemohou vyjádřit souhlas s těmito oprávněními. Abyste to vyřešili, musíte jako správce udělit souhlas s těmito oprávněními jménem všech uživatelů v tenantovi:
Vyberte Udělit souhlas správce pro vašeho tenanta <>, a pak vyberte Ano.
Vyberte Aktualizovata potom ověřte, že se Uděleno pro <název tenanta> objeví v části Stav pro obě oprávnění.
V seznamu Konfigurovaná oprávnění vyberte ToDoList.Read a oprávnění ToDoList.ReadWrite, po jednom a zkopírujte úplný identifikátor URI oprávnění pro pozdější použití. Úplný identifikátor URI oprávnění vypadá podobně jako
api://{clientId}/{ToDoList.Read}neboapi://{clientId}/{ToDoList.ReadWrite}.
Klonování nebo stažení ukázkového webového rozhraní API
Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip.
Pokud chcete ukázku naklonovat, otevřete příkazový řádek a přejděte do umístění, kam chcete projekt vytvořit, a zadejte následující příkaz:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.gitStáhnout soubor .zip. Extrahujte ho do cesty k souboru, kde délka názvu je menší než 260 znaků.
Konfigurace a spuštění ukázkového webového rozhraní API
V editoru kódu otevřete soubor
2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.Vyhledejte zástupný symbol:
-
Enter_the_Application_Id_Herea nahraďte ho ID (klienta) aplikace webového rozhraní API, které jste dříve zkopírovali. - Nahraďte
Enter_the_Tenant_Id_Hereidentifikátorem adresáře (tenant) , který jste zkopírovali dříve. -
Enter_the_Tenant_Subdomain_Herea nahraďte ji subdoménou Adresáře (tenanta). Pokud je například primární doména vašeho tenantacontoso.onmicrosoft.com, použijtecontoso. Pokud nemáte název tenanta, naučte se, jak zjistit podrobnosti o tenantovi.
-
Abyste ho mohli volat, musíte hostovat webové rozhraní API pro ukázkovou aplikaci pro Android. Postupujte podle Rychlý start: Nasazení webové aplikace ASP.NET pro nasazení vašeho webového rozhraní API.
Konfigurace ukázkové mobilní aplikace pro Android pro volání webového rozhraní API
Ukázka umožňuje nakonfigurovat více koncových bodů URL pro webové API a sady rozsahů. V tomto případě nakonfigurujete pouze jeden koncový bod adresy URL webového rozhraní API a jeho přidružené obory.
V android Studiu otevřete soubor
/app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt.Vyhledejte vlastnost s názvem
WEB_API_URL_1a nastavte adresu URL na webové rozhraní API.private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API hereVyhledejte vlastnost s názvem
scopesForAPI1a nastavte obory zaznamenané v pro udělení oprávnění rozhraní API ukázkové aplikaci pro Android.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}")
Spuštění ukázkové aplikace pro Android a volání webového rozhraní API
Aplikaci sestavíte a spustíte takto:
Na panelu nástrojů vyberte aplikaci z nabídky Konfigurace spuštění.
V nabídce cílového zařízení vyberte zařízení, na které chcete aplikaci spustit.
Pokud nemáte nakonfigurovaná žádná zařízení, musíte buď vytvořit virtuální zařízení s Androidem, abyste mohli použít Android Emulator, nebo připojit fyzické zařízení.
Vyberte tlačítko Spustit. Aplikace se otevře na obrazovce pro e-mail a jednorázové heslo.
Vyberte kartu API a otestujte volání API. Úspěšné volání webového rozhraní API vrátí
200HTTP, zatímco403HTTP označuje neoprávněný přístup.