Hitelesítés Azure-erőforrásokon helyszíni JavaScript-alkalmazásokból

Az Azure-on kívül futó alkalmazásoknak (például a helyszínen vagy egy külső adatközpontban) az Azure-erőforrások elérésekor egy alkalmazásszolgáltatás-tagot kell használniuk az Azure-beli hitelesítéshez. Az alkalmazásszolgáltatás egyszerű objektumai az azure-beli alkalmazásregisztrációs folyamattal jönnek létre. Az alkalmazás-szolgáltatásnév létrehozásakor létrejön egy ügyfélazonosító és egy titkos ügyfélkód az alkalmazáshoz. Az ügyfélazonosítót, az ügyfélkulcsot és a bérlőazonosítót környezeti változókban tárolja, hogy a JavaScripthez készült Azure SDK a környezeti változókkal hitelesítse az alkalmazást az Azure-ban futásidőben.

Minden olyan környezethez (például teszthez, fázishoz, éles környezethez) létre kell hozni egy másik alkalmazásregisztrációt, amelyben az alkalmazás fut. Ez lehetővé teszi a környezetspecifikus erőforrás-engedélyek konfigurálását minden egyes szolgáltatásnévhez, és győződjön meg arról, hogy egy adott környezetben üzembe helyezett alkalmazás nem beszél egy másik környezet részét képező Azure-erőforrással.

1 – Az alkalmazás regisztrálása az Azure-ban

Egy alkalmazás regisztrálható az Azure-ban az Azure Portal vagy az Azure CLI használatával.

Jelentkezzen be az Azure Portalra , és kövesse az alábbi lépéseket.

Utasítások Képernyőkép
Az Azure Portalon:
  1. Adja meg az alkalmazásregisztrációkat az Azure Portal tetején található keresősávban.
  2. A keresősáv alatt megjelenő menü Szolgáltatások fejléce alatt válassza ki a Alkalmazásregisztrációk címkével ellátott elemet.
A screenshot showing how to use the top search bar in the Azure portal to find and navigate to the App registrations page.
A Alkalmazásregisztrációk lapon válassza az + Új regisztráció lehetőséget. A screenshot showing the location of the New registration button in the App registrations page.
Az Alkalmazás regisztrálása lapon töltse ki az űrlapot az alábbiak szerint.
  1. Név → Adja meg az alkalmazásregisztráció nevét az Azure-ban. Javasoljuk, hogy ez a név tartalmazza az alkalmazás nevét és környezetét (teszt, prod) az alkalmazásregisztrációhoz.
  2. A támogatott fióktípusok csak ebben a szervezeti címtárban → fiókokat.
Válassza a Regisztráció lehetőséget az alkalmazás regisztrálásához és az alkalmazás-szolgáltatásnév létrehozásához.
A screenshot to fill out Register by giving the app a name and specifying supported account types as accounts in this organizational directory only.
Az alkalmazás alkalmazásregisztrációs oldalán:
  1. Alkalmazás (ügyfél) azonosítója → Ez az az alkalmazásazonosító, amelyet az alkalmazás a helyi fejlesztés során az Azure eléréséhez fog használni. Másolja ezt az értéket egy szövegszerkesztő ideiglenes helyére, mert egy későbbi lépésben szüksége lesz rá.
  2. Címtár (bérlő) azonosítója → Az alkalmazásnak erre az értékre is szüksége lesz az Azure-ban való hitelesítéskor. Másolja ezt az értéket egy szövegszerkesztő ideiglenes helyére, amely egy későbbi lépésben is szükség lesz rá.
  3. Ügyfél-hitelesítő adatok → Be kell állítania az alkalmazás ügyfél-hitelesítő adatait, mielőtt az alkalmazás hitelesítést végezhet az Azure-ban, és használhatja az Azure-szolgáltatásokat. Válassza a Tanúsítvány vagy titkos kód hozzáadása lehetőséget az alkalmazás hitelesítő adatainak hozzáadásához.
A screenshot of the App registration after completion. This screenshot shows the application and tenant IDs, which will be needed in a future step.
A Tanúsítványok > titkos kódok lapon válassza az + Új ügyfélkód lehetőséget. A screenshot showing the location of the link to use to create a new client secret on the certificates and secrets page.
Az Ügyfélkód hozzáadása párbeszédpanel a lap jobb oldalán jelenik meg. Ebben a párbeszédpanelen:
  1. Leírás → Adja meg az Aktuális értéket.
  2. Lejár → Válasszon egy 24 hónapos értéket.
Válassza a Hozzáadás lehetőséget a titkos kód hozzáadásához.

FONTOS: Állítson be emlékeztetőt a naptárban a titkos kód lejárati dátuma előtt. Így hozzáadhat egy új titkos kulcsot, és frissítheti az alkalmazásokat a titkos kód lejárata előtt, és elkerülheti a szolgáltatás megszakítását az alkalmazásban.
A screenshot showing the page where a new client secret is added for the application service principal created by the app registration process.
A Tanúsítványok > titkos kódok lap az ügyfél titkos kódjának értékét jeleníti meg.

Másolja ezt az értéket egy szövegszerkesztő ideiglenes helyére, mert egy későbbi lépésben szüksége lesz rá.

FONTOS: Ez az egyetlen alkalom, amikor megjelenik ez az érték. A lap elhagyása vagy frissítése után nem fogja tudni újra látni ezt az értéket. Hozzáadhat egy másik ügyfélkulcsot anélkül, hogy érvénytelenítenék ezt az ügyféltitkot, de ez az érték többé nem jelenik meg.
A screenshot showing the page with the generated client secret.

2 – Szerepkörök hozzárendelése az application service principalhez

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. 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 szerepköröket a szolgáltatásnévhez az erőforráscsoport hatókörében, mivel a legtöbb alkalmazás egyetlen erőforráscsoportba csoportosítja az összes Azure-erőforrást.

Utasítások Képernyőkép
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.
A screenshot showing the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to.
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 screenshot of the resource group page showing the location of the Access control (IAM) menu item.
A Hozzáférés-vezérlés (IAM) lapon:
  1. Válassza a Szerepkiosztások lapot.
  2. 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 screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group.
A Szerepkör-hozzárendelés hozzáadása lap felsorolja az erőforráscsoporthoz hozzárendelhető összes szerepkört.
  1. 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.
  2. 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 screenshot showing how to filter and select role assignments to be added to the resource group.
A következő Szerepkör-hozzárendelés hozzáadása lapon megadhatja, hogy melyik felhasználóhoz rendelje hozzá a szerepkört.
  1. Válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget a Hozzáférés hozzárendelése területen.
  2. Select + Select members under Members
Megnyílik egy párbeszédpanel az Azure Portal jobb oldalán.
A screenshot showing the radio button to select to assign a role to a Microsoft Entra group and the link used to select the group to assign the role to.
A Tagok kiválasztása párbeszédpanelen:
  1. 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 szolgáltatásnév első néhány karakterét a lista szűréséhez.
  2. Válassza ki az alkalmazáshoz társított szolgáltatásnevet.
A folytatáshoz válassza a Párbeszédpanel alján található Kijelölés lehetőséget.
A screenshot showing how to filter for and select the Microsoft Entra group for the application in the Select members dialog box.
A szolgáltatásnév 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.
A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process.

3 – Környezeti változók konfigurálása az alkalmazáshoz

A JavaScript-alkalmazást futtató folyamathoz be kell állítania a AZURE_CLIENT_ID, AZURE_TENANT_IDés AZURE_CLIENT_SECRET a környezeti változókat, hogy az alkalmazásszolgáltatás egyszerű hitelesítő adatai elérhetővé legyenek az alkalmazás számára futásidőben. Az DefaultAzureCredential objektum ezekben a környezeti változókban keresi a szolgáltatásnév adatait.

AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>

4 – DefaultAzureCredential implementálása az alkalmazásban

Az Azure SDK-ügyfélobjektumok Azure-beli hitelesítéséhez az alkalmazásnak a DefaultAzureCredential@azure/identitáscsomagból származó osztályt kell használnia.

Először adja hozzá a @azure/identitáscsomagot az alkalmazáshoz.

npm install @azure/identity

Ezután az azure SDK-ügyfélobjektumot létrehozó JavaScript-kódok esetében a következőket kell elvégeznie:

  1. Importálja az osztályt DefaultAzureCredential a @azure/identity modulból.
  2. Hozzon létre egy objektumot DefaultAzureCredential .
  3. Adja át az DefaultAzureCredential objektumot az Azure SDK ügyfélobjektum-konstruktorának.

Erre példa a következő kódszakaszban látható.

// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');

const blobServiceClient = new BlobServiceClient(
  `https://${accountName}.blob.core.windows.net`,
  new DefaultAzureCredential()
);

Amikor a fenti kód példányosítja az DefaultAzureCredential objektumot, DefaultAzureCredential beolvassa a környezeti változókatAZURE_SUBSCRIPTION_ID, AZURE_CLIENT_IDAZURE_TENANT_IDés AZURE_CLIENT_SECRET az alkalmazásszolgáltatás egyszerű információit az Azure-hoz való csatlakozáshoz.