Node.js-alkalmazás migrálása jelszó nélküli kapcsolatok használatára az Azure SQL Database-lel
A következőre vonatkozik: Azure SQL Database
Az Azure SQL Database-be irányuló alkalmazáskéréseket hitelesíteni kell. Bár az Azure SQL Database-hez való hitelesítésnek több lehetősége is van, lehetőség szerint fontossági sorrendbe kell helyeznie a jelszó nélküli kapcsolatokat az alkalmazásokban. A jelszavakat vagy titkos kulcsokat használó hagyományos hitelesítési módszerek biztonsági kockázatokat és bonyodalmakat okoznak. Látogasson el az Azure Services Hub jelszó nélküli kapcsolataira, és tudjon meg többet a jelszó nélküli kapcsolatokra való áttérés előnyeiről.
Az alábbi oktatóanyag bemutatja, hogyan migrálhat egy meglévő Node.js-alkalmazást, hogy felhasználónév és jelszó helyett jelszó nélküli kapcsolatokat használjon az Azure SQL Database-hez való csatlakozáshoz.
Az Azure SQL Database konfigurálása
A jelszó nélküli kapcsolatok Microsoft Entra-hitelesítéssel csatlakoznak az Azure-szolgáltatásokhoz, beleértve az Azure SQL Database-t is. A Microsoft Entra-hitelesítéssel központi helyen kezelheti az identitásokat az engedélykezelés egyszerűsítése érdekében. További információ a Microsoft Entra-hitelesítés Azure SQL Database-hez való konfigurálásáról:
Ebben a migrálási útmutatóban győződjön meg arról, hogy rendelkezik egy Microsoft Entra-rendszergazdával az Azure SQL Database-hez.
Lépjen a logikai kiszolgáló Microsoft Entra oldalára.
Válassza a Rendszergazda beállítása lehetőséget a Microsoft Entra ID úszó menü megnyitásához.
A Microsoft Entra ID úszó menüjében keresse meg a rendszergazdaként hozzárendelni kívánt felhasználót.
Válassza ki a felhasználót, és válassza a Kiválasztás lehetőséget.
A helyi fejlesztési környezet konfigurálása
A jelszó nélküli kapcsolatok úgy konfigurálhatók, hogy helyi és Azure-beli környezetekben is működjenek. Ebben a szakaszban konfigurációkat alkalmaz, amelyek lehetővé teszik az egyes felhasználók számára, hogy helyi fejlesztés céljából hitelesítsék magukat az Azure SQL Database-ben.
Bejelentkezés az Azure-ba
A helyi fejlesztéshez győződjön meg arról, hogy ugyanazzal az Azure AD-fiókkal jelentkezett be, amellyel hozzá szeretne férni az Azure SQL Database-hez. A hitelesítést olyan népszerű fejlesztői eszközökkel végezheti el, mint az Azure CLI vagy az Azure PowerShell. A hitelesítéshez használható fejlesztői eszközök különböző nyelveken eltérőek lehetnek.
Jelentkezzen be az Azure-ba az Azure CLI-vel a következő paranccsal:
az login
Adatbázis-felhasználó létrehozása és szerepkörök hozzárendelése
Hozzon létre egy felhasználót az Azure SQL Database-ben. A felhasználónak meg kell felelnie annak az Azure-fióknak, amelyet a helyi bejelentkezéshez használt az Azure-ba való bejelentkezéshez.
Az Azure Portalon keresse meg az SQL-adatbázist, és válassza a Lekérdezésszerkesztő (előzetes verzió) lehetőséget.
Válassza a Folytatás lehetőséget
<your-username>
a képernyő jobb oldalán az adatbázisba való bejelentkezéshez a fiókjával.A lekérdezésszerkesztő nézetben futtassa a következő T-SQL-parancsokat:
CREATE USER [user@domain] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user@domain]; ALTER ROLE db_datawriter ADD MEMBER [user@domain]; ALTER ROLE db_ddladmin ADD MEMBER [user@domain]; GO
A parancsok futtatása az SQL DB közreműködői szerepkörét rendeli hozzá a megadott fiókhoz. Ez a szerepkör lehetővé teszi az identitás számára az adatbázis adatainak és sémájának olvasását, írását és módosítását. A hozzárendelt szerepkörökről további információt a Rögzített adatbázis szerepkörök című témakörben talál.
A helyi kapcsolat konfigurációjának frissítése
Hozzon létre környezeti beállításokat az alkalmazáshoz.
AZURE_SQL_SERVER=<YOURSERVERNAME>.database.windows.net AZURE_SQL_DATABASE=<YOURDATABASENAME> AZURE_SQL_PORT=1433
A Node.js SQL Driver használatával az Azure SQL Database-hez csatlakozó meglévő alkalmazáskód – a tedious továbbra is használ jelszó nélküli kapcsolatokat kisebb módosításokkal. A felhasználó által hozzárendelt felügyelt identitás használatához adja át a tulajdonságokat és
options.clientId
aauthentication.type
tulajdonságokat.import sql from 'mssql'; // Environment settings - no user or password const server = process.env.AZURE_SQL_SERVER; const database = process.env.AZURE_SQL_DATABASE; const port = parseInt(process.env.AZURE_SQL_PORT); // Passwordless configuration const config = { server, port, database, authentication: { type: 'azure-active-directory-default', }, options: { encrypt: true, clientId: process.env.AZURE_CLIENT_ID // <----- user-assigned managed identity } }; // Existing applicaton code export default class Database { config = {}; poolconnection = null; connected = false; constructor(config) { this.config = config; console.log(`Database: config: ${JSON.stringify(config)}`); } async connect() { try { console.log(`Database connecting...${this.connected}`); if (this.connected === false) { this.poolconnection = await sql.connect(this.config); this.connected = true; console.log('Database connection successful'); } else { console.log('Database already connected'); } } catch (error) { console.error(`Error connecting to database: ${JSON.stringify(error)}`); } } async disconnect() { try { this.poolconnection.close(); console.log('Database connection closed'); } catch (error) { console.error(`Error closing database connection: ${error}`); } } async executeQuery(query) { await this.connect(); const request = this.poolconnection.request(); const result = await request.query(query); return result.rowsAffected[0]; } } const databaseClient = new Database(config); const result = await databaseClient.executeQuery(`select * from mytable where id = 10`);
A
AZURE_CLIENT_ID
környezeti változó az oktatóanyag későbbi részében jön létre.
Az alkalmazás tesztelése
Futtassa az alkalmazást helyileg, és ellenőrizze, hogy az Azure SQL Database-hez való kapcsolatok a várt módon működnek-e. Ne feledje, hogy az Azure-felhasználók és szerepkörök módosításainak az Azure-környezetben való propagálása több percet is igénybe vehet. Az alkalmazás mostantól úgy van konfigurálva, hogy helyileg fusson anélkül, hogy a fejlesztőknek titkos kulcsokat kellene kezelnie az alkalmazásban.
Az Azure-beli üzemeltetési környezet konfigurálása
Miután az alkalmazás konfigurálva lett a jelszó nélküli kapcsolatok helyi használatára, ugyanaz a kód hitelesíthető az Azure SQL Database-ben az Azure-ban való üzembe helyezés után. Az alábbi szakaszok bemutatják, hogyan konfigurálhat egy üzembe helyezett alkalmazást az Azure SQL Database-hez felügyelt identitással való csatlakozáshoz. A felügyelt identitások automatikusan felügyelt identitást biztosítanak a Microsoft Entra-azonosítóban (korábbi nevén Azure Active Directory) az alkalmazások számára a Microsoft Entra-hitelesítést támogató erőforrásokhoz való csatlakozáshoz. További információ a felügyelt identitásokról:
- Jelszó nélküli áttekintés
- Ajánlott felügyelt identitáskezelési eljárások
- Felügyelt identitások az Azure SQL-hez készült Microsoft Entra-ban
A felügyelt identitás létrehozása
Hozzon létre egy felhasználó által hozzárendelt felügyelt identitást az Azure Portal vagy az Azure CLI használatával. Az alkalmazás az identitás használatával hitelesíti magát más szolgáltatásokban.
- Az Azure Portal tetején keressen felügyelt identitásokat. Válassza ki a felügyelt identitások eredményét.
- Válassza a +Létrehozás lehetőséget a Felügyelt identitások áttekintő oldal tetején.
- Az Alapok lapon adja meg a következő értékeket:
- Előfizetés: Válassza ki a kívánt előfizetést.
- Erőforráscsoport: Válassza ki a kívánt erőforráscsoportot.
- Régió: Válasszon ki egy régiót a tartózkodási helyéhez közel.
- Név: Adjon meg egy felismerhető nevet az identitásának, például a MigrationIdentity nevet.
- Válassza a Véleményezés + létrehozás lehetőséget a lap alján.
- Amikor az ellenőrzés befejeződött, válassza a Létrehozás lehetőséget. Az Azure létrehoz egy új, felhasználó által hozzárendelt identitást.
Az erőforrás létrehozása után válassza az Ugrás az erőforrásra lehetőséget a felügyelt identitás részleteinek megtekintéséhez.
Felügyelt identitás társítása a webalkalmazással
Konfigurálja a webalkalmazást a létrehozott felhasználó által hozzárendelt felügyelt identitás használatára.
Hajtsa végre az alábbi lépéseket az Azure Portalon a felhasználó által hozzárendelt felügyelt identitás alkalmazáshoz való társításához. Ugyanezek a lépések a következő Azure-szolgáltatásokra vonatkoznak:
- Azure Spring Apps
- Azure Container-alkalmazások
- Azure-beli virtuális gépek
- Azure Kubernetes Service
- Lépjen a webalkalmazás áttekintő oldalára.
Válassza az Identitás lehetőséget a bal oldali navigációs sávon.
Az Identitás lapon váltson a Felhasználó által hozzárendelt lapra.
Válassza a + Hozzáadás lehetőséget a Felhasználó által hozzárendelt felügyelt identitás hozzáadása úszó panel megnyitásához.
Válassza ki az identitás létrehozásához korábban használt előfizetést.
Keresse meg a MigrationIdentity nevet, és válassza ki a keresési eredmények közül.
A Hozzáadás gombra kattintva társíthatja az identitást az alkalmazással.
Adatbázis-felhasználó létrehozása az identitáshoz és szerepkörök hozzárendelése
Hozzon létre egy SQL-adatbázis-felhasználót, amely visszaképzhető a felhasználó által hozzárendelt felügyelt identitásra. Rendelje hozzá a szükséges SQL-szerepköröket a felhasználóhoz, hogy lehetővé tegye az alkalmazás számára az adatbázis adatainak és sémájának olvasását, írását és módosítását.
Az Azure Portalon keresse meg az SQL-adatbázist, és válassza a Lekérdezésszerkesztő (előzetes verzió) lehetőséget.
Válassza a Folytatás lehetőséget
<username>
a képernyő jobb oldalán az adatbázisba való bejelentkezéshez a fiókjával.A lekérdezésszerkesztő nézetben futtassa a következő T-SQL-parancsokat:
CREATE USER [user-assigned-identity-name] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_datawriter ADD MEMBER [user-assigned-identity-name]; ALTER ROLE db_ddladmin ADD MEMBER [user-assigned-identity-name]; GO
A parancsok futtatása az SQL DB közreműködői szerepkörét rendeli hozzá a felhasználó által hozzárendelt felügyelt identitáshoz. Ez a szerepkör lehetővé teszi az identitás számára az adatbázis adatainak és sémájának olvasását, írását és módosítását.
Fontos
Körültekintően rendeljen hozzá adatbázis-felhasználói szerepköröket vállalati éles környezetekben. Ezekben az esetekben az alkalmazás nem végezhet el minden műveletet egyetlen emelt szintű identitás használatával. Próbálja meg implementálni a minimális jogosultság elvét úgy, hogy több identitást konfigurál meghatározott engedélyekkel adott feladatokhoz.
Az adatbázis-szerepkörök és a biztonság konfigurálásáról az alábbi forrásokban olvashat bővebben:
Alkalmazásbeállítás létrehozása a felügyelt identitás ügyfélazonosítója számára
A felhasználó által hozzárendelt felügyelt identitás használatához hozzon létre egy környezeti változót AZURE_CLIENT_ID
, és állítsa be a felügyelt identitás ügyfélazonosítójával egyenlőre. Ezt a változót az alkalmazás Konfiguráció szakaszában állíthatja be az Azure Portalon. Az ügyfél-azonosítót a felügyelt identitás erőforrásának Áttekintés szakaszában találja az Azure Portalon.
Mentse a módosításokat, és indítsa újra az alkalmazást, ha nem teszi meg automatikusan.
Ha rendszer által hozzárendelt felügyelt identitást kell használnia, hagyja ki a tulajdonságotoptions.clientId
. Továbbra is át kell adnia a tulajdonságot authentication.type
.
const config = {
server,
port,
database,
authentication: {
type: 'azure-active-directory-default'
},
options: {
encrypt: true
}
};
Az alkalmazás tesztelése
Tesztelje az alkalmazást, és győződjön meg arról, hogy minden működik. Eltarthat néhány percig, amíg az összes módosítás propagálása az Azure-környezetben történik.
További lépések
Ebben az oktatóanyagban megtanulta, hogyan migrálhat egy alkalmazást jelszó nélküli kapcsolatokba.
A cikkben tárgyalt fogalmak részletesebb megismeréséhez olvassa el az alábbi forrásokat: