Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure App Service egy nagy mértékben méretezhető, önfrissítő webtárhely szolgáltatást biztosít az Azure felhőplatformon. Az App Service emellett egy felügyelt identitást is biztosít az alkalmazás számára, amely kulcsrakész megoldás az Azure SQL-hez és más Azure-szolgáltatásokhoz való hozzáférés biztosításához. Az App Service felügyelt identitásai biztonságosabbá teszik az alkalmazást a titkos kódok, például a kapcsolati sztringek hitelesítő adatainak eltávolításával.
Ez az oktatóanyag bemutatja, hogyan adhat hozzá felügyelt identitást egy Azure SQL-háttérrendszerrel rendelkező minta .NET-alkalmazáshoz. A befejezés után az alkalmazás biztonságosan csatlakozhat az Azure SQL-adatbázishoz anélkül, hogy felhasználónevet és jelszót kellene megadnia.
Ebben az útmutatóban Ön:
- Felügyelt identitások engedélyezése.
- Adjon hozzáférést az Azure SQL Database-nek a felügyelt identitáshoz.
- Konfigurálja az Entity Frameworkt a Microsoft Entra-hitelesítés SQL Database-sel való használatára.
- Csatlakozzon az SQL Database-hez a Visual Studióból Microsoft Entra-hitelesítéssel.
Az Azure Database for MySQL vagy az Azure Database for PostgreSQL Node.js, Python és Java keretrendszerekben való használatáról a következő oktatóanyag nyújt útmutatást : Csatlakozás azure-adatbázisokhoz az App Service-ből titkos kulcsok nélkül felügyelt identitás használatával.
Feljegyzés
A helyszíni SQL Server nem támogatja a Microsoft Entra-azonosítókat és a felügyelt identitásokat.
A Microsoft Entra-hitelesítés eltér a helyszíni Active Directory (AD) tartományi szolgáltatások (DS) integrált Windows-hitelesítésétől . Az AD DS és a Microsoft Entra ID teljesen eltérő hitelesítési protokollokat használ. További információt a Microsoft Entra Domain Services dokumentációjában talál.
Előfeltételek
-
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
Alapszintű Azure App Service-ASP.NET MVC vagy ASP.NET Core MVC create-read-update-delete (CRUD) alkalmazással rendelkezik, amely az Azure SQL Database-t SQL-hitelesítéssel használja háttérként. Az oktatóanyag lépései a következő .NET-verziókat támogatják:
- 4.8-.NET-keretrendszer és újabb verziók
- .NET 6.0 vagy újabb
Engedélyezze az ügyfélkapcsolatot a számítógépről az Azure-ba, hogy hibakeresést végezhet az alkalmazáson a fejlesztési környezetben. Az ügyfél IP-címét a következő lépéseket követve adhatja hozzá az Azure Portalon kiszolgálószintű IP-tűzfalszabályok kezelése útmutatásai szerint.
Jelentkezzen be az Azure Cloud Shellbe, vagy készítse elő környezetét az Azure CLI használatára.
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Adatbázis-rendszergazdai hozzáférés biztosítása Egy Microsoft Entra-felhasználó számára
Engedélyezze a Microsoft Entra-hitelesítést az Azure SQL-adatbázishoz úgy, hogy egy Microsoft Entra-felhasználót rendel hozzá az Azure SQL Server rendszergazdájához. A Microsoft Entra rendszergazdájának olyan felhasználónak kell lennie, akit létrehoznak, importálnak, szinkronizálnak vagy meghívnak a Microsoft Entra-azonosítóba. Előfordulhat, hogy ez a felhasználó nem ugyanaz, mint az Azure-előfizetés Microsoft-fiókjának felhasználója.
- A Microsoft Entra-felhasználók létrehozásáról további információt a Microsoft Entra-azonosítóval rendelkező felhasználók hozzáadása vagy törlése című témakörben talál.
- További információ az SQL Database-hez engedélyezett Microsoft Entra-felhasználókról: Microsoft Entra-funkciók és korlátozások az SQL Database-ben.
- További információ az Azure SQL Server-rendszergazda hozzáadásáról: Microsoft Entra-rendszergazda kiépítése a kiszolgálóhoz.
Futtassa a következő parancsokat az Azure Cloud Shell Bash-környezetében, vagy miután helyileg bejelentkezett az Azure CLI-be.
Az
az ad user list,display-name,filtervagyupnparaméterek használatával lekérheti annak a Microsoft Entra ID-felhasználónak az objektumazonosítóját, akit rendszergazdává szeretne tenni. Futtassa önállóan aaz ad user listparancsot, hogy megjelenítse a Microsoft Entra könyvtár összes felhasználójának adatait.Az alábbi parancs például egy Microsoft Entra ID-felhasználó adatait sorolja fel a következővel:
display-nameKeresztnév Vezetéknév.az ad user list --display-name "Firstname Lastname"Íme egy példakimenet:
"businessPhones": [], "displayName": "Firstname Lastname", "givenName": null, "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "jobTitle": null, "mail": "firstname@contoso.com", "mobilePhone": null, "officeLocation": null, "preferredLanguage": null, "surname": null, "userPrincipalName": "firstname@contoso.com"Adja hozzá a Microsoft Entra ID-felhasználót rendszergazdaként az Azure SQL Serverhez a
az sql server ad-admin createparaméter használatávalobject-id. Az alábbi parancsban cserélje le<server-name>a kiszolgáló nevére az.database.windows.netutótag nélkül, és<entra-id>az előzőidparancs kimenetéből származóaz ad user listértékkel.az sql server ad-admin create --resource-group myResourceGroup --server-name <server-name> --display-name ADMIN --object-id <entra-id>
Felügyelt identitáskapcsolat beállítása az alkalmazáshoz
Az alábbi lépések úgy konfigurálják az alkalmazást, hogy rendszer által hozzárendelt felügyelt identitással csatlakozzon az Azure SQL Database-hez. Felhasználó által hozzárendelt identitás használatához tekintse meg az Oktatóanyagot: Csatlakozás azure-adatbázisokhoz az App Service-ből titkos kulcsok nélkül felügyelt identitás használatával.
Felügyelt identitás engedélyezése az alkalmazáshoz
Ha felügyelt identitást szeretne engedélyezni az Azure-alkalmazásához, használja az az webapp identity assign parancsot, és cserélje <app-name> helyére az alkalmazás nevét. A rendszer által hozzárendelt identitás neve mindig megegyezik az alkalmazás nevével.
az webapp identity assign --resource-group myResourceGroup --name <app-name>
A kimenet például a következő lehet:
{
"additionalProperties": {},
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
}
A felügyelt identitás üzembehelyezési ponthoz való engedélyezéséhez adja hozzá --slot <slot-name> az előző parancsot, és használja a pont nevét a következőben <slot-name>: . A telepítési rés számára a rendszer által hozzárendelt identitás neve <app-name>/slots/<slot-name>.
Hozzáadhatja az identitást egy Microsoft Entra-csoporthoz is, majd hozzáférést adhat az SQL Database-nek a Microsoft Entra csoporthoz az identitás helyett. A Microsoft Entra-csoportok engedélyeinek megadásához használja a csoport megjelenítendő nevét. Az alábbi parancsok hozzáadják a példa felügyelt identitást egy új, úgynevezett myAzureSQLDBAccessGroupcsoporthoz.
$groupid=(az ad group create --display-name myAzureSQLDBAccessGroup --mail-nickname myAzureSQLDBAccessGroup --query objectId --output tsv)
$msiobjectid=(az webapp identity show --resource-group myResourceGroup --name <app-name> --query principalId --output tsv)
az ad group member add --group $groupid --member-id $msiobjectid
az ad group member list -g $groupid
Engedélyek megadása a felügyelt identitáshoz
Adja meg az identitásnak az alkalmazás által igényelt minimális engedélyeket.
Nyisson meg egy PowerShell-parancssort, és jelentkezzen be az SQL Database-be az alábbi SQLCMD paranccsal. Cserélje le a
<server-name>-t a kiszolgálója nevére, a<db-name>-t az adatbázisa nevére, és a<admin-user>-t a rendszergazda felhasználóuserPrincipalName-jára az előzőaz ad user listparancs kimenetéből.sqlcmd -S <servername>.database.windows.net -d <db-name> -U <admin-user> -G -l 30A bejelentkezéshez kövesse az utasításokat.
Az SQL-parancssorban futtassa az alábbi parancsokat az alkalmazás számára az adatbázishoz szükséges minimális engedélyek megadásához. Cserélje le
<identity-name>a felügyelt identitás nevét a Microsoft Entra-azonosítóban, amely megegyezik az alkalmazás nevével.CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [<identity-name>]; ALTER ROLE db_datawriter ADD MEMBER [<identity-name>]; ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>]; GO
Feljegyzés
A háttérrendszer felügyelt identitásszolgáltatásai olyan token-gyorsítótárat tartanak fenn, amely csak akkor frissíti a token-t a cél erőforráshoz, ha az lejár. Ha az SQL Database-engedélyeket az alkalmazáshoz való első jogkivonat lekérése után próbálja módosítani, a gyorsítótárazott jogkivonat lejáratáig nem kap új, frissített engedélyekkel rendelkező jogkivonatot.
Az eredeti kapcsolati sztring eltávolítása
A web.config vagy appsettings.json végrehajtott módosítások a felügyelt identitással működnek. Az alkalmazás első üzembe helyezésekor használt eredeti kapcsolati sztringet eltávolíthatja. A kapcsolati sztring törléséhez futtassa a következő Azure CLI-parancsot, és helyettesítse <app-name> az alkalmazás nevével, valamint <connection-string-name> a kapcsolati sztring nevével.
az webapp config connection-string delete --resource-group myResourceGroup --name <app-name> --setting-names <connection-string-name>
A fejlesztési környezet beállítása
Állítsa be a választott fejlesztési környezetet, és jelentkezzen be az Azure-ba. A fejlesztői környezet Microsoft Entra-hitelesítéshez való beállításáról további információt az Azure Identity .NET-hez készült ügyfélkódtárában talál.
A Windows Visual Studio integrálva van a Microsoft Entra-hitelesítéssel.
- Ha engedélyezni szeretné a fejlesztést és a hibakeresést a Visual Studióban, vegye fel a Microsoft Entra-felhasználót a Visual Studióba a felső menü Fájlfiók>beállításai elemével , majd válassza a Bejelentkezés vagy a Hozzáadás lehetőséget.
- Ha be szeretné állítani a Microsoft Entra-felhasználót az Azure-szolgáltatáshitelesítéshez, válassza az Eszközök>beállításai lehetőséget a felső menüben, majd válassza az Azure Service Authentication-fiók>kiválasztása lehetőséget. Válassza ki a hozzáadott Microsoft Entra-felhasználót, és kattintson az OK gombra.
A projekt módosítása és az alkalmazás közzététele
Az Azure SQL adatbázis-alapú webalkalmazása adatbázis-környezettel csatlakozik az adatbázishoz. Ha a Microsoft Entra-hitelesítést szeretné használni az alkalmazás használatához, frissítenie kell az adatbázis-környezetet az Entity Framework SQL Server-szolgáltatóra való hivatkozáshoz, amely a modern Microsoft.Data.SqlClient ADO.NET szolgáltatótól függ.
Az Entity Framework-szolgáltató lecseréli a beépített SQL Server-szolgáltatót System.Data.SqlClient , és támogatja a Microsoft Entra ID hitelesítési módszereit. További információ: Microsoft.EntityFramework.SqlServer.
[DbConfigurationType(typeof(MicrosoftSqlDbConfiguration))] helyben működik, hogy a(z) Microsoft.Data.SqlClient-t az adatbázis-környezethez használja, de mivel a(z) System.Data.SqlClient az Azure App Service szolgáltatójaként van beírva, ki kell terjeszteni MicrosoftSqlDbConfiguration-t, hogy a(z) System.Data.SqlClient hivatkozásokat Microsoft.Data.SqlClient-re irányítsa át. A lépések attól függően különböznek, hogy rendelkezik-e ASP.NET vagy ASP.NET Core-alkalmazással.
Egy ASP.NET Core-alkalmazás alapértelmezés szerint az Entity Framework Core-t használja.
A Visual Studio Csomagkezelő konzolján adja hozzá a Microsoft.Data.SqlClient NuGet-csomagot.
Install-Package Microsoft.Data.SqlClientA appsettings.json, cserélje le a kapcsolati sztring értékét a következő kódra, és cserélje le a
<server-nameés<database-name>elemeket a kiszolgáló nevére és az adatbázis nevére."Server=tcp:<server-name>.database.windows.net;Authentication=Active Directory Default; Database=<database-name>;"Feljegyzés
Az Active Directory alapértelmezett hitelesítését a helyi gépen és az Azure App Service-ben is használhatja. A meghajtó több különböző módon szerezhet be jogkivonatot a Microsoft Entra ID-től.
Ha az alkalmazás üzembe van helyezve, a vezérlő token-t kap az alkalmazás rendszer által hozzárendelt kezelt identitásából. Az illesztőprogram felhasználó által hozzárendelt felügyelt identitással is hitelesíthető, ha a kapcsolati sztringben szerepel
User Id=<client-id-of-user-assigned-managed-identity>;.Az
DefaultAzureCredentialosztály gyorsítótárazza a tokent a memóriában, és lekéri a Microsoft Entra-azonosítóból a lejárat előtt. A jogkivonat frissítéséhez nincs szükség egyéni kódra.A Visual Studióban való hibakereséshez most már minden rendelkezésére áll, ami az Azure SQL Database-hez való csatlakozáshoz szükséges. A kód a fejlesztői környezet beállításakor konfigurált Microsoft Entra-felhasználót használja.
Futtassa az alkalmazást. A BÖNGÉSZŐ CRUD-alkalmazása közvetlenül a Microsoft Entra-hitelesítéssel csatlakozik az Azure SQL-adatbázishoz. Ezzel a beállítással adatbázis-migrálásokat futtathat a Visual Studióból.
Tegye közzé a módosításokat a következő Git-parancsokkal:
git commit -am "configure managed identity" git push azure main
Az alkalmazás tesztelése
Amikor az új weblapon megjelenik a feladatlista, az alkalmazása kapcsolódik az adatbázishoz a felügyelt identitás segítségével.
Most már szerkesztheti a to-do listát.
Az erőforrások megtisztítása
Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha várhatóan nem lesz szüksége ezekre az erőforrásokra a jövőben, törölje az erőforráscsoportot a következő parancs Cloud Shellben történő futtatásával:
az group delete --name myResourceGroup
A parancs futtatása eltarthat egy percig.
Kapcsolódó tartalom
- Oktatóanyag: Egyéni tartomány és felügyelt tanúsítvány használata az alkalmazás védelméhez
- Oktatóanyag: App Service-alkalmazás csatlakoztatása az SQL Database-hez a bejelentkezett felhasználó nevében
- Oktatóanyag: Azure-adatbázisokhoz való csatlakozás az App Service-ből titkos kulcsok nélkül felügyelt identitás használatával
- Oktatóanyag: Csatlakozás olyan Azure-szolgáltatásokhoz, amelyek nem támogatják a felügyelt identitásokat a Key Vault használatával
- Oktatóanyag: Háttérbeli kommunikáció elkülönítése a virtuális hálózat integrációjával