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 környezetalapú hitelesítés közvetlenül a program környezetéből olvassa be a hitelesítő adatokat.
- A fájlalapú hitelesítés betölt egy fájlt, amely a szolgáltatásnév hitelesítő adatait tartalmazza.
- Az ügyfélalapú hitelesítés a kód egyik objektumát használja, és a felhasználóra bízza a hitelesítőadatok megadását a program végrehajtásakor.
- Az eszközjogkivonattal történő hitelesítés esetén a felhasználóknak interaktív módon kell bejelentkezniük egy webböngészőn keresztül, egy jogkivonat segítségével.
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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: