JavaScript-alkalmazások hitelesítése Azure-szolgáltatásokba a helyi fejlesztés során fejlesztői fiókok használatával
Cikk
Felhőalkalmazások létrehozásakor a fejlesztőknek hibakeresést és tesztelést kell végezniük az alkalmazások helyi munkaállomásán. Ha egy alkalmazás egy fejlesztői munkaállomáson fut a helyi fejlesztés során, akkor is hitelesítenie kell az alkalmazás által használt Azure-szolgáltatásokban. Ez a cikk bemutatja, hogyan használhatja egy fejlesztő Azure-beli hitelesítő adatait az alkalmazás azure-beli hitelesítésére a helyi fejlesztés során.
Ahhoz, hogy egy alkalmazás helyi fejlesztés során hitelesíthesse magát az Azure-ban a fejlesztő Azure-beli hitelesítő adataival, a fejlesztőnek be kell jelentkeznie az Azure-ba a Visual Studio Code Azure Tools bővítményből, az Azure CLI-ből vagy az Azure PowerShellből. Az Azure SDK for JavaScript képes észlelni, hogy a fejlesztő bejelentkezett az egyik ilyen eszközről, majd lekérte a szükséges hitelesítő adatokat a hitelesítő adatok gyorsítótárából, hogy bejelentkezett felhasználóként hitelesítse az alkalmazást az Azure-ban.
Ez a módszer a legegyszerűbben beállítható egy fejlesztői csapat számára, mivel kihasználja a fejlesztők meglévő Azure-fiókjait. 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. Alternatív megoldásként létrehozhat alkalmazásszolgáltatás-tagokat, amelyeket a helyi fejlesztés során használhat, amelyek hatóköre csak az alkalmazás által igényelt hozzáférésre terjedhet ki.
1 – Microsoft Entra-csoport létrehozása helyi fejlesztéshez
Mivel szinte mindig több fejlesztő dolgozik egy alkalmazáson, javasoljuk, hogy először hozzon létre egy Microsoft Entra-csoportot, amely magában foglalja az alkalmazáshoz szükséges szerepköröket (engedélyeket) a helyi fejlesztés során. Ez a következő előnyöket nyújtja.
Minden fejlesztőnek ugyanazok a szerepkörök lesznek hozzárendelve, mivel a szerepkörök csoportszinten vannak hozzárendelve.
Ha új szerepkörre van szükség az alkalmazáshoz, azt csak az alkalmazás Microsoft Entra csoportjához kell hozzáadni.
Ha egy új fejlesztő csatlakozik a csapathoz, egyszerűen hozzá kell adni őket a megfelelő Microsoft Entra-csoporthoz, hogy megkapják a megfelelő engedélyeket az alkalmazás használatához.
Ha már rendelkezik Microsoft Entra-csoporttal a fejlesztői csapathoz, használhatja ezt a csoportot. Ellenkező esetben végezze el a következő lépéseket egy Microsoft Entra-csoport létrehozásához.
Lépjen a Microsoft Entra ID lapjára az Azure Portalon. Ehhez írja be a Microsoft Entra-azonosítót a lap tetején található keresőmezőbe, majd válassza ki a Microsoft Entra-azonosítót a szolgáltatások alatt.
A Microsoft Entra ID lapján válassza a Csoportok lehetőséget a bal oldali menüben.
A Minden csoport lapon válassza az Új csoportot.
Az Új csoport lapon:
Csoporttípus → Biztonság.
A csoport neve → A biztonsági csoport neve, amely általában az alkalmazás nevéből jön létre. Hasznos lehet egy olyan sztringet is befoglalni a csoport nevében, mint a local-dev , hogy jelezze a csoport célját.
A csoport leírása → A csoport céljának leírása.
A Tagok csoportban válassza a Nem kijelölt tagok hivatkozást, ha tagokat szeretne hozzáadni a csoporthoz.
A Tagok hozzáadása párbeszédpanelen:
A keresőmezővel szűrheti a listában szereplő felhasználónevek listáját.
Válasszon ki egy vagy több felhasználót az alkalmazás helyi fejlesztéséhez. Amikor kiválaszt egy objektumot, az objektum a párbeszédpanel alján található Kijelölt elemek listára kerül.
Ha végzett, válassza a Kiválasztás gombot.
Az Új csoport lapon válassza a Létrehozás lehetőséget a csoport létrehozásához.
A rendszer létrehozza a csoportot, és visszavesz a Minden csoport lapra. A csoport megjelenése akár 30 másodpercet is igénybe vehet, és előfordulhat, hogy frissítenie kell az oldalt az Azure Portal gyorsítótárazása miatt.
Az az ad group create paranccsal csoportokat hozhat létre a Microsoft Entra ID-ban. A --display-name és a --main-nickname paraméterek kötelezőek. A csoportnak adott névnek az alkalmazás nevén kell alapulnia. Hasznos lehet egy "local-dev" kifejezést is belefoglalni a csoport nevére, hogy jelezze a csoport célját.
az ad group create \
--display-name MyDisplay \
--mail-nickname MyDisplay \
--description <group-description>
Ha tagokat szeretne hozzáadni a csoporthoz, szüksége lesz az Azure-felhasználó objektumazonosítójára. Az az ad felhasználói lista használatával listázhatja az elérhető szolgáltatásnevek listáját. A --filter paraméterparancs elfogadja az OData-stílusszűrőket, és a felhasználó megjelenítendő nevére szűrheti a listát az ábrán látható módon. A --query paraméter megadott oszlopokat ad vissza.
az ad user list \
--filter "startswith(displayName, 'Bob')" \
--query "[].{objectId:objectId, displayName:displayName}" \
--output table
Az az ad group member add parancs ezután a tagok csoportokhoz való hozzáadására használható.
az ad group member add \
--group <group-name> \
--member-id <object-id>
2 – Szerepkörök hozzárendelése a Microsoft Entra-csoporthoz
Ezután meg kell határoznia, hogy az alkalmazásnak milyen szerepkörökre (engedélyekre) van szüksége az adott erőforrásokhoz, és ki kell osztania ezeket a szerepköröket az alkalmazáshoz. Ebben a példában a szerepkörök az 1. lépésben létrehozott Microsoft Entra-csoporthoz vannak rendelve. A szerepkörök hozzárendelhetők szerepkörökhöz egy erőforrás, erőforráscsoport vagy 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.
Keresse meg az alkalmazás erőforráscsoportját az erőforráscsoport nevére az Azure Portal tetején található keresőmező használatával.
Lépjen az erőforráscsoportra a párbeszédpanel Erőforráscsoportok fejléce alatt található erőforráscsoport nevére kattintva.
Az erőforráscsoport oldalán válassza a Hozzáférés-vezérlés (IAM) lehetőséget a bal oldali menüben.
A Hozzáférés-vezérlés (IAM) lapon:
Válassza a Szerepkiosztások lapot.
Válassza a +Hozzáadás lehetőséget a felső menüből, majd a szerepkör-hozzárendelés hozzáadása lehetőséget az eredményül kapott legördülő menüből.
A Szerepkör-hozzárendelés hozzáadása lap felsorolja az erőforráscsoporthoz hozzárendelhető összes szerepkört.
A keresőmezővel kezelhetőbb méretre szűrheti a listát. Ez a példa bemutatja, hogyan szűrhet a Storage Blob-szerepkörökre.
Válassza ki a hozzárendelni kívánt szerepkört.
A Tovább gombra kattintva lépjen a következő képernyőre.
A következő Szerepkör-hozzárendelés hozzáadása lapon megadhatja, hogy melyik felhasználóhoz rendelje hozzá a szerepkört.
Válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget a Hozzáférés hozzárendelése területen.
Select + Select members under Members
Megnyílik egy párbeszédpanel az Azure Portal jobb oldalán.
A Tagok kiválasztása párbeszédpanelen:
A Kijelölés szövegmezővel szűrheti az előfizetésben lévő felhasználók és csoportok listáját. Szükség esetén írja be az alkalmazáshoz létrehozott helyi fejlesztési Microsoft Entra-csoport első néhány karakterét.
Válassza ki az alkalmazáshoz társított helyi fejlesztési Microsoft Entra-csoportot.
A folytatáshoz válassza a Párbeszédpanel alján található Kijelölés lehetőséget.
A Microsoft Entra csoport a Szerepkör-hozzárendelés hozzáadása képernyőn kiválasztott módon jelenik meg.
A folyamat befejezéséhez válassza a Véleményezés + hozzárendelés lehetőséget a végső lapra való ugráshoz, majd a Véleményezés + hozzárendelés lehetőséget.
az role assignment create --assignee "{appId}" \
--scope /subscriptions/"{subscriptionName}" \
--role "{roleName}" \
--resource-group "{resourceGroupName}"
A szolgáltatásnévhez hozzárendelhető szerepkörnevek lekéréséhez használja az az role definition list parancsot.
az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table
Ha például lehetővé szeretné tenni, hogy az alkalmazásszolgáltatásnév az appId 00000000-0000-0000-0000-000000000000 azonosítójával olvasási, írási és törlési hozzáférést biztosítson az Azure Storage blobtárolóihoz és adataihoz az msdocs-sdk-auth-example erőforráscsoport összes tárfiókja számára, az alábbi paranccsal rendelje hozzá az alkalmazásszolgáltatásnevet a Storage Blob-adatszolgáltató szerepkörhöz.
az role assignment create --assignee "00000000-0000-0000-0000-000000000000" \
--scope /subscriptions/"Storage Blob Data Subscriber" \
--role "Storage Blob Data Contributor" \
--resource-group "msdocs-sdk-auth-example"
Nyisson meg egy terminált a fejlesztői munkaállomáson, és jelentkezzen be az Azure-ba az Azure PowerShellből.
Connect-AzAccount
4 – DefaultAzureCredential implementálása az alkalmazásban
Az Azure SDK-ügyfélobjektumok Azure-beli hitelesítéséhez az alkalmazásnak a DefaultAzureCredential csomagból származó @azure/identity 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 a VS Code Azure-eszközök bővítményével, az Azure CLI-vel vagy az Azure PowerShell-lel. Ha a fejlesztő ezen eszközök bármelyikével jelentkezik be az Azure-ba, akkor az alkalmazás az eszközre való bejelentkezéshez használt hitelesítő adatokat fogja használni az Azure-ba való hitelesítéshez.
Ezután az azure SDK-ügyfélobjektumot létrehozó JavaScript-kódok esetében a következőket kell elvégeznie:
Importálja az osztályt DefaultAzureCredential a @azure/identity modulból.
Hozzon létre egy objektumot DefaultAzureCredential .
Adja át az DefaultAzureCredential objektumot az Azure SDK ügyfélobjektum-konstruktorának.
Erre példa a következő kódszakaszban látható.
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
// Acquire a credential object
const tokenCredential = DefaultAzureCredential();
const blobServiceClient = BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
tokenCredential
);
DefaultAzureCredential automatikusan észleli az alkalmazáshoz konfigurált hitelesítési mechanizmust, és beszerezi az alkalmazás Azure-beli hitelesítéséhez szükséges jogkivonatokat. Ha egy alkalmazás több SDK-ügyfelet használ, ugyanazt a hitelesítő objektumot használhatja minden egyes SDK-ügyfélobjektumhoz.