Share via


Hitelesítés az Azure SDK for Go használatával (örökölt)

Fontos

Ez a cikk az Azure SDK for Go örökölt verziójára vonatkozik. A legújabb modulok hitelesítéséhez használja az Azure Identity-csomagot.

A Góhoz készült Azure SDK több módszert is kínál az Azure-ral való hitelesítésre. Ezeket a hitelesítési típusokat különböző hitelesítési módszerekkel lehet meghívni. Ez a cikk ismerteti az elérhető típusokat és módszereket, valamint azt is, hogy hogyan választhatja ki, melyek a legjobbak az alkalmazás számára.

Az elérhető hitelesítési típusok és módszerek

A Góhoz készült Azure SDK számos hitelesítési típust kínál, amelyek eltérő hitelesítőadat-készleteket használnak. Mindegyik hitelesítési típust különböző hitelesítési módszerekkel lehet elérni, amelyek azt határozzák meg, hogy hogyan fogadja az SDK a hitelesítő adatokat bemeneti adatként. A következő táblázat ismerteti az elérhető hitelesítési típusokat és azokat a helyzeteket, amikor az alkalmazásnak érdemes használnia őket.

Hitelesítés típusa Ajánlott, amikor...
Tanúsítványalapú hitelesítés Rendelkezik egy X509-tanúsítvánnyal, amely egy Microsoft Entra-felhasználóhoz vagy szolgáltatásnévhez lett konfigurálva. További információ: Ismerkedés a tanúsítványalapú hitelesítéssel a Microsoft Entra ID-ban.
Ügyfél-hitelesítő adatok Egy konfigurált szolgáltatásnévvel rendelkezik, amelyet ehhez az alkalmazáshoz vagy az alkalmazásosztályához állítottak be. További tudnivalókért lásd: Szolgáltatásnév létrehozása az Azure CLI-vel.
Azure-erőforrások felügyelt identitásai Az alkalmazás egy olyan Azure-erőforráson fut, amelyet egy felügyelt identitással konfiguráltak. További tudnivalókért lásd az Azure-erőforrások felügyelt identitásait.
Eszközjogkivonat Az alkalmazást kizárólag interaktív használatra szánták. Előfordulhat, hogy a felhasználók többtényezős hitelesítést engedélyeznek. A felhasználók hozzáféréssel rendelkeznek egy webböngészőhöz, amelyen keresztül be tudnak jelentkezni. További információkért lásd: Az eszközjogkivonattal történő hitelesítés használata.
Felhasználónév/jelszó Van egy interaktív alkalmazása, amely nem használhat más hitelesítési módszert. A felhasználók nem rendelkeznek többtényezős hitelesítéssel a Microsoft Entra-bejelentkezéshez.

Kulcsfontosságú pontok

  • Ha az ügyfél hitelesítő adataitól eltérő hitelesítési típust használ, az alkalmazást a Microsoft Entra-azonosítóban kell regisztrálni. További információ: Alkalmazások integrálása a Microsoft Entra-azonosítóval.
  • Hacsak nem állnak fenn különleges követelmények, kerülje a felhasználónév- és jelszóalapú hitelesítést. Azokban az esetekben, amikor a felhasználóalapú bejelentkezés megfelelő, az eszközjogkivonat-hitelesítés általában használható helyette.

Ezeket a hitelesítési típusokat különböző módszerekkel lehet elérni.

A github.com/Azure/go-autorest/autorest/azure/auth csomagban minden hitelesítési függvény és típus elérhető.

Megjegyzés:

Ha nincsenek különleges követelmények, kerülje az ügyfélalapú hitelesítést. Ez a hitelesítési módszer támogatja a helytelen gyakorlatok alkalmazását. A hitelesítő adatok szoftveres rögzítése például különösen az ügyfélalapú hitelesítés használata során vonzó lehetőség. Az egyedi kód írása a hitelesítéshez szintén értelmét vesztheti a jövőbeli SDK kiadásoknál, ha megváltoznak a hitelesítési követelmények.

A környezetalapú hitelesítés használata

Ha egy ellenőrzött környezetben futtatja az alkalmazást, a környezetalapú hitelesítés kézenfekvő lehet. Ezzel a hitelesítési módszerrel az alkalmazás futtatása előtt konfigurálja a rendszerhéj-környezetet. A Go SDK pedig a futtatáskor beolvassa ezeket a környezeti változókat az Azure-hitelesítéshez.

A környezetalapú hitelesítés az eszközjogkivonatok kivételével minden hitelesítési típust támogat, és az alábbi sorrendben van kiértékelve:

  • Ügyfél-hitelesítő adatok
  • Tanúsítványalapú hitelesítés
  • Felhasználónév/jelszó
  • Azure-erőforrások felügyelt identitásai

Ha a hitelesítés típusánál nincs beállított érték, vagy a rendszer elutasította, akkor az SDK automatikusan a következő hitelesítési típussal próbálkozik. Ha nincs több típus, amivel próbálkozhat, akkor az SDK hibaüzenetet jelenít meg.

Az alábbi táblázat azokat a környezeti változókat ismerteti, amelyeket be kell állítani a környezetalapú hitelesítés által támogatott hitelesítési típusokhoz.

Hitelesítés típusa Környezeti változó Leírás
Ügyfél-hitelesítő adatok AZURE_TENANT_ID Annak az Active Directory-bérlőnek az azonosítója, amelyhez a szolgáltatásnév tartozik.
AZURE_CLIENT_ID A szolgáltatásnév neve vagy azonosítója.
AZURE_CLIENT_SECRET A szolgáltatásnévhez társított titkos kulcs.
Certificate AZURE_TENANT_ID Annak az Active Directory-bérlőnek az azonosítója, amellyel a tanúsítványt regisztrálták.
AZURE_CLIENT_ID A tanúsítványhoz társított alkalmazásügyfél-azonosító.
AZURE_CERTIFICATE_PATH Az ügyféltanúsítvány-fájl elérési útja.
AZURE_CERTIFICATE_PASSWORD Az ügyféltanúsítvány jelszava.
Felhasználónév/jelszó AZURE_TENANT_ID Annak az Active Directory-bérlőnek az azonosítója, amelyhez a felhasználó tartozik.
AZURE_CLIENT_ID Az alkalmazás ügyfél-azonosítója.
AZURE_USERNAME A bejelentkezéshez használt felhasználónév.
AZURE_PASSWORD A bejelentkezéshez használt jelszó.
Managed identity A felügyeltidentitás-hitelesítéshez nincs szükség hitelesítő adatokra. Az alkalmazásnak egy, a felügyelt identitások használatára konfigurált Azure-erőforráson kell futnia. További részletekért lásd az Azure-erőforrások felügyelt identitásait.

Az alábbi környezeti változók beállításával olyan felhőhöz vagy felügyeleti végponthoz csatlakozhat, amely nem az alapértelmezett Azure-beli nyilvános felhő. A változók beállításának leggyakoribb oka az Azure Stack, egy másik földrajzi régióban lévő felhő vagy a klasszikus üzemi modell használata.

Környezeti változó Leírás
AZURE_ENVIRONMENT Azon felhőkörnyezet neve, amelyhez a rendszer csatlakozik.
AZURE_AD_RESOURCE A csatlakozáshoz használandó Active Directory erőforrás-azonosító használandó, amely URI-ként mutat a felügyeleti végpontra.

A környezetalapú hitelesítés használatakor hívja meg a NewAuthorizerFromEnvironment függvényt a hitelesítő objektum beszerzéséhez. A rendszer ezt az objektumot fogja beállítani az ügyfelek Authorizer tulajdonságánál, hogy engedélyezze számukra az Azure-hoz való hozzáférést.

import "github.com/Azure/go-autorest/autorest/azure/auth"
authorizer, err := auth.NewAuthorizerFromEnvironment()

Hitelesítés az Azure Stackben

Az Azure Stackben való hitelesítéshez be kell állítania a következő változókat:

Környezeti változó Leírás
AZURE_AD_ENDPOINT Az Active Directory-végpont.
AZURE_AD_RESOURCE Az Active Directory erőforrás-azonosító.

Ezek a változók az Azure Stack metaadat-információiból kérhetők le. A metaadatok lekéréséhez nyisson meg egy webböngészőt az Azure Stack-környezetben, majd használja a következő URL-címet(ResourceManagerURL)/metadata/endpoints?api-version=1.0

A(z) ResourceManagerURL a régió neve, a gép neve és az Azure Stack üzemelő példányának külső teljes tartományneve (FQDN) alapján eltérő lehet:

Environment ResourceManagerURL
Fejlesztői készlet https://management.local.azurestack.external/
Integrált rendszerek https://management.(region).ext-(machine-name).(FQDN)

A Góhoz készült Azure SDK az Azure Stackben való használatáról az API-verzióprofiloknak a Góval az Azure Stackben történő használatát bemutató témakörben tájékozódhat.

A fájlalapú hitelesítés használata

