Ověřování pomocí sady Azure SDK for Go (starší verze)
Důležité
Tento článek se týká starší verze sady Azure SDK for Go. K ověřování v nejnovějších modulech použijte balíček Azure Identity .
Azure SDK pro Go nabízí několik způsobů ověřování s využitím Azure. Tyto typy ověřování se vyvolávají dostupné prostřednictvím různých ověřovacích metod. Tento článek se zabývá dostupnými typy, metodami a volbou toho, co je pro vaši aplikaci nejlepší.
Dostupné typy a metody ověřování
Sada Azure SDK for Go nabízí několik různých typů ověřování s využitím různých sad přihlašovacích údajů. Jednotlivé typy ověřování jsou dostupné prostřednictvím různých metod ověřování, které představují způsob, jakým sada SDK přijímá přihlašovací údaje jako vstup. Následující tabulka obsahuje popis dostupných typů ověřování a situací, ve kterých se doporučuje jejich použití pro vaši aplikaci.
Authentication type | Doporučuje se pro situaci |
---|---|
Ověřování pomocí certifikátů | Máte certifikát X509 nakonfigurovaný pro uživatele nebo instanční objekt Microsoft Entra. Další informace najdete v tématu Začínáme s ověřováním na základě certifikátů v MICROSOFT Entra ID. |
Přihlašovací údaje klienta | Máte nakonfigurovaný instanční objekt, který je nastavený pro tuto aplikaci nebo třídu aplikací, do které patří. Další informace najdete v tématu Vytvoření instančního objektu pomocí Azure CLI. |
Spravované identity pro prostředky Azure | Vaše aplikace se spouští v prostředku Azure nakonfigurovaném s použitím spravované identity. Další informace najdete v tématu Spravované identity pro prostředky Azure. |
Token zařízení | Vaše aplikace je určená jenom k interaktivnímu použití. Uživatelé můžou mít povolené vícefaktorové ověřování. Uživatelé mají přístup k webovému prohlížeči, přes který se můžou přihlásit. Další informace najdete v tématu Použití ověřování pomocí tokenu zařízení. |
Uživatelské jméno / heslo | Máte interaktivní aplikaci, která neumožňuje použití žádné jiné metody ověřování. Vaši uživatelé nemají pro přihlášení k Microsoft Entra povolené vícefaktorové ověřování. |
Klíčové body
- Pokud používáte jiný typ ověřování než přihlašovací údaje klienta, musí být vaše aplikace zaregistrovaná v Microsoft Entra ID. Další informace najdete v tématu Integrace aplikací s MICROSOFT Entra ID.
- Pokud nemáte speciální požadavky, vyhněte se ověřování pomocí uživatelského jména a hesla. V situacích, kdy je vhodné přihlášení založené na uživatelích, je obvykle možné místo toho použít ověřování tokenu zařízení.
Tyto typy ověřování jsou dostupné prostřednictvím různých metod.
- Ověřování na základě prostředí čte přihlašovací údaje přímo z prostředí programu.
- Ověřování na základě souboru načítá soubor obsahující přihlašovací údaje instančního objektu.
- Ověřování na základě klienta používá objekt v kódu a přenáší na vás zodpovědnost za zadání přihlašovacích údajů během provádění programu.
- Ověřování pomocí tokenu zařízení vyžaduje, aby se uživatelé přihlašovali interaktivně přes webový prohlížeč s využitím tokenu.
Všechny ověřovací funkce a typy jsou k dispozici v balíčku github.com/Azure/go-autorest/autorest/azure/auth .
Poznámka:
Pokud nemáte speciální požadavky, vyhněte se ověřování na základě klienta. Tato metoda ověřování podporuje špatné postupy. Při použití ověřování na základě klienta je zejména lákavé přihlašovací údaje pevně zakódovat. Psaní vlastního kódu pro účely ověřování také může vést k selhání u budoucích vydaných verzí sady SDK, pokud se změní požadavky na ověřování.
Použití ověřování na základě prostředí
Pokud svou aplikaci spouštíte v kontrolovaném nastavení, ověřování na základě prostředí je přirozenou volbou. Pomocí této metody ověřování nakonfigurujete prostředí před spuštěním vaší aplikace. Za běhu Go SDK načte tyto proměnné prostředí a využije je pro ověřování pomocí Azure.
Ověřování na základě prostředí podporuje všechny typy ověřování kromě tokenů zařízení, které se vyhodnocují v následujícím pořadí:
- Přihlašovací údaje klienta
- Ověřování pomocí certifikátů
- Uživatelské jméno / heslo
- Spravované identity pro prostředky Azure
Pokud typ ověřování nemá nastavené hodnoty nebo se odmítne, sada SDK automaticky zkusí další typ ověřování. Pokud už nejsou dostupné žádné další typy, které by se daly vyzkoušet, sada SDK vrátí chybu.
Následující tabulka obsahuje podrobnosti o proměnných prostředí, které je potřeba nastavit pro jednotlivé typy ověřování podporované ověřováním na základě prostředí.
Authentication type | Proměnná prostředí | Popis |
---|---|---|
Přihlašovací údaje klienta | AZURE_TENANT_ID |
ID tenanta Active Directory, do kterého instanční objekt patří. |
AZURE_CLIENT_ID |
Název nebo ID instančního objektu. | |
AZURE_CLIENT_SECRET |
Tajný klíč přidružený k instančnímu objektu. | |
Certifikát | AZURE_TENANT_ID |
ID tenanta Active Directory, ve kterém je certifikát zaregistrovaný. |
AZURE_CLIENT_ID |
ID klienta aplikace přidruženého k certifikátu. | |
AZURE_CERTIFICATE_PATH |
Cesta k souboru klientského certifikátu. | |
AZURE_CERTIFICATE_PASSWORD |
Heslo pro klientský certifikát. | |
Uživatelské jméno a heslo | AZURE_TENANT_ID |
ID tenanta Active Directory, do kterého uživatel patří. |
AZURE_CLIENT_ID |
ID klienta aplikace. | |
AZURE_USERNAME |
Uživatelské jméno pro přihlášení. | |
AZURE_PASSWORD |
Heslo pro přihlášení. | |
Spravovaná identita | Pro ověřování spravovaných identit nejsou potřeba žádné přihlašovací údaje. Aplikace musí být spuštěná v prostředku Azure s nakonfigurovaným používáním spravovaných identit. Další informace najdete v tématu Spravované identity pro prostředky Azure. |
Pokud se potřebujete připojit k jinému cloudu nebo koncovému bodu správy, než je výchozí veřejný cloud Azure, nastavte následující proměnné prostředí. Mezi nejběžnější důvody patří používání služby Azure Stack, cloudu v jiné geografické oblasti nebo modelu nasazení Classic.
Proměnná prostředí | Popis |
---|---|
AZURE_ENVIRONMENT |
Název cloudového prostředí, ke kterému se má připojit. |
AZURE_AD_RESOURCE |
ID prostředku Active Directory, které se má použít při připojení, jako identifikátor URI pro váš koncový bod správy. |
Pokud používáte ověřování na základě prostředí, zavoláním funkce NewAuthorizerFromEnvironment získejte objekt Authorizer. Tento objekt se pak nastaví ve vlastnosti Authorizer
klientů a umožní jim přístup k Azure.
import "github.com/Azure/go-autorest/autorest/azure/auth"
authorizer, err := auth.NewAuthorizerFromEnvironment()
Ověřování v Azure Stacku
Pro ověřování v Azure Stacku musíte nastavit následující proměnné:
Proměnná prostředí | Popis |
---|---|
AZURE_AD_ENDPOINT |
Koncový bod služby Azure Active Directory. |
AZURE_AD_RESOURCE |
Identifikátor prostředku služby Azure Active Directory. |
Tyto proměnné se dají načíst z informací o metadatech Azure Stacku. Pokud chcete tato metadata načíst, otevřete webový prohlížeč v prostředí Azure Stacku a použijte adresu URL: (ResourceManagerURL)/metadata/endpoints?api-version=1.0
.
ResourceManagerURL
se liší v závislosti na názvu oblasti, názvu počítače a plně kvalifikovaném názvu domény (FQDN) vašeho nasazení Azure Stack:
Prostředí | ResourceManagerURL |
---|---|
Vývojová sada | https://management.local.azurestack.external/ |
Integrované systémy | https://management.(region).ext-(machine-name).(FQDN) |
Další informace o použití Azure SDK pro Go v Azure Stacku najdete v tématu věnovaném použití profilů verzí API s Go v Azure Stacku
Použití ověřování na základě souboru
Ověřování na základě souborů používá formát souborů generovaný rozhraním příkazového řádku Azure. Tento soubor můžete jednoduše vytvořit při vytváření nového instančního objektu pomocí parametru --sdk-auth
. Pokud plánujete používat ověřování na základě souboru, nezapomeňte tento argument zadat při vytváření instančního objektu. Vzhledem k tomu, že rozhraní příkazového řádku vypisuje výstup do stdout
, přesměrujte výstup do souboru.
az ad sp create-for-rbac --role Contributor \
--scopes /subscriptions/<subscription_id> \
--sdk-auth > azure.auth
Nastavte proměnnou prostředí AZURE_AUTH_LOCATION
na umístění autorizačního souboru. Aplikace tuto proměnnou prostředí přečte a provede parsování přihlašovacích údajů, které soubor obsahuje. Pokud potřebujete vybrat autorizační soubor za běhu, pracujte s prostředím programu pomocí funkce os.Setenv.
Pokud chcete načíst ověřovací údaje, zavolejte funkci NewAuthorizerFromFile. Na rozdíl od ověřování na základě prostředí vyžaduje ověřování na základě souboru koncový bod prostředku.
import "github.com/Azure/go-autorest/autorest/azure/auth"
authorizer, err := NewAuthorizerFromFile(azure.PublicCloud.ResourceManagerEndpoint)
Další informace o používání instančních objektů a správě jejich přístupových oprávnění najdete v tématu Vytvoření instančního objektu pomocí Azure CLI.
Použití ověřování pomocí tokenu zařízení
Pokud chcete, aby se uživatelé přihlašovali interaktivně, nejlepší způsob je použít ověřování pomocí tokenu zařízení. Tento tok ověřování předá uživateli token pro vložení na přihlašovací web Microsoftu, kde se pak ověří pomocí účtu Microsoft Entra. Tato metoda ověřování podporuje účty s povoleným vícefaktorovým ověřováním, na rozdíl od standardního ověřování pomocí uživatelského jména a hesla.
Pokud chcete použít ověřování pomocí tokenu zařízení, pomocí funkce NewDeviceFlowConfig vytvořte objekt Authorizer DeviceFlowConfig. Proces ověřování spustíte zavoláním metody Authorizer pro výsledný objekt. Ověřování tokenu zařízení zablokuje provádění programu, dokud se celý tok ověřování nedokončí.
import "github.com/Azure/go-autorest/autorest/azure/auth"
deviceConfig := auth.NewDeviceFlowConfig(applicationID, tenantID)
authorizer, err := deviceConfig.Authorizer()
Použití klienta ověřování
Pokud požadujete určitý typ ověřování a nevadí vám, že načtení ověřovacích údajů od uživatele bude obstarávat váš program, můžete použít jakéhokoli klienta, který je v souladu s rozhraním auth.AuthorizerConfig. Typ, který implementuje toto rozhraní, použijte, když:
- Píšete interaktivní program
- Používáte specializované konfigurační soubory
- Máte požadavek, která zabraňuje použití integrované metody ověřování
Upozorňující
Nikdy nekódujte přihlašovací údaje Azure napevno do aplikace. Vložením tajných klíčů do binárních souborů aplikace usnadníte útočníkům jejich extrakci, a to bez ohledu na to, jestli je aplikace spuštěná. Ohrozíte tím všechny prostředky Azure, ke kterým mají přihlašovací údaje autorizaci.
Následující tabulka uvádí typy v sadě SDK, které jsou v souladu s rozhraním AuthorizerConfig
.
Authentication type | Typ objektu Authorizer |
---|---|
Ověřování pomocí certifikátů | ClientCertificateConfig |
Přihlašovací údaje klienta | ClientCredentialsConfig |
Spravované identity pro prostředky Azure | MSIConfig |
Uživatelské jméno / heslo | UsernamePasswordConfig |
Pomocí příslušné funkce New
vytvořte objekt Authenticator a pak proveďte ověření zavoláním metody Authorize
pro výsledný objekt. Příklad při použití ověřování pomocí certifikátů:
import "github.com/Azure/go-autorest/autorest/azure/auth"
certificateAuthorizer := auth.NewClientCertificateConfig(certificatePath, certificatePassword, clientID, tenantID)
authorizerToken, err := certificateAuthorizer.Authorizer()
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro