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.
Tento článek popisuje dva způsoby použití ověřování Microsoft Entra se službou Azure Batch:
Integrované ověřování ověřuje uživatele, který pracuje s aplikací. Aplikace shromažďuje přihlašovací údaje uživatele a tyto přihlašovací údaje používá k ověření přístupu k prostředkům batch.
Principál služby ověřuje bezobslužnou aplikaci. Služební principál definuje zásady a oprávnění pro aplikaci a představuje aplikaci pro přístup k prostředkům Batch za běhu.
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 vaší aplikace můžete z kódu volat knihovnu Microsoft Authentication Library (MSAL). MSAL poskytuje rozhraní API pro ověřování pomocí Microsoft Entra ID z vaší aplikace. Registrace aplikace se vyžaduje bez ohledu na to, jestli používáte integrované ověřování nebo služební principal.
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ěřovat pomocí ID Microsoft Entra použitím integrovaného ověřování nebo služebního účelu. Příklady kódu používají .NET a Python, ale koncepty jsou podobné pro jiné jazyky.
Poznámka:
Platnost ověřovacího tokenu Microsoft Entra vyprší po jedné hodině. Při použití dlouhodobého objektu BatchClient je nejlepší získat token z MSAL na každém požadavku, abyste měli jistotu, že máte vždy platný token.
Uděláte to v .NET tak, že napíšete metodu, která načte token z ID Microsoft Entra a předá tuto metodu objektu BatchTokenCredentials jako delegát. Každý požadavek služby Batch volá metodu delegáta, aby se zajistilo poskytnutí platného tokenu. Ve výchozím nastavení msAL ukládá tokeny do mezipaměti, takže nový token se načte z Microsoft Entra-only v případě potřeby. Pro více informací o tokenech v Microsoft Entra ID, viz Security tokens.
Příklad kódu: Použití integrovaného ověřování Microsoft Entra se službou Batch .NET
Chcete-li se ověřit s integrovaným ověřováním v rámci služby Batch .NET:
Deklarujte v kódu následující
usingpříkazy:using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Odkazujte na koncový bod Microsoft Entra včetně ID tenanta. Na stránce Přehled služby Microsoft Entra ID na portálu Azure můžete získat ID tenanta.
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";Zmiňte koncový bod prostředku služby Batch:
private const string BatchResourceUri = "https://batch.core.windows.net/";Odkaz na váš účet Batch:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Zadejte ID aplikace (klienta) pro vaši aplikaci. ID aplikace můžete získat ze stránky Přehled vaší aplikace na webu Azure Portal.
private const string ClientId = "<application-id>";Zadejte identifikátor URI přesměrování, který jste zadali při registraci aplikace.
private const string RedirectUri = "https://<redirect-uri>";Napište metodu zpětného volání pro získání ověřovacího tokenu z ID Microsoft Entra. Následující příklad volá MSAL k ověření uživatele, který pracuje s aplikací. Metoda MSAL IConfidentialClientApplication.AcquireTokenByAuthorizationCode vyzve uživatele k zadání přihlašovacích údajů. Aplikace bude pokračovat, jakmile uživatel poskytne přihlašovací údaje.
Parametr authorizationCode je autorizační kód získaný z autorizačního serveru po ověření uživatele.
WithRedirectUriurčuje identifikátor URI přesměrování, na který autorizační server přesměruje uživatele po ověření.public static async Task<string> GetTokenUsingAuthorizationCode(string authorizationCode, string redirectUri, string[] scopes) { var app = ConfidentialClientApplicationBuilder.Create(ClientId) .WithAuthority(AuthorityUri) .WithRedirectUri(RedirectUri) .Build(); var authResult = await app.AcquireTokenByAuthorizationCode(scopes, authorizationCode).ExecuteAsync(); return authResult.AccessToken; }Tuto metodu zavolejte následujícím kódem a nahraďte
<authorization-code>autorizačním kódem získaným z autorizačního serveru. Obor.defaultzajišťuje, že uživatel má oprávnění pro přístup ke všem oborům prostředku.var token = await GetTokenUsingAuthorizationCode("<authorization-code>", "RedirectUri", new string[] { "BatchResourceUri/.default" });Vytvořte objekt BatchTokenCredentials, který přebírá delegáta jako parametr. Pomocí těchto přihlašovacích údajů otevřete objekt BatchClient . Pak použijte objekt BatchClient pro následné operace se službou Batch:
public static void PerformBatchOperations() { Func<Task<string>> tokenProvider = () => GetTokenUsingAuthorizationCode(); using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider))) { client.JobOperations.ListJobs(); } }
Příklad kódu: Použití služebního principálu Microsoft Entra s Batch .NET
Ověření pomocí služebního účtu v rámci služby Batch .NET:
Deklarujte v kódu následující
usingpříkazy:using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Auth; using Microsoft.Identity.Client;Odkazujte na koncový bod Microsoft Entra včetně ID tenanta. Při použití služebního hlavního objektu musíte zadat koncový bod specifický pro tenanta. Na stránce Přehled služby Microsoft Entra ID na portálu Azure můžete získat ID tenanta.
private const string AuthorityUri = "https://login.microsoftonline.com/<tenant-id>";Zmiňte koncový bod prostředku služby Batch:
private const string BatchResourceUri = "https://batch.core.windows.net/";Odkaz na účet Batch:
private const string BatchAccountUrl = "https://<myaccount>.<mylocation>.batch.azure.com";Zadejte ID aplikace (klienta) pro vaši aplikaci. ID aplikace můžete získat ze stránky Přehled vaší aplikace na webu Azure Portal.
private const string ClientId = "<application-id>";Zadejte tajný klíč, který jste zkopírovali z webu Azure Portal.
private const string ClientKey = "<secret-key>";Napište metodu zpětného volání pro získání ověřovacího tokenu z ID Microsoft Entra. Následující metoda ConfidentialClientApplicationBuilder.Create volá MSAL pro bezobslužné ověřování.
public static async Task<string> GetAccessToken(string[] scopes) { var app = ConfidentialClientApplicationBuilder.Create(clientId) .WithClientSecret(ClientKey) .WithAuthority(new Uri(AuthorityUri)) .Build(); var result = await app.AcquireTokenForClient(scopes).ExecuteAsync(); return result.AccessToken; }Tuto metodu zavolejte pomocí následujícího kódu. Obor
.defaultzajišťuje, že aplikace má oprávnění pro přístup ke všem oborům prostředku.var token = await GetAccessToken(new string[] { $"{BatchResourceUri}/.default" });Vytvořte objekt BatchTokenCredentials, který přebírá delegáta jako parametr. Pomocí těchto přihlašovacích údajů otevřete objekt BatchClient . Pak použijte objekt BatchClient pro následné operace se službou Batch:
public static void PerformBatchOperations() { Func<Task<string>> tokenProvider = () => GetAccessToken(); using (var client = BatchClient.Open(new BatchTokenCredentials(BatchAccountUrl, tokenProvider))) { client.JobOperations.ListJobs(); } }
Příklad kódu: Použití instančního objektu Microsoft Entra se službou Batch Python
Ověření pomocí služebního principála v Batch Python:
Nainstalujte moduly Azure-Batch a Azure-common Python.
Odkaz na moduly:
from azure.batch import BatchServiceClient from azure.common.credentials import ServicePrincipalCredentialsPokud chcete použít služební principál, zadejte koncový bod specifický pro nájemce. ID tenanta můžete získat na stránce Přehled Microsoft Entra ID nebo na stránce Vlastnosti v Azure portálu.
TENANT_ID = "<tenant-id>"Zmiňte koncový bod prostředku služby Batch:
RESOURCE = "https://batch.core.windows.net/"Odkaz na účet Batch:
BATCH_ACCOUNT_URL = "https://<myaccount>.<mylocation>.batch.azure.com"Zadejte ID aplikace (klienta) pro vaši aplikaci. ID aplikace můžete získat ze stránky Přehled vaší aplikace na webu Azure Portal.
CLIENT_ID = "<application-id>"Zadejte tajný klíč, který jste zkopírovali z webu Azure Portal:
SECRET = "<secret-key>"Vytvořte objekt ServicePrincipalCredentials :
credentials = ServicePrincipalCredentials( client_id=CLIENT_ID, secret=SECRET, tenant=TENANT_ID, resource=RESOURCE )Pomocí přihlašovacích údajů hlavního účtu služby otevřete objekt BatchServiceClient. Pak použijte objekt BatchServiceClient pro následné operace se službou Batch.
batch_client = BatchServiceClient( credentials, batch_url=BATCH_ACCOUNT_URL )
Příklad vytvoření klienta Batch ověřeného pomocí tokenu Microsoft Entra najdete v ukázce nasazení vlastní image služby Azure Batch pomocí skriptu Pythonu.
Další kroky
- Ověřování řešení služby Batch Management pomocí služby Active Directory
- Toky přihlašovacích údajů klienta v MSAL.NET
- Použití MSAL.NET k získání tokenů autorizačním kódem (pro weby)
- 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
- Ukázky kódu platformy Microsoft Identity Platform