Megosztás a következőn keresztül:


Jelszó nélküli kapcsolatok az Azure-szolgáltatásokhoz

Megjegyzés:

A jelszó nélküli kapcsolatok egy nyelvfüggetlen funkció, amely több Azure-szolgáltatásra is kiterjed. Bár a jelenlegi dokumentáció néhány nyelvre és szolgáltatásra összpontosít, jelenleg további dokumentációt készítünk más nyelvekhez és szolgáltatásokhoz.

Ez a cikk a jelszavakkal kapcsolatos biztonsági kihívásokat ismerteti, és bemutatja az Azure-szolgáltatások jelszó nélküli kapcsolatait.

Jelszavakkal és titkos kódokkal kapcsolatos biztonsági kihívások

A jelszavakat és a titkos kulcsokat körültekintően kell használni, és a fejlesztők soha nem helyezhetik el őket nem biztonságos helyre. Számos alkalmazás csatlakozik a háttéradatbázishoz, a gyorsítótárhoz, az üzenetkezeléshez és az eseménykezelési szolgáltatásokhoz felhasználónevek, jelszavak és hozzáférési kulcsok használatával. Ha nyilvánosságra kerülnek, ezek a hitelesítő adatok arra használhatók, hogy jogosulatlanul hozzáférjenek a bizalmas információkhoz, például egy közelgő kampányhoz létrehozott értékesítési katalógushoz, vagy az ügyféladatokhoz, amelyeknek privátnak kell lenniük.

A jelszavak alkalmazásokba való beágyazása számos okból óriási biztonsági kockázatot jelent, beleértve a kódtárakon keresztüli felderítést is. Sok fejlesztő környezeti változók használatával külsőleg külsőre helyezi az ilyen jelszavakat, hogy az alkalmazások különböző környezetekből tölthesse be őket. Ez azonban csak a kockázatot a kódról egy végrehajtási környezetre helyezi át. Bárki, aki hozzáfér a környezethez, ellophatja a jelszavakat, ami viszont növeli az adatkiszivárgás kockázatát.

Az alábbi példakód bemutatja, hogyan csatlakozhat az Azure Storage-hoz egy tárfiók kulcsával. Sok fejlesztő vonzódik ehhez a megoldáshoz, mert ismerősnek tűnik a korábban használt lehetőségekhez, még akkor is, ha ez nem ideális megoldás. Ha az alkalmazás jelenleg hozzáférési kulcsokat használ, fontolja meg a jelszó nélküli kapcsolatokra való áttelepítést.

// Connection using secret access keys
BlobServiceClient blobServiceClient = new(
    new Uri("https://<storage-account-name>.blob.core.windows.net"),
    new StorageSharedKeyCredential("<storage-account-name>", "<your-access-key>"));

A fejlesztőknek szorgalmasnak kell lenniük, hogy soha ne tegyék közzé az ilyen típusú kulcsokat vagy titkos kulcsokat nem biztonságos helyen. Számos vállalat szigorú biztonsági követelményeket támaszt az Azure-szolgáltatásokhoz való csatlakozáshoz anélkül, hogy jelszavakat tenne elérhetővé a fejlesztők, üzemeltetők vagy bárki más számára. Gyakran használnak tárolót jelszavak tárolására és betöltésére az alkalmazásokba, és tovább csökkentik a kockázatot a jelszórotációs követelmények és eljárások hozzáadásával. Ez a megközelítés viszont növeli a működés összetettségét, és időnként alkalmazáskapcsolati kimaradáshoz vezet.

Jelszó nélküli kapcsolatok és Teljes felügyelet

Mostantól jelszó nélküli kapcsolatokkal csatlakozhat az Azure-alapú szolgáltatásokhoz anélkül, hogy el kellene forgatnia a jelszavakat. Bizonyos esetekben csak konfigurálásra van szükség – nincs szükség új kódra. A Teljes felügyelet a "soha ne bízzon, mindig ellenőrizze és hitelesítő adatok nélkül" elvet használja. Ez azt jelenti, hogy minden kommunikációt csak az identitás ellenőrzése után és a háttérszolgáltatásokhoz való hozzáférés engedélyezése előtt biztosítunk a gépek vagy felhasználók megbízhatóságával.

A biztonságos, jelszó nélküli kapcsolatok ajánlott hitelesítési lehetősége a felügyelt identitások és az Azure szerepköralapú hozzáférés-vezérlés (RBAC) együttes használata. Ezzel a megközelítéssel nem kell manuálisan nyomon követnie és kezelnie a felügyelt identitások számos különböző titkos kulcsát, mivel ezeket a feladatokat az Azure biztonságosan kezeli belsőleg.

A Service Connector használatával jelszó nélküli kapcsolatokat konfigurálhat az Azure-szolgáltatásokhoz, vagy manuálisan is konfigurálhatja őket. A Service Connector lehetővé teszi a felügyelt identitásokat az olyan alkalmazás-üzemeltetési szolgáltatásokban, mint az Azure Spring Apps, az Azure App Service és az Azure Container Apps. Service Connector jelszó nélküli kapcsolatokkal konfigurálja a háttérszolgáltatásokat felügyelt identitások és Azure RBAC használatával, és hidratálja az alkalmazásokat a szükséges kapcsolati információkkal.

Ha megvizsgálja egy jelszó nélküli kapcsolatokhoz konfigurált alkalmazás futó környezetét, láthatja a teljes kapcsolati sztringet. A kapcsolati sztring például egy adatbázis-kiszolgáló címét, egy adatbázisnevet és egy utasítást tartalmaz a hitelesítés delegálására egy Azure-hitelesítési beépülő modulba, de nem tartalmaz jelszavakat vagy titkos kulcsokat.

Az alábbi videó az alkalmazások és az Azure-szolgáltatások közötti jelszó nélküli kapcsolatokat mutatja be példaként Java-alkalmazások használatával. Hasonló lefedettség várható más nyelvekre is.


A DefaultAzureCredential bemutatása

Az Azure-szolgáltatásokhoz a Microsoft Entra ID és a szerepköralapú hozzáférés-vezérlés (RBAC) használatával jelszó nélküli kapcsolatok valósíthatók DefaultAzureCredential meg az Azure Identity ügyfélkódtárakból.

Fontos

Egyes nyelveknek explicit módon kell implementálniuk DefaultAzureCredential a kódjukat, míg mások belsőleg használnak DefaultAzureCredential mögöttes beépülő modulokat vagy illesztőprogramokat.

DefaultAzureCredential több hitelesítési módszert támogat, és automatikusan meghatározza, hogy melyiket kell használni futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (helyi fejlesztés és éles környezet) környezetspecifikus kód implementálása nélkül.

A hitelesítő adatok keresésének sorrendje és helye DefaultAzureCredential nyelvenként eltérő:

Ha például helyileg dolgozik a .NET-en, általában azzal a fiókkal hitelesíti magát, DefaultAzureCredential amellyel a fejlesztő bejelentkezett a Visual Studióba, az Azure CLI-be vagy az Azure PowerShellbe. Amikor az alkalmazás üzembe van helyezve az Azure-ban, DefaultAzureCredential automatikusan felderíti és használja a társított üzemeltetési szolgáltatás felügyelt identitását, például Azure-alkalmazás szolgáltatást. Ehhez az átmenethez nincs szükség kódmódosításra.

Megjegyzés:

A felügyelt identitás biztonsági identitást biztosít egy alkalmazás vagy szolgáltatás megjelenítéséhez. Az identitást az Azure platform kezeli, és nem igényli a titkos kulcsok kiépítését vagy elforgatását. A felügyelt identitásokról a áttekintési dokumentációjában olvashat bővebben.

Az alábbi példakód bemutatja, hogyan csatlakozhat a Service Bushoz jelszó nélküli kapcsolatok használatával. Más dokumentáció részletesebben ismerteti, hogyan lehet áttérni erre a beállításra egy adott szolgáltatáshoz. NET-alkalmazások átadhatnak egy példányt DefaultAzureCredential egy szolgáltatás ügyfélosztályának konstruktorának. DefaultAzureCredential automatikusan felderíti az adott környezetben elérhető hitelesítő adatokat.

ServiceBusClient serviceBusClient = new(
    new Uri("https://<your-service-bus-namespace>.blob.core.windows.net"),
    new DefaultAzureCredential());

Lásd még

A jelszó nélküli kapcsolatok részletesebb magyarázatát a Jelszó nélküli kapcsolatok konfigurálása több Azure-alkalmazás és -szolgáltatás között című fejlesztői útmutatóban találja.