A fájlalapú hitelesítés egy, az Azure CLI által létrehozott fájlformátumot használ. Ezt a fájlt könnyedén létrehozhatja, amikor új szolgáltatásnevet hoz létre az --sdk-auth paraméterrel. Ha fájlalapú hitelesítést szeretne használni, ügyeljen arra, hogy a szolgáltatásnév létrehozásakor megadja ezt az argumentumot. Mivel a CLI az stdout kimeneten nyomtatja a kimenetet, irányítsa át a kimenetet egy fájlba.

az ad sp create-for-rbac --role Contributor \
    --scopes /subscriptions/<subscription_id> \
    --sdk-auth > azure.auth

Az AZURE_AUTH_LOCATION környezeti változónál állítsa be a hitelesítési fájl helyét. Az alkalmazás beolvassa ezt a környezeti változót, és elemzi a benne található hitelesítő adatokat. Ha futásidőben kell kiválasztania a hitelesítési fájlt, a program környezetét az os.Setenv függvénnyel kezelheti.

A hitelesítési adatok betöltéséhez hívja meg a NewAuthorizerFromFile függvényt. A környezetalapú hitelesítéssel ellentétben a fájlalapú hitelesítésnél szükség van egy erőforrásvégpontra.

import "github.com/Azure/go-autorest/autorest/azure/auth"
authorizer, err := NewAuthorizerFromFile(azure.PublicCloud.ResourceManagerEndpoint)

A szolgáltatásnevek használatával és a hozzáférési engedélyeik kezelésével kapcsolatos további információkért lásd: Szolgáltatásnév létrehozása az Azure CLI-vel.

Az eszközjogkivonattal történő hitelesítés használata

Ha azt szeretné, hogy a felhasználók interaktívan jelentkezzenek be, a legjobb megoldás az eszközjogkivonattal történő hitelesítés használata. Ez a hitelesítési folyamat egy jogkivonatot ad át a felhasználónak a Microsoft bejelentkezési webhelyére való beillesztéshez, ahol aztán egy Microsoft Entra-fiókkal hitelesítik őket. Ez a hitelesítési módszer támogatja a többtényezős hitelesítést engedélyező fiókokat, ellentétben a szabványos felhasználónév-jelszó-hitelesítéssel.

Az eszközjogkivonattal történő hitelesítés használatához hozzon létre egy DeviceFlowConfig hitelesítőt a NewDeviceFlowConfig függvénnyel. A hitelesítési folyamat elindításához hívja meg az Authorizer függvényt az eredményül kapott objektumhoz. Az eszközfolyamat-hitelesítés letiltja a programok végrehajtását, amíg a teljes hitelesítési folyamat be nem fejeződik.

import "github.com/Azure/go-autorest/autorest/azure/auth"
deviceConfig := auth.NewDeviceFlowConfig(applicationID, tenantID)
authorizer, err := deviceConfig.Authorizer()

Hitelesítési ügyfél használata

Ha egy bizonyos típusú hitelesítésre van szüksége, és nem ellenzi azt, hogy a program tölti be a felhasználó hitelesítési adatait, akkor bármely ügyfelet használhatja, amely megfelel az auth.AuthorizerConfig felületnek. Olyan típust használjon, amely ezt a felületet valósítja meg a következő esetekben:

  • Interaktív program írása
  • Speciális konfigurációs fájlok használata
  • Olyan követelmény alkalmazása, amely megakadályozza a beépített hitelesítési módszerek használatát

Figyelmeztetés

Az Azure-beli hitelesítő adatokat soha ne rögzítse szoftveresen egy alkalmazásba. Ha egy bináris alkalmazásfájlba helyezi a titkos kulcsokat, a támadók egyszerűbben ki tudják nyerni azokat, függetlenül attól, hogy éppen fut-e az alkalmazás. Ezzel veszélynek teszi ki az összes Azure-erőforrást, amelyhez a hitelesítő adatok engedélyezve vannak!

Az alábbi táblázat felsorolja azokat az SDK-ban elérhető típusokat, amelyek megfelelnek az AuthorizerConfig felületnek.

Hitelesítés típusa Hitelesítő típusa
Tanúsítványalapú hitelesítés ClientCertificateConfig
Ügyfél-hitelesítő adatok ClientCredentialsConfig
Azure-erőforrások felügyelt identitásai MSIConfig
Felhasználónév/jelszó UsernamePasswordConfig

Hozzon létre egy hitelesítőt a kapcsolódó New függvénnyel, majd a hitelesítéshez hívja meg az Authorize függvényt az eredményül kapott objektumhoz. Például tanúsítványalapú hitelesítés használata esetén:

import "github.com/Azure/go-autorest/autorest/azure/auth"
certificateAuthorizer := auth.NewClientCertificateConfig(certificatePath, certificatePassword, clientID, tenantID)
authorizerToken, err := certificateAuthorizer.Authorizer()

További lépések