Helyi vagy megosztott hozzáférési kulcs hitelesítésének letiltása az Azure Service Bus használatával

Az Azure Service Bus-erőforrások kétféleképpen hitelesíthetők:

  • Microsoft Entra ID
  • Közös hozzáférésű jogosultságkódok (SAS)

A Microsoft Entra ID kiváló biztonságot és egyszerű használatot biztosít a közös hozzáférésű jogosultságkódokkal (SAS) szemben. A Microsoft Entra ID használatával nem kell tokeneket tárolnia a kódban, ami csökkenti a lehetséges biztonsági kockázatokat. Ha lehetséges, használja a Microsoft Entra ID-t az Azure Service Bus-alkalmazásokkal.

Ez a cikk azt ismerteti, hogyan tilthatja le az SAS-kulcsos hitelesítést (vagy a helyi hitelesítést), és hogyan használhat csak Microsoft Entra-azonosítót hitelesítéshez.

Miért érdemes letiltani a helyi hitelesítést?

A helyi (SAS-kulcs) hitelesítés letiltása számos módon erősíti a Service Bus-névtér biztonságát:

  • Megszünteti a statikus hitelesítő adatokat. Az SAS-kulcsok hosszú élettartamú megosztott titkos kulcsok. Ha egy kulcs kiszivárog, bárki, aki rendelkezik vele, hozzáférhet a névtérhez, amíg manuálisan nem forgatja el a kulcsot. A Microsoft Entra ID rövid élettartamú tokeneket használ, amelyek automatikusan frissülnek.
  • Lehetővé teszi a részletes hozzáférés-vezérlést. Az SAS-szabályzatok széles körű jogosultságokat (küldés, figyelés, kezelés) biztosítanak a névtér vagy az entitás szintjén. A Microsoft Entra szerepköralapú hozzáférés-vezérlés (RBAC) lehetővé teszi adott szerepkörök (Azure Service Bus Data Sender, , Azure Service Bus Data Receiver) hozzárendelését az egyes felhasználókhoz, Azure Service Bus Data Ownercsoportokhoz, szolgáltatásnevekhez vagy felügyelt identitásokhoz.
  • Audit naplót biztosít. A Microsoft Entra hitelesítési eseményei megjelennek a Microsoft Entra bejelentkezési naplóiban. Az SAS-kulcsok használata nem hoz létre összehasonlítható identitásszintű naplózási rekordokat.
  • Támogatja a feltételes hozzáférést. A Microsoft Entra ID használatával olyan szabályzatokat kényszeríthet ki, mint a többtényezős hitelesítés, a megbízható eszközkövetelmények és a helykorlátozások – amelyek egyike sem érhető el SAS-kulcsokkal.

Jótanács

A helyi hitelesítés letiltása előtt frissítse az összes alkalmazást a hitelesítéshez a Microsoft Entra ID használatával. Tekintse meg a cikk későbbi, migrálási lépéseit ismertető szakaszt.

A portál használata a helyi hitelesítés letiltásához

Ebben a szakaszban megtudhatja, hogyan tilthatja le a helyi hitelesítést az Azure Portal használatával.

  1. Nyissa meg Service Bus-névterét az Azure Portalon.

  2. Az Áttekintés lap Essentials szakaszában válassza az Engedélyezve a helyi hitelesítéshez lehetőséget.

    Képernyőkép egy Service Bus-névtér áttekintési oldaláról, amelyen engedélyezve van a helyi hitelesítés.

  3. A Helyi hitelesítés lapon válassza a Letiltva, majd az OK gombot.

    Képernyőkép a Helyi hitelesítés lapon a Letiltva lehetőség kiválasztásáról.

Helyi hitelesítés letiltása sablon használatával

A Service Bus-névtér helyi hitelesítésének letiltásához állítsa a tulajdonságot disableLocalAuth az alábbi sablonokban megadott true értékre.

@description('Name of the Service Bus namespace')
param namespaceName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: namespaceName
  location: location
  sku: {
    name: 'Standard'
    tier: 'Standard'
  }
  properties: {
    disableLocalAuth: true
  }
}

Helyi hitelesítés letiltása az Azure CLI vagy a PowerShell használatával

A helyi hitelesítést egy meglévő névtér parancssori eszközeivel is letilthatja.

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth true

A helyi hitelesítés ismételt engedélyezése:

az servicebus namespace update \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --disable-local-auth false

Az aktuális állapotot a disableLocalAuth tulajdonság ellenőrzésével igazolhatja.

az servicebus namespace show \
    --resource-group <resource-group-name> \
    --name <namespace-name> \
    --query disableLocalAuth

Kényszerítés az Azure Policy használatával

Bérlőszintű vagy előfizetés-szintű kényszerítés esetén a beépített Azure Policy Service Bus-névtereknek le kell tiltani a helyi hitelesítési módszereket (szabályzatazonosító: cfb11c26-f069-4c14-8e36-56c394dae5af).

