Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure Batch podporuje ověřování pomocí Microsoft Entra ID, cloudového adresáře a služby správy identit od Microsoftu. Azure používá Microsoft Entra ID k ověřování vlastních zákazníků, správců služeb a uživatelů organizace.
Doporučeným způsobem ověřování Azure Batch aplikací je použití klientské knihovny Azure Identity, poskytuje třídy ověřování založené na tokenech (například DefaultAzureCredential, ManagedIdentityCredential, ClientSecretCredential a InteractiveBrowserCredential), které fungují konzistentně bez ohledu na to, jestli vaše aplikace běží místně, Azure nebo místně. Přehled doporučených strategií ověřování najdete tady:
- Authenticate .NET aplikace pro Azure služby pomocí knihovny identit Azure
- Ověřování aplikací v Pythonu vůči službám Azure pomocí knihovny Azure Identity
Tento článek popisuje dva běžné scénáře ověřování v Azure Batch pomocí Microsoft Entra ID:
Integrované (interaktivní) ověřování ověřuje uživatele, který pracuje s aplikací. Použijte přihlašovací údaje, jako jsou
InteractiveBrowserCredentialneboDefaultAzureCredential(které může využívat přihlášení z vývojářských nástrojů, jako jsou Azure CLI, Visual Studio a Visual Studio Code).Ověřování pomocí instančního objektu služby nebo spravované identity slouží k ověřování bezobslužné aplikace. Pro aplikace hostované na Azure použijte přihlašovací údaje, jako je
ManagedIdentityCredentialneboClientSecretCredential/ClientCertificateCredentialpro aplikace, které se ověřují tajným kódem nebo certifikátem registrované aplikace.
Další informace o Microsoft Entra ID naleznete v dokumentaci Microsoft Entra.
Sběr koncových bodů pro ověřování
Pokud chcete ověřovat aplikace Batch pomocí MICROSOFT Entra ID, musíte do kódu zahrnout koncový bod Microsoft Entra a koncový bod prostředku Batch.
Koncový bod Microsoft Entra
Základní koncový bod autority Microsoft Entra je https://login.microsoftonline.com/. Pokud chcete provést ověření pomocí Microsoft Entra ID, použijte tento koncový bod s ID tenanta Microsoft Entra, který se má použít pro ověřování.
https://login.microsoftonline.com/<tenant-id>
ID tenanta můžete získat z hlavní stránky ID Microsoft Entra na webu Azure Portal. V levém navigačním panelu můžete také vybrat vlastnosti a zobrazit ID tenanta na stránce Vlastnosti.
Důležité
Koncový bod Microsoft Entra určený pro konkrétního tenanta je vyžadován při ověřování pomocí služebního hlavního jména.
Při ověřování pomocí integrovaného ověřování se doporučuje, ale je volitelné, použít koncový bod specifický pro nájemce. Můžete také použít společný koncový bod Microsoft Entra k poskytnutí obecného rozhraní pro shromažďování přihlašovacích údajů, pokud není zadaný konkrétní tenant. Běžným koncovým bodem je
https://login.microsoftonline.com/common.
Další informace o koncových bodech Microsoft Entra najdete v části Ověřování vs. autorizace.
Koncový bod zdroje Batch
Pomocí koncového bodu https://batch.core.windows.net/ prostředku Batch získejte token pro ověřování požadavků ve službě Batch.
Zaregistrujte svou aplikaci u tenantu
Prvním krokem při použití ověřování Microsoft Entra je registrace aplikace v tenantovi Microsoft Entra. Po registraci aplikace můžete ve svém kódu použít přihlašovací údaje z knihovny Azure Identity k získání tokenů Microsoft Entra pro službu Batch. Registrace vaší aplikace je vyžadována pro toky důvěrného klienta (instančního objektu služby) a pro jakýkoli interaktivní tok, který vyžaduje registraci aplikace specifickou pro tenanta.
Tip
Pokud váš kód používá DefaultAzureCredential a přihlásí se prostřednictvím vývojářského nástroje (Azure CLI, Azure PowerShell, Visual Studio nebo Visual Studio Code) nebo spravované identity, nemusíte registrovat samostatnou aplikaci – přihlašovací údaje používají identitu, která je už v daném prostředí nakonfigurovaná.
Při registraci aplikace zadáte informace o vaší aplikaci do Microsoft Entra ID. Microsoft Entra ID pak poskytuje ID aplikace, označované také jako ID klienta, které používáte k přidružení aplikace k Microsoft Entra ID za běhu. Další informace o ID aplikace najdete v tématu Objekty aplikace a objekty hlavních služeb v Microsoft Entra ID.
Pokud chcete zaregistrovat aplikaci Batch, postupujte podle pokynů v části Registrace aplikace.
Po registraci aplikace se id aplikace (klienta) zobrazí na stránce Přehled aplikace.
Konfigurace integrovaného ověřování
Pokud se chcete ověřit pomocí integrovaného ověřování, musíte aplikaci udělit oprávnění pro připojení k rozhraní API služby Batch. Tento krok umožňuje vaší aplikaci používat ID Microsoft Entra k ověřování volání rozhraní API služby Batch.
Po registraci aplikace následujícím postupem udělte aplikaci přístup ke službě Batch:
- Na webu Azure Portal vyhledejte a vyberte registrace aplikací.
- Na stránce Registrace aplikací vyberte aplikaci.
- Na stránce vaší aplikace vyberte v levém navigačním panelu oprávnění rozhraní API.
- Na stránce oprávnění rozhraní API vyberte Přidat oprávnění.
- Na stránce Požadovat oprávnění rozhraní API vyberte Azure Batch.
- Na stránce Azure Batch v části Vybrat oprávnění zaškrtněte políčko vedle user_impersonation a pak vyberte Přidat oprávnění.
Na stránce oprávnění rozhraní API se teď zobrazuje, že vaše aplikace Microsoft Entra má přístup k Microsoft Graphu i službě Azure Batch. Oprávnění se Microsoft Graphu udělí automaticky při registraci aplikace v Microsoft Entra ID.
Konfigurace služebního principalu
K ověření aplikace, která běží bezobslužně, použijete služebního principála. Když se vaše aplikace ověří pomocí služebního principála, odešle jak ID aplikace, tak i tajný klíč do Microsoft Entra ID.
Po registraci aplikace nakonfigurujte instanční objekt pomocí následujícího postupu na webu Azure Portal:
- Požádejte o tajný kód pro vaši aplikaci.
- Přiřaďte aplikaci řízení přístupu na základě role v Azure (Azure RBAC).
Vyžádání tajného kódu pro vaši aplikaci
Pomocí následujícího postupu vytvořte a zkopírujte tajný klíč, který chcete použít v kódu:
- Na webu Azure Portal vyhledejte a vyberte registrace aplikací.
- Na stránce Registrace aplikací vyberte aplikaci.
- Na stránce aplikace vyberte v levém navigačním panelu certifikáty a tajné kódy .
- Na stránce Certifikáty a tajné kódy vyberte Nový tajný klíč klienta.
- Na stránce Přidat tajný klíč klienta zadejte popis a vyberte dobu vypršení platnosti tajného klíče.
- Výběrem možnosti Přidat vytvořte tajný klíč a zobrazte ho na stránce Certifikáty a tajné kódy .
- Zkopírujte hodnotu tajného kódu na bezpečné místo, protože po opuštění této stránky k ní nebudete mít přístup znovu. Pokud ztratíte přístup ke svému klíči, můžete vygenerovat nový.
Přiřazení Azure RBAC k aplikaci
Pomocí těchto kroků přiřaďte vaší aplikaci roli Azure RBAC. Další informace najdete v tématu Řízení přístupu na základě role pro službu Azure Batch.
- Na webu Azure Portal přejděte k účtu Batch, který vaše aplikace používá.
- V levém navigačním panelu vyberte Řízení přístupu (IAM ).
- Na stránce Řízení přístupu (IAM) vyberte Přidat přiřazení role.
- Na stránce Přidat přiřazení role vyberte kartu Role a pak vyberte jednu z vestavěných RBAC rolí Azure Batch pro vaši aplikaci.
- Vyberte kartu Členové a v části Členové vyberte Vybrat členy.
- Na obrazovce Vybrat členy vyhledejte a vyberte svou aplikaci a poté zvolte Vybrat.
- Na stránce Přidat přiřazení role vyberte Zkontrolovat a přiřadit.
Vaše aplikace by se teď měla zobrazit na kartě Přiřazení rolí na stránce Řízení přístupu (IAM) účtu Batch.
Příklady kódu
Příklady kódu v této části ukazují, jak ověřit Azure Batch pomocí Microsoft Entra ID pomocí přihlašovacích údajů z knihovny identit Azure. Příklady používají .NET a Python, ale stejné vzory platí i pro jiné jazyky Azure SDK.
Poznámka:
Platnost ověřovacího tokenu Microsoft Entra vyprší po jedné hodině. Pokud používáte objekt BatchClient s dlouhou životností, vámi zadané Azure IdentityTokenCredential transparentně ukládá token do mezipaměti a obnovuje ho, takže se nový token z Microsoft Entra ID získá pouze v případě potřeby. Pro více informací o tokenech v Microsoft Entra ID, viz Security tokens.
Tip
Pro většinu scénářů použijte DefaultAzureCredential. Automaticky zkouší více metod ověřování (spravovaná identita, proměnné prostředí, přihlášení vývojářských nástrojů atd.), takže stejný kód funguje bez ohledu na to, jestli se vaše aplikace spouští místně během vývoje, v Azure nebo v místním prostředí. Pokyny k výběru správných přihlašovacích údajů najdete v tématech Ověřování aplikací .NET a Ověřování aplikací v Pythonu.
Příklad kódu: Ověření vůči Azure Batch pomocí .NET
Tento příklad používá Azure.Compute.Batch společně s knihovnou Azure.Identity.
Nainstalujte balíčky NuGet
Azure.Compute.BatchaAzure.Identity.Deklarujte v kódu následující
usingpříkazy:using Azure.Compute.Batch; using Azure.Core; using Azure.Identity;Informace o koncovém bodu účtu Batch:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Vytvořte přihlašovací údaje a předejte je konstruktoru
BatchClient. Použijte klienta pro následné operace se službou Batch.Pohodné znění:
DefaultAzureCredential– funguje místně s přihlášeními vývojářských nástrojů (Azure CLI, Visual Studio, Visual Studio Code) a používá spravovanou identitu automaticky při spuštění aplikace na Azure:TokenCredential credential = new DefaultAzureCredential(); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential); await foreach (BatchJob job in client.GetJobsAsync()) { Console.WriteLine(job.Id); }Interaktivní (integrované) přihlášení – vyzve uživatele, aby se přihlásil přes systémový prohlížeč. Tuto možnost použijte, když aplikace musí interaktivně ověřit konkrétního uživatele:
TokenCredential credential = new InteractiveBrowserCredential( new InteractiveBrowserCredentialOptions { TenantId = "<tenant-id>", ClientId = "<application-id>", // optional; required only if you registered your own app RedirectUri = new Uri("http://localhost") }); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Instanční objekt (tajný klíč klienta) – používá se pro bezobslužné aplikace, které se ověřují tajným kódem registrace aplikace:
TokenCredential credential = new ClientSecretCredential( tenantId: "<tenant-id>", clientId: "<application-id>", clientSecret: "<client-secret>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);Spravovaná identita – použijte, když vaše aplikace běží na prostředku Azure (jako je virtuální počítač, App Service nebo kontejnerová aplikace), která má spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem:
// System-assigned managed identity TokenCredential credential = new ManagedIdentityCredential(); // Or, user-assigned managed identity // TokenCredential credential = new ManagedIdentityCredential(clientId: "<user-assigned-client-id>"); BatchClient client = new BatchClient(new Uri(BatchAccountUrl), credential);
Příklad kódu: Ověření pro Azure Batch z Python
Tento příklad používá klienta azure-batch s přihlašovacími údaji z knihovny azure-identity . Starší azure.common.credentials.ServicePrincipalCredentials třída je zastaralá. Místo toho použijte azure-identity přihlašovací údaje.
Nainstalujte požadované balíčky:
pip install azure-batch azure-identityPoužijte koncový bod svého účtu Batch a rozsah prostředků služby Batch:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com" BATCH_SCOPE = "https://batch.core.windows.net/.default"Vytvořte přihlašovací údaje a předejte je do
BatchServiceClient.Doporučeno:
DefaultAzureCredential— funguje místně s přihlášeními do vývojářských nástrojů a při spuštění v Azure automaticky používá spravovanou identitu:from azure.batch import BatchServiceClient from azure.identity import DefaultAzureCredential credential = DefaultAzureCredential() batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Interaktivní (integrované) přihlášení – vyzve uživatele, aby se přihlásil přes systémový prohlížeč:
from azure.batch import BatchServiceClient from azure.identity import InteractiveBrowserCredential credential = InteractiveBrowserCredential( tenant_id="<tenant-id>", client_id="<application-id>", # optional; required only if you registered your own app ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Instanční objekt aplikace (tajný klíč klienta) – používá se pro bezobslužné aplikace:
from azure.batch import BatchServiceClient from azure.identity import ClientSecretCredential credential = ClientSecretCredential( tenant_id="<tenant-id>", client_id="<application-id>", client_secret="<client-secret>", ) batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )Spravovaná identita – použijte ji, když vaše aplikace běží na prostředku Azure se spravovanou identitou:
from azure.batch import BatchServiceClient from azure.identity import ManagedIdentityCredential # System-assigned managed identity credential = ManagedIdentityCredential() # Or, user-assigned managed identity # credential = ManagedIdentityCredential(client_id="<user-assigned-client-id>") batch_client = BatchServiceClient( credentials=credential, batch_url=BATCH_ACCOUNT_URL, )
Další kroky
- Ověřování řešení služby Batch Management pomocí služby služba Active Directory
- Authenticate .NET aplikace pro Azure služby pomocí knihovny identit Azure
- Ověřování aplikací v Pythonu vůči službám Azure pomocí knihovny Azure Identity
- Klientská knihovna Azure Identity pro .NET
- Klientská knihovna Azure Identity pro Python
- Objekty aplikací a hlavní instanční objekty v Microsoft Entra ID
- Jak vytvořit aplikaci Microsoft Entra a služební objekt, který má přístup k prostředkům