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.
Ez az oktatóanyag bemutatja, hogyan csatlakoztathat egy Azure App Service-alkalmazást egy háttérbeli Azure SQL-adatbázishoz a bejelentkezett felhasználó megszemélyesítésével, más néven a folyamat nevében. A folyamat konfigurálásához engedélyezze az App Service beépített hitelesítését a Microsoft Entra identitásszolgáltatóval.
Ez a kapcsolati módszer fejlettebb, mint a felügyelt identitás megközelítése az oktatóanyagban: Adatok elérése felügyelt identitással, és a következő előnyökkel jár a vállalati forgatókönyvekben:
- Megszünteti a háttérszolgáltatásokhoz való kapcsolódás titkos kulcsait, ahogyan a felügyelt identitás megközelítését is.
- A háttéradatbázis vagy más Azure-szolgáltatások jobban szabályozják, hogy kinek mennyi hozzáférést biztosítson.
- Lehetővé teszi, hogy az alkalmazás az adatbemutatót a bejelentkezett felhasználóhoz szabja.
Ebben az oktatóanyagban Microsoft Entra-hitelesítést ad hozzá egy Azure SQL Database háttérrendszerrel rendelkező .NET-webalkalmazáshoz. Megtudhatja, hogyan:
- Engedélyezze a Microsoft Entra-hitelesítést az Azure SQL Database-hez.
- Tiltsa le az SQL Database egyéb hitelesítési beállításait.
- Adja hozzá a Microsoft Entra-azonosítót az alkalmazás identitásszolgáltatójaként.
- Konfigurálja az SQL Database felhasználói megszemélyesítési engedélyét.
- Konfigurálja az App Service-t, hogy használható hozzáférési jogkivonatot biztosítson az SQL Database-hez.
- Az Azure SQL-adatbázis elérése a bejelentkezett Microsoft Entra-felhasználó nevében.
Az oktatóanyag elvégzése után az alkalmazás biztonságosan csatlakozik az SQL Database-hez a bejelentkezett felhasználó nevében.
Feljegyzés
- A Helyszíni SQL Server nem támogatja a Microsoft Entra-azonosítót.
- 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
Hozzáféréssel rendelkezik egy felhasználókkal és csoportokkal kitöltött Microsoft Entra-bérlőhöz.
Töltse ki az oktatóanyagot: ASP.NET Core- és SQL Database-alkalmazás létrehozása az Azure App Service-ben, és használja a kész alkalmazást ehhez az oktatóanyaghoz.
Másik lehetőségként adaptálhatja a lépéseket, és használhatja a saját .NET-alkalmazását az SQL Database-lel. Az oktatóanyag lépései a következő .NET-verziókat támogatják:
- .NET Framework 4.8 vagy újabb
- .NET 6.0 vagy újabb
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 a CLI referencia parancsokat helyben szeretnéd futtatni, telepítsd az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, fontolja meg az Azure CLI-t egy Docker-konténerben futtatni. További információkért lásd: Az Azure CLI használata Docker-konténerben.
Ha egy helyileg telepített verziót használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. Az azonosítási folyamat befejezéséhez kövesse a terminálján 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 megjelenik a felszólítás, az első használatkor 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.
Futtasd a az version parancsot, hogy megtudd a telepített verziót és függő könyvtárakat. A legújabb verzióra való frissítéshez futtassa a az upgrade parancsot.
1. Adatbázis-kiszolgáló konfigurálása Microsoft Entra-hitelesítéssel
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 a Microsoft Entra-felhasználó nem ugyanaz, mint az Azure-előfizetésHez tartozó Microsoft-fiók felhasználója.
Ha hozzá szeretné adni a Microsoft Entra ID-felhasználót az Azure SQL Server rendszergazdájaként, futtassa az alábbi Azure CLI-parancsokat.
A
az ad user list,filtervagyupnparaméterreldisplay-namelekérheti annak a Microsoft Entra ID-felhasználónak az objektumazonosítóját, amelyet rendszergazdaként szeretne létrehozni. Az alábbi parancs például a Vezetéknév vezetéknévvel rendelkeződisplay-nameMicrosoft Entra ID-felhasználó adatait sorolja fel.az ad user list --display-name "Firstname Lastname"Másolja ki a
idkimenetből a következő lépésben használni kívánt értéket.Tipp
Önállóan is megjelenítheti
az ad user lista Microsoft Entra könyvtár összes felhasználójának adatait.Adja hozzá a Microsoft Entra ID-felhasználót rendszergazdaként az Azure SQL Serverhez a
object-idparaméter használatávalaz sql server ad-admin create. A következő parancsban cserélje le<group-name>a kiszolgáló erőforráscsoportjának nevét,<server-name>a kiszolgáló nevét az.database.windows.netutótaggal<entra-id>és azidelőzőaz ad user listparancs kimenetével.az sql server ad-admin create --resource-group <group-name> --server-name <server-name> --display-name ADMIN --object-id <entra-id>Az adatbázis-kiszolgáló hitelesítésének korlátozása csak Microsoft Entra-hitelesítésre. Ez a lépés letiltja az SQL-felhasználónevet és a jelszó-hitelesítést.
az sql server ad-only-auth enable --resource-group <group-name> --name <server-name>
- 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.
2. A Microsoft Entra ID-hitelesítés engedélyezése az alkalmazáshoz
Adja hozzá a Microsoft Entra-azonosítót az alkalmazás identitásszolgáltatójaként. További információ: Microsoft Entra-hitelesítés konfigurálása az App Services-alkalmazáshoz.
Az alkalmazás Azure Portal lapján válassza a Hitelesítés lehetőséget a bal oldali navigációs menü Beállítások csoportjában.
A Hitelesítés lapon válassza az Identitásszolgáltató hozzáadása lehetőséget, vagy az Identitásszolgáltató szakaszban válassza a Szolgáltató hozzáadása lehetőséget.
Az Identitásszolgáltató hozzáadása lapon válassza a Microsoftot szolgáltatóként.
Az ügyfél titkos kódjának lejárata esetén válassza ki a legördülő lista egyik beállítását, például ajánlott: 180 nap.
Tartsa meg az összes alapértelmezett beállítást, és válassza a Hozzáadás lehetőséget.
Feljegyzés
Ha újrakonfigurálja az alkalmazás hitelesítési beállításait, előfordulhat, hogy a jogkivonat-tárolóban lévő jogkivonatok nem újulnak meg az új beállításokból. A jogkivonatok újragenerálásához jelentkezzen ki, és jelentkezzen be újra az alkalmazásba. Egy egyszerű módszer a böngésző privát módban való használata. Az alkalmazások beállításainak módosítása után zárja be és nyissa meg újra a böngészőt privát módban.
3. Az SQL Database felhasználói megszemélyesítésének konfigurálása
Adjon engedélyt az alkalmazásnak az SQL Database eléréséhez a bejelentkezett Microsoft Entra-felhasználó nevében.
Az alkalmazás hitelesítési oldalán válassza ki az alkalmazás nevét az Identitásszolgáltató területen.
Megnyílik az alkalmazásregisztrációs oldal. Ez a regisztráció automatikusan létre lett hozva a Microsoft Entra-szolgáltató hozzáadásakor.
A bal oldali navigációs menü Kezelés területén válassza az API-engedélyeket.
Az API engedélyoldalán válassza az Engedély hozzáadása lehetőséget.
A Kérelem API engedélyeinek képernyőn válassza ki a szervezet által használt API-kat .
Írja be az Azure SQL Database-t a keresőmezőbe, és válassza ki az eredményt.
Az alkalmazás által igényelt engedélyek típusa csoportban válassza a Delegált engedélyek lehetőséget, majd jelölje be a user_impersonation melletti jelölőnégyzetet, majd válassza az Engedélyek hozzáadása lehetőséget.
A Microsoft Entra alkalmazásregisztrációja mostantól rendelkezik az SQL Database-hez való csatlakozáshoz szükséges engedélyekkel a bejelentkezett felhasználó megszemélyesítésével.
4. Konfigurálja az App Service-t, hogy egy használható hozzáférési token visszaadására képes legyen.
Ha úgy szeretné konfigurálni az alkalmazást, hogy használható hozzáférési jogkivonatot biztosítson az SQL Database-hez, hozzáadja https://database.windows.net/user_impersonationscope az alkalmazás Microsoft Entra-szolgáltatójához loginParameters. Az alábbi parancs hozzáadja az loginParameters egyéni hatókörökkel rendelkező tulajdonságot a Microsoft Entra identitásszolgáltatói login beállításaihoz.
A kért hatókörök közül az App Service alapértelmezés szerint már kér openid, profileés email hatóköröket is. A offline_access hatókört tartalmazza a jogkivonatok frissítése. További információ: OpenID Connect-hatókörök.
A https://database.windows.net/user_impersonation hatókör az Azure SQL Database-ra hivatkozik, és egy JSON-webjogkivonatot (JWT) biztosít, amely az SQL Database-t adja meg a jogkivonat címzettjeként. Ez a parancs a Cloud Shellben már telepített JSON-feldolgozáshoz használható jq .
authSettings=$(az webapp auth show --resource-group <group-name> --name <app-name>)
authSettings=$(echo "$authSettings" | jq '.properties' | jq '.identityProviders.azureActiveDirectory.login += {"loginParameters":["scope=openid profile email offline_access https://database.windows.net/user_impersonation"]}')
az webapp auth set --resource-group <group-name> --name <app-name> --body "$authSettings"
Tipp
Ha a szükséges hatókört az Azure CLI helyett egy webes felületen szeretné konfigurálni, használja a Microsoft Entra-szolgáltató konfigurálása frissítési jogkivonatok megadására a kért hatókörökhöz való hozzáadásához https://database.windows.net/user_impersonation .
Az alkalmazás most már úgy van konfigurálva, hogy létrehoz egy olyan hozzáférési jogkivonatot, amelyet az SQL Database elfogad.
Feljegyzés
A hozzáférési jogkivonatok egy idő után lejárnak. A hozzáférési jogkivonatok frissítéséről a felhasználók ismételt hitelesítésének megkövetelése nélkül, a hitelesítési jogkivonatok frissítése című témakörben olvashat.
5. A hozzáférési jogkivonat használata az alkalmazáskódban
Frissítse az alkalmazáskódot, hogy hozzáadja az App Service-hitelesítés által biztosított hozzáférési jogkivonatot a kapcsolati objektumhoz.
Feljegyzés
Ez a kód helyileg nem működik. A helyi hibakereséssel kapcsolatos további információkért és alternatívákért tekintse meg az App Service-hitelesítés használatakor a helyi hibakeresést ismertető témakört.
DbContextA DatabaseContext.cs vagy az adatbázis-környezetet konfiguráló más fájlban lévő objektumban módosítsa az alapértelmezett konstruktort, hogy hozzáadja a Microsoft Entra-azonosító hozzáférési jogkivonatát a kapcsolati objektumhoz.public MyDatabaseContext (DbContextOptions<MyDatabaseContext> options, IHttpContextAccessor accessor) : base(options) { var conn = Database.GetDbConnection() as SqlConnection; conn.AccessToken = accessor.HttpContext.Request.Headers["X-MS-TOKEN-AAD-ACCESS-TOKEN"]; }Ha az App Service-ben olyan kapcsolati sztring van meghívva
defaultConnection, amely sql-hitelesítést használ felhasználónévvel és jelszóval, a következő paranccsal távolítsa el a kapcsolati titkos kulcsokat. Cserélje le<group-name>a ,<app-name>,<db-server-name>és<db-name>az értékeket.az webapp config connection-string set --resource-group <group-name> --name <app-name> --connection-string-type SQLAzure --settings defaultConnection="server=tcp:<db-server-name>.database.windows.net;database=<db-name>;"
6. A módosítások közzététele
Ha a Visual Studio Code-ot használta a böngészőben a kódmódosításokhoz a GitHub-elágaztatásban, válassza a forrásvezérlőt a bal oldali menüből. Adjon meg egy véglegesítési üzenetet, és OBO connect válassza a Véglegesítés lehetőséget.
A véglegesítés elindít egy GitHub Actions-üzembe helyezést az App Service-ben. Várjon néhány percet, amíg az üzembe helyezés befejeződik.
A Git Bashben a következő parancsokkal is közzéteheti a módosításokat:
git commit -am "configure managed identity"
git push azure main
Ha a kód a Visual Studióban található:
Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
A Közzététel lapon válassza a Közzététel lehetőséget.
Amikor az új alkalmazásoldal megjeleníti az alkalmazást, az alkalmazás a bejelentkezett Microsoft Entra-felhasználó nevében csatlakozik az Azure SQL-adatbázishoz. Az alkalmazást a szokásos módon használhatja és szerkesztheti.
7. Erőforrások törlése
Az előző lépésekben Azure-erőforrásokat hozott létre egy erőforráscsoportban. Ha már nincs szüksége ezekre az erőforrásokra, törölje az erőforráscsoportot az alábbi parancs futtatásával:
az group delete --name <group-name>
A parancs futtatása eltarthat egy ideig.
Gyakori kérdések
- Miért jelenik meg a "Bejelentkezési hiba a felhasználó< "jogkivonattal azonosított tag>" hibaüzenete?
- Hogyan hozzáadni más Microsoft Entra-felhasználókat vagy -csoportokat az Azure SQL Database-ben?
- Hogyan végezhetek helyi hibakeresést az App Service-hitelesítés használatakor?
- Mi történik a hozzáférési jogkivonatok lejáratakor?
Miért jelenik meg a "Bejelentkezési hiba a felhasználó< "jogkivonattal azonosított tag>" hibaüzenete?
A hibák leggyakoribb okai Login failed for user '<token-identified principal>' a következők:
- A Microsoft Entra-hitelesítés nincs konfigurálva az Azure SQL-adatbázishoz. Lásd: Adatbázis-kiszolgáló konfigurálása Microsoft Entra-hitelesítéssel.
- Nincs érvényes jogkivonat a
X-MS-TOKEN-AAD-ACCESS-TOKENkérelem fejlécében. Ez a kód helyi környezetben nem működik. További információkért és alternatívákért tekintse meg az App Service-hitelesítés használatakor a helyi hibakeresést ismertető témakört. - A felhasználónak nincs engedélye az adatbázishoz való csatlakozásra. Ha felhasználókat és engedélyeket szeretne hozzáadni, olvassa el a Microsoft Entra-felhasználók vagy -csoportok hozzáadása az Azure SQL Database-ben című témakört.
Hogyan hozzáadni más Microsoft Entra-felhasználókat vagy -csoportokat az Azure SQL Database-ben?
További felhasználók vagy csoportok hozzáadásához csatlakozzon az adatbázis-kiszolgálóhoz az sqlcmd vagy az SQL Server Management Studio (SSMS) használatával, és hozzon létre a Microsoft Entra-identitásokhoz hozzárendelt , tartalmazott adatbázis-felhasználókat .
Az alábbi Transact-SQL példa egy Microsoft Entra-identitást ad hozzá az SQL Serverhez, és adatbázis-szerepköröket ad az identitásnak:
CREATE USER [<user-or-group-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<user-or-group-name>];
ALTER ROLE db_datawriter ADD MEMBER [<user-or-group-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<user-or-group-name>];
GO
Hogyan végezhetek helyi hibakeresést az App Service-hitelesítés használatakor?
Mivel az App Service-hitelesítés egy Azure-szolgáltatás, az oktatóanyagban szereplő kód nem működik a helyi környezetben. Az Azure-ban futó alkalmazásokkal ellentétben a helyi kód nem használja ki az App Service hitelesítési köztes szoftverét. A helyi hibakereséshez az alábbi alternatívákat használhatja:
- Csatlakozzon az SQL Database-hez a helyi környezetből hitelesítéssel
Active Directory Interactive. Ez a hitelesítési folyamat nem magát a felhasználót jelentkezteti be, hanem a bejelentkezett felhasználóval csatlakozik a háttéradatbázishoz, hogy helyileg tesztelhesse az adatbázis-engedélyezést. - Másolja manuálisan a hozzáférési jogkivonatot a kódba a
X-MS-TOKEN-AAD-ACCESS-TOKENkérés fejléce helyett. - Ha a Visual Studióból telepíti az alkalmazást, használja az App Service-alkalmazás távoli hibakeresését.
Mi történik a hozzáférési jogkivonatok lejáratakor?
A hozzáférési jogkivonatok bizonyos idő elteltével lejárnak. A hozzáférési jogkivonatok frissítéséről a felhasználók újbóli hitelesítésének megkövetelése nélkül az identitásszolgáltatói jogkivonatok frissítése című témakörben olvashat.
Kapcsolódó tartalom
- 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: A Microsoft Graph elérése biztonságos .NET-alkalmazásból alkalmazásként
- Oktatóanyag: Háttérbeli kommunikáció elkülönítése a virtuális hálózat integrációjával
- Meglévő egyéni DNS-név leképezése Azure-alkalmazás szolgáltatásra