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