Přihlášení uživatelů a volání chráněného webového rozhraní API v ukázkové aplikaci Pro Android (Kotlin)

Tato příručka ukazuje, jak nakonfigurovat ukázkovou mobilní aplikaci pro Android pro přihlášení uživatelů a volat webové rozhraní API ASP.NET Core.

V tomto článku provedete následující úlohy:

  • Zaregistrujte aplikaci v Centru pro správu Microsoft Entra.
  • Přidejte adresu URL pro přesměrování platformy.
  • Povolte toky veřejných klientů.
  • Aktualizujte ukázkový soubor konfiguračního kódu Androidu tak, aby používal vlastní Microsoft Entra Externí ID pro podrobnosti o tenantovi zákazníka.
  • Spusťte a otestujte ukázkovou mobilní aplikaci pro Android.
  • Volání chráněného webového rozhraní API

Požadavky

  • Android Studio.

  • Externí tenant. Pokud ho ještě nemáte, zaregistrujte si bezplatnou zkušební verzi.

  • Registrace rozhraní API, která zveřejňuje alespoň jeden obor (delegovaná oprávnění) a jednu roli aplikace (oprávnění aplikace), jako je ToDoList.Read. Pokud jste to ještě neudělali, postupujte podle pokynů pro volání rozhraní API v ukázkové mobilní aplikaci pro Android, abyste měli funkční chráněné webové rozhraní API ASP.NET Core. Ujistěte se, že jste dokončili následující kroky:

    • Registrace aplikace webového rozhraní API
    • Konfigurace oborů rozhraní API
    • Konfigurace rolí aplikací
    • Konfigurace volitelných deklarací identity
    • Klonování nebo stažení ukázkového webového rozhraní API
    • Konfigurace a spuštění ukázkového webového rozhraní API

Registrace aplikace

Pokud chcete aplikaci umožnit přihlášení uživatelů pomocí Microsoft Entra, Microsoft Entra Externí ID musí být informována o aplikaci, kterou vytvoříte. Registrace aplikace vytvoří vztah důvěryhodnosti mezi aplikací a Microsoft Entra. Když zaregistrujete aplikaci, externí ID vygeneruje jedinečný identifikátor označovaný jako ID aplikace (klienta), což je hodnota použitá k identifikaci aplikace při vytváření žádostí o ověření.

Následující kroky ukazují, jak zaregistrovat aplikaci v Centru pro správu Microsoft Entra:

  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 Zaregistrovat aplikaci, která se zobrazí;

    1. Zadejte smysluplný název aplikace, který se zobrazí uživatelům aplikace, například ciam-client-app.
    2. V části Podporované typy účtů vyberte Pouze účty v tomto organizačním adresáři.
  6. Vyberte Zaregistrovat.

  7. Po úspěšné registraci se zobrazí podokno Přehled aplikace. Poznamenejte si ID aplikace (klienta), které se má použít ve zdrojovém kódu aplikace.

Přidání adresy URL pro přesměrování platformy

Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:

  1. V části Spravovat vyberte Ověřování.
  2. Na stránce Konfigurace platformy vyberte Přidat platformu a pak vyberte možnost Android.
  3. Zadejte název balíčku projektu. Pokud jste si stáhli vzorový kód, tato hodnota je com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. V části Hash podpisu podokna Konfigurace aplikace pro Android vyberte Generovat hodnotu hash vývojového podpisu. To se změní pro každé vývojové prostředí. Zkopírujte a spusťte příkaz KeyTool pro váš operační systém v terminálu.
  5. Zadejte hodnotu hash podpisu vygenerovanou nástrojem KeyTool.
  6. Vyberte Konfigurovat.
  7. Zkopírujte konfiguraci MSAL z podokna konfigurace Androidu a uložte ji pro pozdější konfiguraci aplikace.
  8. Vyberte Hotovo.

Povolení toku veřejného klienta

Pokud chcete aplikaci identifikovat jako veřejného klienta, postupujte takto:

  1. V části Spravovat vyberte Ověřování.

  2. V části Upřesnit nastavení v části Povolit toky veřejného klienta vyberte Ano.

  3. Výběrem možnosti Uložit uložte změny.

Jakmile aplikaci zaregistrujete, přiřadí se mu oprávnění User.Read . Vzhledem k tomu, že je tenant externím tenantem, nemohou vlastní uživatelé zákazníka s tímto oprávněním souhlasit. Jako správce musíte udělit souhlas s tímto oprávněním jménem všech uživatelů v tenantovi:

  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.

    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 stav oprávnění.

Udělení oprávnění webového 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í ukázkové mobilní aplikace pro Android

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-browser-delegated-android-sample
    

Konfigurace ukázkové mobilní aplikace pro Android

Pokud chcete povolit ověřování a přístup k prostředkům webového rozhraní API, nakonfigurujte ukázku pomocí následujícího postupu:

  1. V Android Studiu otevřete projekt, který jste naklonovali.

  2. Otevřete soubor /app/src/main/res/raw/auth_config_ciam.json .

  3. Vyhledejte zástupný symbol:

    • Enter_the_Application_Id_Here a nahraďte ho ID aplikace (klienta), kterou jste zaregistrovali dříve.
    • Enter_the_Redirect_Uri_Here a nahraďte ji hodnotou redirect_uri v konfiguračním souboru knihovny MSAL (Microsoft Authentication Library), který jste stáhli dříve při přidání adresy URL pro přesměrování platformy.
    • 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 subdoménu tenanta neznáte, přečtěte si, jak si přečíst podrobnosti o tenantovi.
  4. Otevřete soubor /app/src/main/AndroidManifest.xml .

  5. Vyhledejte zástupný symbol:

    • ENTER_YOUR_SIGNATURE_HASH_HERE a nahraďte ji hodnotou Hash podpisu, kterou jste předtím vygenerovali při přidání adresy URL pro přesměrování platformy.
  6. Otevřete soubor /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt .

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

  8. Vyhledejte vlastnost s názvem scopes a nastavte obory zaznamenané v oprávnění k udělení oprávnění webového rozhraní API pro ukázkovou aplikaci pro Android.

    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}"
    

Nakonfigurovali jste aplikaci a je připravená ke spuštění.

Spuštění a otestování ukázkové mobilní aplikace pro Android

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í s Androidem.

  3. Vyberte tlačítko Run (Spustit).

  4. Výběrem možnosti Získat token interaktivně požádejte o přístupový token.

  5. Vyberte rozhraní API – pomocí příkazu GET volejte dříve nastavené webové rozhraní API ASP.NET Core. Úspěšné volání webového rozhraní API vrátí http 200, zatímco HTTP 403 označuje neoprávněný přístup.