Sdílet prostřednictvím


Ověřování Java aplikací hostovaných na Azure ke zdrojům Azure pomocí uživatelsky přiřazené spravované identity

Doporučeným přístupem k ověření Azure hostované aplikace u jiných prostředků Azure je použití managed identity. Většina služeb Azure tento přístup podporuje, včetně aplikací hostovaných na Azure App Service, Azure Container Apps a Azure Virtual Machines. Další informace najdete v tématu Azure služby a typy prostředků podporující spravované identity. Další informace o různých technikách ověřování a přístupech najdete v tématu Authenticate Java aplikace pro Azure služby pomocí knihovny identit Azure.

V následujících částech se dozvíte o:

  • Základní koncepty spravované identity
  • Jak vytvořit uživatelsky přiřazenou spravovanou identitu pro vaši aplikaci.
  • Přiřazení rolí spravované identitě přiřazené uživatelem
  • Jak ověřit identity pomocí uživatelsky přiřazené spravované identity z kódu vaší aplikace.

Základní koncepty spravované identity

Spravovaná identita umožňuje aplikaci bezpečně připojit k dalším Azure prostředkům bez použití tajných klíčů nebo jiných tajných kódů aplikací. Interně Azure sleduje identitu a prostředky, ke kterým se může připojit. Azure tyto informace používá k automatickému získání tokenů Microsoft Entra pro aplikaci, aby se mohla připojit k dalším Azure prostředkům.

Při konfiguraci hostované aplikace je potřeba zvážit dva typy spravovaných identit:

  • Systemem přiřazené spravované identity jsou povoleny přímo na prostředku Azure a jsou vázány na jeho životní cyklus. Po odstranění prostředku Azure automaticky odstraní identitu za vás. Identity přiřazené systémem poskytují minimalistický přístup k používání spravovaných identit.
  • Uživatelsky přiřazené spravované identity se vytvářejí jako samostatné prostředky Azure a nabízejí větší flexibilitu a schopnosti. Jsou ideální pro řešení zahrnující více Azure prostředků, které potřebují sdílet stejnou identitu a oprávnění. Pokud například více virtuálních počítačů potřebuje přístup ke stejné sadě Azure prostředků, poskytuje spravovaná identita přiřazená uživatelem možnost opakovaného použití a optimalizovanou správu.

Návod

Další informace o výběru a správě spravovaných identit přiřazených systémem a přiřazených uživatelem najdete v článku s doporučeními k osvědčeným postupům spravované identity .

Následující části popisují postup povolení a použití spravované identity přiřazené uživatelem pro Azure hostované aplikace. Pokud potřebujete použít systémem přiřazenou spravovanou identitu, viz Autentizace Java aplikací hostovaných na Azure do zdrojů Azure s pomocí systémem přiřazené spravované identity.

Vytvořit uživatelsky přiřazenou spravovanou identitu

Spravované identity přiřazené uživatelem se ve vašem Azure předplatném vytvářejí jako samostatné prostředky pomocí portálu Azure nebo Azure CLI. Azure CLI příkazy je možné spouštět v Azure Cloud Shell nebo na pracovní stanici s nainstalovaným Azure CLI.

  1. Na portálu Azure zadejte na hlavním panelu hledání Spravované identity a v části Services vyberte odpovídající výsledek.

  2. Na stránce Spravované identity vyberte + Vytvořit.

    Snímek obrazovky zobrazující stránku pro správu spravovaných identit přiřazených uživatelem

  3. Na stránce Vytvořit spravovanou identitu přiřazenou uživatelem vyberte předplatné, skupinu prostředků a oblast spravované identity přiřazené uživatelem a zadejte název.

  4. Vyberte Zkontrolovat a vytvořit pro revizi a ověření vašich vstupů.

    Snímek obrazovky znázorňující formulář pro vytvoření spravované identity přiřazené uživatelem

  5. Vyberte Vytvořit a vytvořte spravovanou identitu přiřazenou uživatelem.

  6. Po vytvoření identity vyberte Přejít k prostředku.

  7. Na stránce Přehled nové identity zkopírujte hodnotu ID klienta , která se použije pro pozdější použití při konfiguraci kódu aplikace.

Přiřazení spravované identity k aplikaci

Spravovanou identitu přiřazenou uživatelem je možné přidružit k jednomu nebo více prostředkům Azure. Všechny prostředky, které tuto identitu používají, získají oprávnění získaná skrze role identity.

  1. Na portálu Azure přejděte k prostředku, který je hostitelem kódu aplikace, jako je Azure App Service nebo instance Azure Container Apps.

  2. Na stránce přehledu prostředku rozbalte nastavení a v navigaci vyberte Identitu.

  3. Na stránce Identita přepněte na záložku uživatelsky přiřazené.

  4. Výběrem + Přidat otevřete panel Přidat uživatelem přiřazenou spravovanou identitu.

  5. Na panelu Přidat uživatelsky přiřazenou spravovanou identitu použijte rozevírací seznam Předplatné k filtrování výsledků vyhledávání pro vaše identity. Pomocí vyhledávacího pole Uživateli přiřazené spravované identity vyhledejte spravovanou identitu přiřazenou uživatelem, kterou jste povolili pro prostředek Azure hostující vaši aplikaci.

  6. Vyberte identitu a dole na panelu zvolte Přidat, abyste pokračovali.

    Snímek obrazovky znázorňující přidružení spravované identity přiřazené uživatelem k aplikaci

