Migrace aplikace pro použití připojení bez hesla se službou Azure Blob Storage
Článek
Žádosti o aplikace na služby Azure musí být ověřeny pomocí konfigurací, jako jsou přístupové klíče účtu nebo připojení bez hesla. Pokud je to však možné, měli byste upřednostnit připojení bez hesla ve vašich aplikacích. Tradiční metody ověřování, které používají hesla nebo tajné klíče, vytvářejí bezpečnostní rizika a komplikace. Další informace o výhodách přechodu na připojení bez hesla najdete v centru služeb Azure.
Následující kurz vysvětluje, jak migrovat existující aplikaci pro připojení pomocí připojení bez hesla. Stejný postup migrace by se měl použít bez ohledu na to, jestli používáte přístupové klíče, připojovací řetězec nebo jiný přístup založený na tajných klíčích.
Konfigurace rolí a uživatelů pro místní ověřování vývoje
Při místním vývoji se ujistěte, že uživatelský účet, který přistupuje k datům objektů blob, má správná oprávnění. K čtení a zápisu dat objektů blob budete potřebovat Přispěvatel dat objektů blob služby Storage. Abyste mohli tuto roli přiřadit sami sobě, musíte mít přiřazenou roli Správce uživatelských přístupů nebo jinou roli, která zahrnuje akci Microsoft.Authorization/roleAssignments/write . Role Azure RBAC můžete uživateli přiřadit pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu. Další informace o dostupných oborech pro přiřazení rolí najdete na stránce přehledu oboru.
V tomto scénáři přiřadíte oprávnění k vašemu uživatelskému účtu s vymezeným oborem účtu úložiště, abyste postupovali podle zásady nejnižších oprávnění. Tento postup poskytuje uživatelům jenom minimální potřebná oprávnění a vytváří bezpečnější produkční prostředí.
Následující příklad přiřadí roli Přispěvatel dat v objektech blob služby Storage k vašemu uživatelskému účtu, který poskytuje přístup ke čtení i zápisu k datům objektů blob v účtu úložiště.
Důležité
Ve většině případů bude trvat minutu nebo dvě, než se přiřazení role rozšíří v Azure, ale ve výjimečných případech může trvat až osm minut. Pokud při prvním spuštění kódu dojde k chybám ověřování, chvíli počkejte a zkuste to znovu.
Na webu Azure Portal vyhledejte svůj účet úložiště pomocí hlavního panelu hledání nebo levé navigace.
Na stránce přehledu účtu úložiště v nabídce vlevo vyberte Řízení přístupu (IAM ).
Na stránce Řízení přístupu (IAM) vyberte kartu Přiřazení rolí.
V horní nabídce vyberte + Přidat a potom přidejte přiřazení role z výsledné rozevírací nabídky.
Pomocí vyhledávacího pole vyfiltrujte výsledky podle požadované role. V tomto příkladu vyhledejte Přispěvatel dat objektů blob služby Storage a vyberte odpovídající výsledek a pak zvolte Další.
V části Přiřadit přístup vyberte Uživatel, skupina nebo instanční objekt a pak zvolte + Vybrat členy.
V dialogovém okně vyhledejte své uživatelské jméno Microsoft Entra (obvykle vaše user@domain e-mailová adresa) a pak v dolní části dialogového okna zvolte Vybrat .
Vyberte Zkontrolovat a přiřadit přejděte na poslední stránku a pak proces dokončete opětovnou kontrolou a přiřazením .
Pokud chcete přiřadit roli na úrovni prostředku pomocí Azure CLI, musíte nejprve pomocí příkazu načíst ID az storage account show prostředku. Výstupní vlastnosti můžete filtrovat pomocí parametru --query .
Azure CLI
az storage account show --resource-group'<your-resource-group-name>'--name'<your-storage-account-name>'--query id
Zkopírujte výstup Id z předchozího příkazu. Role pak můžete přiřadit příkazem az role v Azure CLI.
Azure CLI
az role assignment create --assignee"<user@domain>" \
--role"Storage Blob Data Contributor" \
--scope"<your-resource-id>"
Pokud chcete přiřadit roli na úrovni prostředku pomocí Azure PowerShellu, musíte nejprve pomocí příkazu načíst ID Get-AzResource prostředku.
Přihlášení a migrace kódu aplikace pro použití připojení bez hesla
V případě místního vývoje se ujistěte, že jste ověřeni pomocí stejného účtu Microsoft Entra, ke kterému jste přiřadili roli. Ověřování můžete provést prostřednictvím oblíbených vývojových nástrojů, jako je Azure CLI nebo Azure PowerShell. Vývojové nástroje, pomocí kterých se můžete ověřovat, se liší v různých jazycích.
Pokud chcete použít DefaultAzureCredential v aplikaci .NET, nainstalujte Azure.Identity balíček:
.NET CLI
dotnetadd package Azure.Identity
Do horní části souboru přidejte následující kód:
C#
using Azure.Identity;
Identifikujte umístění v kódu, která vytvoří připojení ke službě BlobServiceClient Azure Blob Storage. Aktualizujte kód tak, aby odpovídal následujícímu příkladu:
Identifikujte umístění v kódu, která vytvoří instanci pro připojení ke službě Client Azure Blob Storage. Aktualizujte kód tak, aby odpovídal následujícímu příkladu:
Identifikujte umístění v kódu, která vytvoří objekt pro připojení ke službě BlobServiceClient Azure Blob Storage. Aktualizujte kód tak, aby odpovídal následujícímu příkladu:
Java
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.build();
String endpoint =
String.format("https://%s.blob.core.windows.net", storageAccountName);
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Pokud chcete použít DefaultAzureCredential v aplikaci Node.js, nainstalujte @azure/identity balíček:
Identifikujte umístění v kódu, která vytvoří objekt pro připojení ke službě BlobServiceClient Azure Blob Storage. Aktualizujte kód tak, aby odpovídal následujícímu příkladu:
Node.js
const credential = new DefaultAzureCredential();
const blobServiceClient = new BlobServiceClient(
`https://${storageAccountName}.blob.core.windows.net`,
credential
);
Pokud chcete balíček použít DefaultAzureCredential v aplikaci v Pythonu, nainstalujte balíček azure-identity :
Bash
pip install azure-identity
Do horní části souboru přidejte následující kód:
Python
from azure.identity import DefaultAzureCredential
Identifikujte umístění v kódu, která vytvoří objekt pro připojení ke službě BlobServiceClient Azure Blob Storage. Aktualizujte kód tak, aby odpovídal následujícímu příkladu:
Nezapomeňte aktualizovat název účtu úložiště v identifikátoru URI vašeho BlobServiceClientúčtu . Název účtu úložiště najdete na stránce přehledu webu Azure Portal.
Místní spuštění aplikace
Po provedení těchto změn kódu spusťte aplikaci místně. Nová konfigurace by měla vyzvednout vaše místní přihlašovací údaje, jako je Azure CLI, Visual Studio nebo IntelliJ. Role, které jste přiřadili místnímu vývojovému uživateli v Azure, umožňují vaší aplikaci připojit se ke službě Azure místně.
Konfigurace hostitelského prostředí Azure
Jakmile je vaše aplikace nakonfigurovaná tak, aby používala připojení bez hesla a běží místně, může se stejný kód po nasazení do Azure ověřit ve službách Azure. V následujících částech se dozvíte, jak nakonfigurovat nasazenou aplikaci pro připojení ke službě Azure Blob Storage pomocí spravované identity.
Vytvoření spravované identity
Spravovanou identitu přiřazenou uživatelem můžete vytvořit pomocí webu Azure Portal nebo Azure CLI. Vaše aplikace používá identitu k ověření v jiných službách.
az identity create --name MigrationIdentity --resource-group<your-resource-group>
Přidružení spravované identity k webové aplikaci
Musíte nakonfigurovat webovou aplikaci tak, aby používala spravovanou identitu, kterou jste vytvořili. Přiřaďte identitu k aplikaci pomocí webu Azure Portal nebo Azure CLI.
Vyberte předplatné, které jste použili dříve k vytvoření identity.
Vyhledejte migrationIdentity podle názvu a vyberte ji z výsledků hledání.
Vyberte Přidat a přidružte identitu k vaší aplikaci.
Pomocí následujících příkazů Azure CLI přidružte identitu k vaší aplikaci:
Načtěte ID spravované identity, kterou jste vytvořili pomocí příkazu az identity show . Zkopírujte výstupní hodnotu, kterou chcete použít v dalším kroku.
Azure CLI
az identity show --name MigrationIdentity -g<your-identity-resource-group-name>--query id
az vm identity assign \
--resource-group<resource-group-name> \
--name<virtual-machine-name>--identities<managed-identity-id>
Spravovanou identitu můžete přiřadit k instanci služby Azure Kubernetes Service (AKS) pomocí příkazu az aks update .
Azure CLI
az aks update \
--resource-group<resource-group-name> \
--name<cluster-name> \
--enable-managed-identity \
--assign-identity<managed-identity-id> \
--assign-kubelet-identity<managed-identity-id>
Konektor služby můžete použít k vytvoření připojení mezi výpočetním prostředím Azure a cílovou službou pomocí Azure CLI. Příkazy rozhraní příkazového řádku konektoru služby automaticky přiřazují vaší identitě správnou roli. Další informace o konektoru služby a o podporovaných scénářích najdete na stránce přehledu.
Načtěte ID klienta spravované identity, kterou jste vytvořili pomocí az identity show příkazu. Zkopírujte hodnotu pro pozdější použití.
Azure CLI
az identity show --name MigrationIdentity --resource-group<your-resource-group>--query clientId
K navázání připojení služby použijte příslušný příkaz rozhraní příkazového řádku:
Dále musíte udělit oprávnění spravované identitě, kterou jste vytvořili pro přístup k účtu úložiště. Udělte oprávnění přiřazením role spravované identitě stejně jako u místního vývojového uživatele.
Přejděte na stránku přehledu účtu úložiště a v levém navigačním panelu vyberte Řízení přístupu (IAM ).
Zvolte Přidat přiřazení role.
Ve vyhledávacím poli role vyhledejte Přispěvatel dat objektů blob služby Storage, což je běžná role používaná ke správě operací s daty pro objekty blob. Můžete přiřadit libovolnou roli, která je vhodná pro váš případ použití. V seznamu vyberte Přispěvatel dat objektů blob úložiště a zvolte Další.
Na obrazovce Přidat přiřazení role jako možnost Přiřadit přístup vyberte Spravovaná identita. Pak zvolte +Vybrat členy.
V informačním rámečku vyhledejte spravovanou identitu, kterou jste vytvořili podle názvu, a vyberte ji z výsledků. Výběrem možnosti Vybrat zavřete rozevírací nabídku.
Vyberte Další několikrát, dokud nebudete moct vybrat Zkontrolovat a přiřadit, abyste dokončili přiřazení role.
Pokud chcete přiřadit roli na úrovni prostředku pomocí Azure CLI, musíte nejprve načíst ID prostředku pomocí příkazu az storage account show. Výstupní vlastnosti můžete filtrovat pomocí parametru --query .
Azure CLI
az storage account show \
--resource-group'<your-resource-group-name>' \
--name'<your-storage-account-name>' \
--query id
Zkopírujte ID výstupu z předchozího příkazu. Role pak můžete přiřadit pomocí příkazu az role assignment v Azure CLI.
Azure CLI
az role assignment create \
--assignee"<your-username>" \
--role"Storage Blob Data Contributor" \
--scope"<your-resource-id>"
Pokud jste služby připojili pomocí konektoru Service Connector, nemusíte tento krok dokončit. Potřebné konfigurace rolí byly zpracovány za vás při spuštění příkazů rozhraní příkazového řádku konektoru služby.
Aktualizace kódu aplikace
Musíte nakonfigurovat kód aplikace tak, aby hledal konkrétní spravovanou identitu, kterou jste vytvořili při nasazení do Azure. V některých scénářích explicitně nastavíte spravovanou identitu aplikace, aby se zabránilo náhodnému zjištění a použití jiných identit prostředí.
Na stránce přehledu spravované identity zkopírujte hodnotu ID klienta do schránky.
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId(managedIdentityClientId)
.build();
Vytvořte DefaultAzureCredentialClientIdOptions objekt s vlastností managedIdentityClientId nastavenou na ID klienta. Předejte tento objekt konstruktoru DefaultAzureCredential .
Node.js
const credential = new DefaultAzureCredential({
managedIdentityClientId
});
DefaultAzureCredential Nastavte parametr managed_identity_client_id konstruktoru na ID klienta.
Po provedení této změny znovu nasaďte kód do Azure, aby se aktualizace konfigurace použily.
Otestování aplikace
Po nasazení aktualizovaného kódu přejděte do hostované aplikace v prohlížeči. Vaše aplikace by se měla úspěšně připojit k účtu úložiště. Mějte na paměti, že rozšíření přiřazení rolí v prostředí Azure může trvat několik minut. Vaše aplikace je teď nakonfigurovaná tak, aby běžela místně i v produkčním prostředí, aniž by vývojáři museli spravovat tajné kódy v samotné aplikaci.
Další kroky
V tomto kurzu jste zjistili, jak migrovat aplikaci na připojení bez hesla.
Podrobnější informace o konceptech probíraných v tomto článku najdete v následujících zdrojích informací: