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

Tento článek ukazuje, jak nakonfigurovat ukázkovou mobilní aplikaci pro Android tak, aby volala webové rozhraní API ASP.NET Core.

Požadavky

Registrace aplikace webového rozhraní API

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň vývojář aplikací.

  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte do externího tenanta z nabídky Adresáře a předplatná.

  3. Přejděte k aplikacím> identit>Registrace aplikací.

  4. Vyberte + Nová registrace.

  5. Na stránce Registrace aplikace , která se zobrazí, zadejte registrační informace vaší aplikace:

    1. V části Název zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace, například ciam-ToDoList-api.

    2. V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.

  6. Výběrem možnosti Registrovat aplikaci vytvořte.

  7. Po dokončení registrace se zobrazí podokno Přehled aplikace. Poznamenejte si ID adresáře (tenanta) a ID aplikace (klienta), které se má použít ve zdrojovém kódu aplikace.

Konfigurace oborů rozhraní API

Rozhraní API musí publikovat minimálně jeden obor, označovaný také jako Delegovaná oprávnění, aby klientské aplikace získaly přístupový token pro uživatele. Pokud chcete obor publikovat, postupujte takto:

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

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

  3. V horní části stránky vedle identifikátoru URI ID aplikace vyberte 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 API vyberte Přidat obor.

  6. Zadejte následující hodnoty, které definují přístup pro čtení k rozhraní API, a pak výběrem možnosti Přidat obor uložte změny:

    Vlastnost Hodnota
    Název oboru ToDoList.Read
    Kdo může vyjádřit souhlas Pouze správci
    Zobrazovaný název souhlasu správce Čtení seznamu úkolů uživatelů pomocí todoListApi
    Popis souhlasu správce Umožňuje aplikaci číst seznam úkolů uživatele pomocí todo 'TodoApi'.
    State Povoleno
  7. Znovu vyberte Přidat obor a zadejte následující hodnoty, které definují obor přístupu pro čtení a zápis do rozhraní API. Výběrem možnosti Přidat obor uložte změny:

    Vlastnost Hodnota
    Název oboru ToDoList.ReadWrite
    Kdo může vyjádřit souhlas Pouze správci
    Zobrazovaný název souhlasu správce Čtení a zápis uživatelů seznamu úkolů pomocí toDoListApi
    Popis souhlasu správce Povolení čtení a zápisu seznamu úkolů uživatele pomocí toDoApi
    State Povoleno
  8. V části Spravovat vyberte Manifest a otevřete editor manifestu rozhraní API.

  9. Nastavit accessTokenAcceptedVersion vlastnost na 2hodnotu .

  10. Zvolte Uložit.

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 minimálně jednu roli aplikace pro aplikace, označované také jako oprávnění aplikace, aby klientské aplikace získaly přístupový token jako vlastní. 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 sebe sama, a nemusí se přihlašovat uživatele. 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 Spravovat vyberte Role aplikace.

  3. Vyberte Vytvořit roli aplikace a pak zadejte následující hodnoty a pak vyberte Použít , aby se změny uložily:

    Vlastnost Hodnota
    Zobrazované jméno ToDoList.Read.All
    Povolené typy členů Aplikace
    Hodnota ToDoList.Read.All
    Popis Povolit aplikaci číst seznam úkolů každého uživatele pomocí todoListApi
  4. Znovu vyberte Vytvořit roli aplikace a pak zadejte následující hodnoty pro druhou roli aplikace a pak vyberte Použít pro uložení změn:

    Vlastnost Hodnota
    Zobrazované jméno ToDoList.ReadWrite.All
    Povolené typy členů Aplikace
    Hodnota ToDoList.ReadWrite.All
    Popis Povolit aplikaci čtení a zápisu seznamu úkolů každého uživatele pomocí toDoApi

Konfigurace volitelných deklarací identity

Volitelnou deklaraci identity idtypu můžete webovému rozhraní API pomoct určit, jestli se jedná o token aplikace nebo token aplikace + uživatelský token. I když můžete použít kombinaci deklarací identity scp a rolí pro stejný účel, použití deklarace identity idtypu je nejjednodušší způsob, jak token aplikace a token uživatele oddělit. Například hodnota této deklarace identity je aplikace , když je token pouze pro aplikaci.

Udělení oprávnění rozhraní API ukázkové aplikaci pro Android

Jakmile zaregistrujete klientskou aplikaci i webové rozhraní API a rozhraní API vytvoříte tak, že vytvoříte obory, můžete nakonfigurovat oprávnění klienta k rozhraní API pomocí následujícího postupu:

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

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

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

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

  5. V seznamu rozhraní API vyberte rozhraní API, jako je 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, nemůžou uživatelé uživatele sami 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 <název> vašeho tenanta a pak vyberte Ano.

    2. Vyberte Aktualizovat a ověřte, že se pro <název> vašeho tenanta zobrazuje v části Stav pro obě oprávnění.

  10. V seznamu Konfigurovaná oprávnění vyberte oprávnění ToDoList.Read a ToDoList.ReadWrite, a pak 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} api://{clientId}/{ToDoList.ReadWrite}nebo .

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áhněte 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 2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json soubor.

  2. Vyhledejte zástupný symbol:

    • Enter_the_Application_Id_Here a nahraďte ho ID aplikace (klienta) webového rozhraní API, které jste zkopírovali dříve.
    • Enter_the_Tenant_Id_Here a nahraďte ho ID adresáře (tenanta), 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, přečtěte si, jak si přečíst podrobnosti o tenantovi.

Abyste ho mohli volat, musíte hostovat webové rozhraní API pro ukázkovou aplikaci pro Android. Postupujte podle rychlého startu: Nasaďte webovou aplikaci ASP.NET pro nasazení 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ů adresy URL webového rozhraní API a sad oborů. 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 /app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt soubor.

  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 oprávněních k udělení rozhraní API pro ukázkovou 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 v e-mailu a na jednorázové obrazovce hesla.

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

Další kroky