Přiřazení rolí ke spravované identitě

Dále určete, které role vaše aplikace potřebuje, a přiřaďte tyto role spravované identitě. Spravované identitě můžete přiřadit role v následujících oborech:

  • zdroj: Přiřazené role se vztahují pouze na tento konkrétní zdroj.
  • skupiny prostředků: Přiřazené role se vztahují na všechny prostředky obsažené ve skupině prostředků.
  • Předplatné: Přiřazené role se vztahují na všechny prostředky obsažené v předplatném.

Následující příklad ukazuje, jak přiřadit role v oboru skupiny prostředků, protože mnoho aplikací spravuje všechny související Azure prostředky pomocí jedné skupiny prostředků.

  1. Přejděte na stránku Přehled skupiny prostředků, která obsahuje aplikaci s uživatelsky přiřazenou spravovanou identitou.

  2. V levém navigačním panelu vyberte řízení přístupu (IAM).

  3. Na stránce řízení přístupu (IAM) vyberte + Přidat v horní nabídce a potom zvolte Přidat přiřazení role a přejděte na stránku Přidat přiřazení role.

    Snímek obrazovky znázorňující, jak získat přístup ke stránce přiřazení role identity

  4. Na stránce Přidat přiřazení role se zobrazí vícekrokový pracovní postup se záložkami pro přiřazení rolí k identitám. Na úvodní kartě Role vyhledejte roli, kterou chcete přiřadit k identitě, pomocí vyhledávacího pole v horní části.

  5. Ve výsledcích vyberte roli, potom klikněte na Další, abyste přešli na kartu Členové.

  6. U možnosti Přiřadit přístup k vyberte možnost Spravovaná identita.

  7. Pro otevření panelu Vybrat spravované identity vyberte u možnosti Členové volbu + Vybrat členy.

  8. Na panelu Vyberte spravované identity použijte rozevírací seznamy Předplatné a Spravované identity k filtrování výsledků hledání pro vaše identity. Pomocí vyhledávacího pole Select vyhledejte spravovanou identitu přiřazenou uživatelem, kterou jste povolili pro prostředek Azure hostující vaši aplikaci.

    Snímek obrazovky znázorňující proces přiřazení spravované identity

  9. Vyberte identitu a zvolte Pokračujte výběrem v dolní části panelu.

  10. Vyberte Zkontrolovat a přiřadit v dolní části stránky.

  11. Na poslední kartě Zkontrolovat + přiřadit, vyberte možnost Zkontrolovat + přiřadit a dokončete pracovní postup.

Autentizace ke službám Azure z vaší aplikace

Knihovna identit Azure nabízí různé přihlašovací údaje jako implementace v rámci TokenCredential. Každá implementace podporuje různé scénáře a toky ověřování Microsoft Entra. U spravovaných identit přiřazených uživatelem zadejte klientské ID identity, ID prostředku nebo ID objektu při konfiguraci pověření.

Implementace kódu

Přidejte závislost azure-identity do souboru pom.xml.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Ke službám Azure přistupujete pomocí specializovaných klientských tříd z klientských knihoven Azure SDK. Následující příklady kódu ukazují, jak nakonfigurovat přihlašovací údaje pro ověřování spravované identity přiřazené uživatelem.

Použijte DefaultAzureCredential

Jako přihlašovací údaje pro Azure hostované aplikace použijte DefaultAzureCredential. Pro spravované identity přiřazené uživatelem nakonfigurujte ID klienta pomocí managedIdentityClientId metody:

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .managedIdentityClientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Použití ManagedIdentityCredential

Pokud chcete explicitně použít přihlašovací údaje spravované identity a vyhnout se vyhledávání v řetězci přihlašovacích údajů, použijte ManagedIdentityCredential přímo s DefaultAzureCredential. Pro spravované identity přiřazené uživatelem můžete identitu zadat pomocí ID klienta, ID prostředku nebo ID objektu.

POMOCÍ ID klienta identifikujte spravovanou identitu při konfiguraci aplikací nebo služeb, které je potřeba ověřit pomocí této identity.

Pomocí následujícího příkazu načtěte ID klienta přiřazené spravované identitě přiřazené uživatelem:

az identity show \
    --resource-group <resource-group-name> \
    --name <identity-name> \
    --query clientId \
    --output tsv

Nakonfigurujte ManagedIdentityCredential s ID klienta:

import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
    .clientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Další kroky

Tento článek se zabýval ověřováním pomocí spravované identity přiřazené uživatelem. Tato forma ověřování je jedním z několika způsobů, jak se můžete ověřit v Azure SDK pro Java. Následující články popisují další způsoby ověřování:

Pokud narazíte na problémy související s ověřováním aplikací hostovanými Azure, prohlédni si téma Řešení Azure ověřování hostované aplikace.

Po zvládnutí autentizace si přečtěte informace o funkci protokolování, které poskytuje SDK, v Konfigurování protokolování v Azure SDK pro Java.