Ez a szabályzat kiértékeli a Service Bus-névtereket, és megjelöli azokat, amelyek disableLocalAuth be van állítva false vagy nincs beállítva. Hozzárendelheti a felügyeleti csoport, az előfizetés vagy az erőforráscsoport szintjén.

Szabályzateffektusok

A szabályzat hozzárendelésekor válasszon ki egy, a kényszerítési igényeknek megfelelő effektust:

Hatás Magatartás
Ellenőrzés (alapértelmezett) A meglévő, helyi hitelesítéssel rendelkező névterek nem megfelelőként jelennek meg a megfelelőségi irányítópulton. Az új névterek továbbra is engedélyezettek.
Megtagadás Megakadályozza a helyi hitelesítéssel rendelkező névterek létrehozását vagy frissítését. Ezzel az effektussal kényszerítheti ki az új erőforrások megfelelőségét.

Szabályzat hozzárendelése

  1. Az Azure Portalon lépjen aSzabályzatdefiníciók> elemre.
  2. A Service Bus-névterek keresésének le kell tiltani a helyi hitelesítési módszereket.
  3. Válassza ki a szabályzatdefiníciót, majd válassza a Hozzárendelés lehetőséget.
  4. Válassza ki a hatókört (felügyeleti csoport, előfizetés vagy erőforráscsoport).
  5. A Paraméterek lapon válassza ki a kívánt effektust (Naplózás vagy Elutasítás).
  6. Válassza a Véleményezés + létrehozás, majd a Létrehozás lehetőséget.

A hozzárendelés után a nem megfelelő névterek megjelennek aszabályzatmegfelelésben>. Létrehozhat egy szervizelési feladatot a frissíteni kívánt névterekhez.

Képernyőkép az Azure-szabályzatról a helyi hitelesítés letiltásához.

Migrálás SAS-ről Microsoft Entra-azonosítóra

A helyi hitelesítés letiltása előtt frissítse a Service Bus-névtérhez csatlakozó összes alkalmazást, hogy kapcsolati sztringek vagy SAS-jogkivonatok helyett Microsoft Entra-azonosítót használjon. Kövesse az alábbi lépéseket:

1. lépés: RBAC-szerepkörök hozzárendelése

Rendelje hozzá a megfelelő Azure Service Bus-adatszerepkört minden olyan identitáshoz (felhasználóhoz, szolgáltatásnévhez vagy felügyelt identitáshoz), amelyhez hozzáférés szükséges:

Role Engedély
Azure Service Bus Data Sender Üzenetek küldése üzenetsorokra és témakörökre
Azure Service Bus Data Receiver Üzenetek fogadása üzenetsorokból és előfizetésekből
Azure Service Bus Data Owner Teljes hozzáférés (entitások küldése, fogadása, kezelése)

Szerepköröket az Azure Portalon, az Azure CLI-vel vagy az Azure PowerShell-lel rendelhet hozzá. Részletes útmutatásért lásd: Azure-szerepkörök hozzárendelése az Azure Portal használatával.

2. lépés: Alkalmazáskód frissítése

Cserélje le a kapcsolati sztring alapú hitelesítést az Azure Identity könyvtárból származó DefaultAzureCredential (vagy egy másik Microsoft Entra hitelesítő adat) használatával. Az alábbi példák az egyes nyelvek változását mutatják be:

// Before (connection string):
await using ServiceBusClient client = new("<connection-string>");

// After (Microsoft Entra ID):
await using ServiceBusClient client = new(
    "<your-namespace>.servicebus.windows.net",
    new DefaultAzureCredential());

További részletek az egyes SDK-król:

3. lépés: Tesztelés mindkét engedélyezett hitelesítési módszerrel

Telepítse a frissített alkalmazást, amíg a helyi hitelesítés továbbra is engedélyezve van. Ellenőrizze a következőket:

  • Sikeresen küldhet és fogadhat üzeneteket.
  • Az alkalmazásnaplók a Microsoft Entra token beszerzést mutatják (nem SAS).
  • A hitelesítéssel kapcsolatos hibák nem jelennek meg.

4. lépés: A helyi hitelesítés letiltása

Miután megerősítette, hogy minden alkalmazás együttműködik a Microsoft Entra-azonosítóval, tiltsa le a helyi hitelesítést a jelen cikkben korábban ismertetett módszerek (portál, parancssori felület, PowerShell vagy sablon) használatával.

5. lépés: SAS-szabályzatok törlése (nem kötelező)

A helyi hitelesítés letiltása után a névtér meglévő SAS-szabályzatai megmaradnak, de nem használhatók funkcionális jogkivonatok létrehozására. A helyén hagyhatja őket, vagy eltávolíthatja őket egy tisztább konfiguráció érdekében. A nem használt szabályzatok eltávolítása csökkenti a támadási felületet, ha valaki véletlenül újra engedélyezi a helyi hitelesítést.

A Microsoft Entra-azonosítóról és az SAS-hitelesítésről az alábbi cikkekben olvashat: