Megosztás a következőn keresztül:


Go-alkalmazások hitelesítése az Azure-szolgáltatásokba a helyi fejlesztés során fejlesztői fiókok használatával

A helyi fejlesztés során az alkalmazásoknak hitelesíteni kell magukat az Azure-ban a különböző Azure-szolgáltatások használatához. Helyi hitelesítés az alábbi módszerek egyikével:

Ez a cikk bemutatja, hogyan hitelesíthető egy fejlesztői fiókkal az Azure Identity-kódtár által támogatott eszközökkel. A következő szakaszokban a következőket ismerheti meg:

  • A Microsoft Entra-csoportok használata több fejlesztői fiók engedélyeinek hatékony kezelésére.
  • Fejlesztői fiókokhoz szerepkörök hozzárendelése a jogosultságok hatókörének meghatározásához.
  • Bejelentkezés a támogatott helyi fejlesztési eszközökre.
  • Hogyan hitelesíthető egy fejlesztői fiókkal az alkalmazás kódjából.

Támogatott fejlesztői eszközök hitelesítéshez

Ahhoz, hogy egy alkalmazás a fejlesztő Azure-beli hitelesítő adataival hitelesítse magát az Azure-ban a helyi fejlesztés során, a fejlesztőnek az alábbi fejlesztői eszközök egyikével kell bejelentkeznie az Azure-ba:

  • Azure CLI (Az Azure parancssori felülete)
  • Azure Developer CLI
  • Azure PowerShell

Az Azure Identity-kódtár képes észlelni, hogy a fejlesztő bejelentkezett az egyik ilyen eszközről. Ezután a könyvtár beszerezheti az eszközzel a Microsoft Entra hozzáférési jogkivonatot, hogy az alkalmazást bejelentkezett felhasználóként az Azure-ban hitelesítse.

Ez a megközelítés kihasználja a fejlesztő meglévő Azure-fiókjait a hitelesítési folyamat egyszerűsítése érdekében. A fejlesztői fiók azonban valószínűleg több engedéllyel rendelkezik, mint amennyit az alkalmazás igényel, ezért túllépi az alkalmazás éles környezetben futtatott engedélyeit. Másik lehetőségként létrehozhat olyan alkalmazásszolgáltatás-tagokat , amelyeket a helyi fejlesztésisorán használhat, amelyek hatóköre csak az alkalmazás által igényelt hozzáféréssel rendelkezhet.

Microsoft Entra-csoport létrehozása helyi fejlesztéshez

Hozzon létre egy Microsoft Entra-csoportot, amely az alkalmazás által igényelt szerepköröket (engedélyeket) foglalja magában a helyi fejlesztés során, és nem rendeli hozzá a szerepköröket az egyes szolgáltatásnév-objektumokhoz. Ez a megközelítés a következő előnyöket kínálja:

  • Minden fejlesztőhöz ugyanazok a szerepkörök vannak hozzárendelve a csoport szintjén.
  • Ha új szerepkörre van szükség az alkalmazáshoz, azt csak az alkalmazás csoportához kell hozzáadni.
  • Ha egy új fejlesztő csatlakozik a csapathoz, egy új alkalmazásszolgáltatás-tag jön létre a fejlesztő számára, és hozzáadódik a csoporthoz, biztosítva, hogy a fejlesztő megfelelő engedélyekkel rendelkezik az alkalmazás használatához.
  1. Lépjen a Microsoft Entra ID áttekintési oldalára az Azure Portalon.

  2. Válassza az Összes csoportot a bal oldali menüből.

  3. A Csoportok lapon válassza Új csoportlehetőséget.

  4. Az Új csoport lapon töltse ki az alábbi űrlapmezőket:

    • Csoporttípus: Válassza Biztonságilehetőséget.
    • Csoportnév: Adja meg annak a csoportnak a nevét, amely az alkalmazás vagy a környezet nevére mutató hivatkozást tartalmaz.
    • Csoport leírása: Adjon meg egy leírást, amely ismerteti a csoport célját.

    Egy képernyőkép, amely bemutatja, hogyan hozhat létre csoportot az Azure Portalon.

  5. Válassza a Nincs kijelölt tag linket Tagok alatt, hogy tagokat adjon a csoporthoz.

  6. A megnyíló legördülő panelen keresse meg a korábban létrehozott szolgáltatási objektumot, és válassza ki a szűrt eredmények közül. A kijelölés megerősítéséhez kattintson a panel alján található Kiválasztás gombra.

  7. Az Új csoport lap alján válassza a Létrehozás lehetőséget a csoport létrehozásához és a Minden csoport laphoz való visszatéréshez. Ha nem látja az új csoportot a listában, várjon egy kis időt, és frissítse a lapot.

Szerepkörök hozzárendelése a csoporthoz

Ezután határozza meg, hogy az alkalmazásnak milyen szerepkörökre (engedélyekre) van szüksége az erőforrásokhoz, és rendelje hozzá ezeket a szerepköröket a létrehozott Microsoft Entra-csoporthoz. A csoportok szerepkörhöz rendelhetők az erőforrás, az erőforráscsoport vagy az előfizetés hatókörében. Ez a példa bemutatja, hogyan rendelhet hozzá szerepköröket az erőforráscsoport hatóköréhez, mivel a legtöbb alkalmazás egyetlen erőforráscsoportba csoportosítja az összes Azure-erőforrást.

  1. Az Azure Portalon lépjen az alkalmazást tartalmazó erőforráscsoport Áttekintés lapjára.

  2. A bal oldali navigációs sávon válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. A Hozzáférés-vezérlés (IAM) lapon válassza a + Hozzáadás lehetőséget, majd a legördülő menüben válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget. A Szerepkör-hozzárendelés hozzáadása lap számos lapot biztosít a szerepkörök konfigurálásához és hozzárendeléséhez.

  4. A Szerepkör lapon a keresőmezővel keresse meg a hozzárendelni kívánt szerepkört. Jelölje ki a szerepkört, majd kattintson a Tovább gombra.

  5. A Tagok lapon:

    • Az értékhez való hozzáférés hozzárendeléséhez válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget.
    • A Tagok értéknél válassza a + Tagok kijelölése lehetőséget a Tagok kijelölése úszó panel megnyitásához.
    • Keresse meg a korábban létrehozott Microsoft Entra-csoportot, és válassza ki a szűrt eredmények közül. Válassza a , majd a lehetőséget a csoport kijelöléséhez és a lebegő panel bezárásához.
    • Válassza a Véleményezés + hozzárendelés lehetőséget a Tagok lap alján.

    Képernyőkép arról, hogyan rendelhet szerepkört a Microsoft Entra csoporthoz.

  6. A Véleményezés + hozzárendelés lapon válassza a Véleményezés + hozzárendelés lehetőséget a lap alján.

Bejelentkezés az Azure-ba fejlesztői eszközökkel

Ezután jelentkezzen be az Azure-ba számos olyan fejlesztői eszköz egyikével, amellyel hitelesítést végezhet a fejlesztői környezetben. A hitelesített fióknak a korábban létrehozott és konfigurált Microsoft Entra-csoportban is léteznie kell.

A fejlesztők az Azure CLI használatával végezhetnek hitelesítést. A DefaultAzureCredential vagy az AzureCLICredential parancsot használó alkalmazások ezt a fiókot használhatják az alkalmazáskérések hitelesítéséhez.

Az Azure CLI-vel való hitelesítéshez futtassa a az login parancsot. Egy alapértelmezett webböngészővel rendelkező rendszeren az Azure CLI elindítja a böngészőt a felhasználó hitelesítéséhez.

az login

Az alapértelmezett webböngészővel nem rendelkező rendszerek esetében a az login parancs az eszközkód-hitelesítési folyamatot használja. Az argumentum megadásával --use-device-code arra is kényszerítheti az Azure CLI-t, hogy használja az eszköz kódfolyamatát ahelyett, hogy elindítanál egy böngészőt.

az login --use-device-code

Hitelesítés az Azure-szolgáltatásokban az alkalmazásból

Az azidentity csomag különböző hitelesítő adatokat biztosít a különböző forgatókönyvek és a Microsoft Entra hitelesítési folyamatok támogatásához. Az alábbi lépések bemutatják, hogyan használható a DefaultAzureCredential szolgáltatásnevek helyi és éles környezetben történő használata.

A kód implementálása

Az Azure SDK-ügyfélobjektumok Azure-beli hitelesítéséhez az alkalmazásnak a DefaultAzureCredential osztályt kell használnia. Ebben a forgatókönyvben egymás után ellenőrzi, DefaultAzureCredential hogy a fejlesztő bejelentkezett-e az Azure-ba az Azure CLI vagy az Azure fejlesztői parancssori felület használatával. Ha a fejlesztő ezen eszközök egyikével jelentkezik be az Azure-ba, az alkalmazás a hitelesítő adatokat használja a hitelesítéshez.

A DefaultAzureCredential egy rendezett sorozata azoknak a mechanizmusoknak, amelyek a Microsoft Entra ID-hez való hitelesítésre szolgálnak. Minden hitelesítési mechanizmus egy olyan típus, amely implementálja az TokenCredential interfészt, és hitelesítő adatként ismert. DefaultAzureCredential Egymás után ellenőrzi, hogy a fejlesztő az Azure CLI vagy az Azure fejlesztői PARANCSSOR használatával jelentkezett-e be az Azure-ba. Ha a fejlesztő ezen eszközök egyikével jelentkezik be az Azure-ba, az alkalmazás a hitelesítő adatokat használja a hitelesítéshez. A hitelesítőadat-lánc testreszabásáról további információt a DefaultAzureCredential testreszabása című témakörben talál.

  1. Adja hozzá a azidentity csomagot az alkalmazáshoz.

    go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
    
  2. Minden Olyan Go-kód esetében, amely azure SDK-ügyfélobjektumot hoz létre az alkalmazásban, a következőket kell elvégeznie:

    1. Importálja a azidentity csomagot.
    2. Használja a DefaultAzureCredential vagy AzureCLICredential elemeket hitelesítő adatok példányának létrehozásához. Például:
    • A használathoz DefaultAzureCredentialállítsa a környezeti változót AZURE_TOKEN_CREDENTIALSdev úgy, hogy az azt jelzi, hogy az alkalmazás fejlesztői környezetben fut. További információ: DefaultAzureCredential testreszabása.

      // Environment variable AZURE_TOKEN_CREDENTIALS=dev or a specific developer tool credential value
      cred, err := azidentity.NewDefaultAzureCredential(nil)
      
    • Vagy használjon egy adott hitelesítő adatot, például AzureCLICredential, AzureDeveloperCLICredential vagy AzurePowerShellCredential, a bejelentkezett felhasználó általi hitelesítéshez egy adott fejlesztési eszközhöz.

      cred, err := azidentity.NewAzureCLICredential(nil)
      // or cred, err := azidentity.NewAzureDeveloperCLICredential(nil)
      // or cred, err := azidentity.NewAzurePowerShellCredential(nil)
      
    1. Adja át a hitelesítőadat-példányt az Azure SDK-ügyfélkonstruktornak.

Ezekre a lépésekre az alábbi kódszakaszban látható példa.

import (
	"context"

	"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)

const (
	account       = "https://<replace_with_your_storage_account_name>.blob.core.windows.net/"
	containerName = "sample-container"
	blobName      = "sample-blob"
	sampleFile    = "path/to/sample/file"
)

func main() {
	// create a credential
	cred, err := azidentity.NewDefaultAzureCredential(nil)
	// or cred, err := azidentity.NewAzureCLICredential(nil)
	// or cred, err := azidentity.NewAzureDeveloperCLICredential(nil)
	// or cred, err := azidentity.NewAzurePowerShellCredential(nil)
	if err != nil {
	  // TODO: handle error
	}
	
	// create a client for the specified storage account
	client, err := azblob.NewClient(account, cred, nil)
	if err != nil {
	  // TODO: handle error
	}
	
	// TODO: perform some action with the azblob Client
	// _, err = client.DownloadFile(context.TODO(), <containerName>, <blobName>, <target_file>, <DownloadFileOptions>)
}