Sdílet prostřednictvím


Přihlášení uživatelů a volání rozhraní API v ukázkové aplikaci pro Android pomocí nativního ověřování

Platí pro: Zelený kruh s bílým symbolem zaškrtnutí, který označuje, že následující obsah platí pro externí nájemce. 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

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:

  1. Na stránce Registrace aplikací vyberte vytvořenou API aplikaci (ciam-ToDoList-api) a otevřete její stránku Přehled.

  2. V části Spravovatvyberte Zveřejnit rozhraní API.

  3. V horní části stránky vedle identifikátoru URI ID aplikacevyberte odkaz Přidat a vygenerujte jedinečný identifikátor URI pro tuto aplikaci.

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

  5. V části Obory definované tímto rozhraním APIvyberte Přidat obor.

  6. 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
  7. 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:

  1. Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-ToDoList-api) a otevřete její stránku Přehled.

  2. V části Spravovatvyberte role aplikace.

  3. 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é
  4. 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ů:

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

  2. V části Spravovatvyberte oprávnění rozhraní API.

  3. V části Nakonfigurovaná oprávněnívyberte Přidat oprávnění.

  4. Vyberte kartu rozhraní API , která moje organizace používá.

  5. V seznamu rozhraní API vyberte například ciam-ToDoList-api.

  6. Vyberte možnost Delegovaná oprávnění.

  7. V seznamu oprávnění vyberte ToDoList.Read, ToDoList.ReadWrite (v případě potřeby použijte vyhledávací pole).

  8. Vyberte tlačítko Přidat oprávnění.

  9. 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:

    1. Vyberte Udělit souhlas správce pro vašeho tenanta <>, a pak vyberte Ano.

    2. Vyberte Aktualizovata potom ověřte, že se Uděleno pro <název tenanta> objeví v části Stav pro obě oprávnění.

  10. 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} nebo api://{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.git
    
  • Stá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

  1. V editoru kódu otevřete soubor 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json.

  2. Vyhledejte zástupný symbol:

    • Enter_the_Application_Id_Here a nahraďte ho ID (klienta) aplikace webového rozhraní API, které jste dříve zkopírovali.
    • Nahraďte Enter_the_Tenant_Id_Here identifikátorem adresáře (tenant) , který jste zkopírovali dříve.
    • Enter_the_Tenant_Subdomain_Here a nahraďte ji subdoménou Adresáře (tenanta). Pokud je například primární doména vašeho tenanta contoso.onmicrosoft.com, použijte contoso. 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.

  1. V android Studiu otevřete soubor /app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt.

  2. Vyhledejte vlastnost s názvem WEB_API_URL_1 a nastavte adresu URL na webové rozhraní API.

    private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
    
  3. Vyhledejte vlastnost s názvem scopesForAPI1 a 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:

  1. Na panelu nástrojů vyberte aplikaci z nabídky Konfigurace spuštění.

  2. 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í.

  3. Vyberte tlačítko Spustit. Aplikace se otevře na obrazovce pro e-mail a jednorázové heslo.

  4. Vyberte kartu API a otestujte volání API. Úspěšné volání webového rozhraní API vrátí 200HTTP, zatímco 403 HTTP označuje neoprávněný přístup.

Další kroky