Oktatóanyag: függvényalkalmazás Csatlakozás az Azure SQL-be felügyelt identitással és SQL-kötésekkel

Az Azure Functions egy felügyelt identitást biztosít, amely kulcsrakész megoldás az Azure SQL Database-hez és más Azure-szolgáltatásokhoz való hozzáférés biztosításához. A felügyelt identitások biztonságosabbá teszik az alkalmazást azáltal, hogy eltávolítják az alkalmazás titkos kulcsait, például a hitelesítő adatokat a kapcsolati sztring. Ebben az oktatóanyagban felügyelt identitást fog hozzáadni egy Azure-függvényhez, amely Azure SQL-kötéseket használ. A ToDo háttérrendszer példájában egy SQL-kötéseket tartalmazó Azure-függvényprojekt érhető el.

Ha befejezte ezt az oktatóanyagot, az Azure-függvény felhasználónév és jelszó nélkül csatlakozik az Azure SQL-adatbázishoz.

A következő lépések áttekintése:

Adatbázis-hozzáférés biztosítása a Microsoft Entra-felhasználó számára

Először engedélyezze a Microsoft Entra-hitelesítést az SQL Database-hez egy Microsoft Entra-felhasználó hozzárendelésével a kiszolgáló Active Directory-rendszergazdájaként. Ez a felhasználó eltér attól a Microsoft-fióktól, amelyet az Azure-előfizetésére való regisztrációhoz használt. Olyan felhasználónak kell lennie, akit létrehozott, importált, szinkronizált vagy meghívott a Microsoft Entra-azonosítóba. További információ az engedélyezett Microsoft Entra-felhasználókról: Microsoft Entra-funkciók és korlátozások az SQL Database-ben.

A Microsoft Entra-hitelesítés engedélyezése az Azure Portalon, a PowerShellen vagy az Azure CLI-en keresztül végezhető el. Az Azure CLI-hez tartozó útmutatás alább található, és az Azure Portalon keresztüli, és a PowerShell az Azure SQL Microsoft Entra-hitelesítéssel kapcsolatos dokumentációjában érhető el.

  1. Ha a Microsoft Entra-bérlő még nem rendelkezik felhasználóval, hozzon létre egyet a Felhasználók hozzáadása vagy törlése a Microsoft Entra-azonosítóval című témakörben leírt lépésekkel.

  2. Keresse meg a Microsoft Entra-felhasználó objektumazonosítóját a felhasználónévvel, és cserélje le a felhasználónevet>.az ad user list< Az eredmény egy változóba lesz mentve.

    Az Azure CLI 2.37.0 és újabb esetén:

    azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].id --output tsv)
    

    Az Azure CLI régebbi verziói esetén:

    azureaduser=$(az ad user list --filter "userPrincipalName eq '<user-principal-name>'" --query [].objectId --output tsv)
    

    Tipp.

    A Microsoft Entra-azonosítóban található összes felhasználónév listájának megtekintéséhez futtassa a következőt az ad user list --query [].userPrincipalName: .

  3. Adja hozzá ezt a Microsoft Entra-felhasználót Active Directory-rendszergazdaként a Cloud Shell parancsával az sql server ad-admin create . A következő parancsban cserélje le <a kiszolgálónevet> a kiszolgálónévre (utótag .database.windows.net nélkül).

    az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id $azureaduser
    

További információ az Active Directory-rendszergazda hozzáadásáról: Microsoft Entra-rendszergazda kiépítése a kiszolgálóhoz

Rendszer által hozzárendelt felügyelt identitás engedélyezése az Azure-függvényben

Ebben a lépésben egy rendszer által hozzárendelt identitást adunk hozzá az Azure-függvényhez. A későbbi lépésekben ez az identitás hozzáférést kap az SQL-adatbázishoz.

A rendszer által hozzárendelt felügyelt identitás engedélyezése az Azure Portalon:

  1. Hozzon létre egy Azure-függvényt a portálon a szokásos módon. Lépjen rá a portálon.
  2. Görgessen le a bal oldali navigációs Gépház csoporthoz.
  3. Válassza az Identitás lehetőséget.
  4. A rendszer által hozzárendelt lapon kapcsolja be az Állapot beállítást. Kattintson a Mentés gombra.

Turn on system assigned identity for Function app

A rendszer által hozzárendelt felügyelt identitás Azure CLI-n vagy PowerShellen keresztüli engedélyezésével kapcsolatos további információkért tekintse meg a felügyelt identitások Azure Functions-beli használatával kapcsolatos további információkat.

Tipp.

Felhasználó által hozzárendelt felügyelt identitás esetén váltson a Felhasználó által hozzárendelt lapra. Kattintson a Hozzáadás gombra, és válasszon ki egy felügyelt identitást. A felhasználó által hozzárendelt felügyelt identitások létrehozásáról további információt a felhasználó által hozzárendelt felügyelt identitások kezelése című témakörben talál.

SQL-adatbázis hozzáférésének biztosítása a felügyelt identitáshoz

Ebben a lépésben egy Microsoft Entra felhasználói fiókkal csatlakozunk az SQL-adatbázishoz, és hozzáférést adunk a felügyelt identitásnak az adatbázishoz.

  1. Nyissa meg a kívánt SQL-eszközt, és jelentkezzen be egy Microsoft Entra felhasználói fiókkal (például a rendszergazdaként hozzárendelt Microsoft Entra-felhasználóval). Ez a Cloud Shellben az SQLCMD paranccsal valósítható meg.

    sqlcmd -S <server-name>.database.windows.net -d <db-name> -U <aad-user-name> -P "<aad-password>" -G -l 30
    
  2. A kívánt adatbázis SQL-parancssorában futtassa az alábbi parancsokat a függvény engedélyeinek megadásához. Például:

    CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
    ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
    GO
    

    <Az identitás-név> a Microsoft Entra-azonosítóban szereplő felügyelt identitás neve. Ha az identitás rendszerhez van rendelve, a név mindig megegyezik a függvényalkalmazás nevével.

Az Azure-függvény SQL-kapcsolati sztring konfigurálása

Az utolsó lépésben konfiguráljuk az Azure-függvény SQL-kapcsolati sztring a Microsoft Entra által felügyelt identitáshitelesítés használatára.

A kapcsolati sztring beállítás neve a Functions-kódban a "Csatlakozás ionStringSetting" kötési attribútumként van azonosítva, ahogyan az SQL bemeneti kötési attribútumaiban és széljegyzeteiben is látható.

A függvényalkalmazás alkalmazásbeállításaiban az SQL kapcsolati sztring beállítást frissíteni kell az alábbi formátum szerint:

Server=demo.database.windows.net; Authentication=Active Directory Managed Identity; Database=testdb

A testdb annak az adatbázisnak a neve, amelyhez csatlakozunk, és demo.database.windows.net annak a kiszolgálónak a neve, amelyhez csatlakozunk.

Tipp.

A felhasználó által hozzárendelt felügyelt identitáshoz használja a következőt Server=demo.database.windows.net; Authentication=Active Directory Managed Identity; User Id=ClientIdOfManagedIdentity; Database=testdb: .

Következő lépések