Felügyelt identitások használata Azure Service Bus erőforrások eléréséhez

Az Azure-erőforrások felügyelt identitásai lehetővé teszik az alkalmazás hitelesítését Azure Service Bus anélkül, hogy hitelesítő adatokat tárol a kódban. Azure automatikusan kezeli az identitást és annak hitelesítő adatait.

A hitelesítő adatok kódban való tárolása biztonsági kockázatokat és karbantartási többletterhelést okoz. A felügyelt identitások kiküszöbölik ezeket a problémákat azáltal, hogy automatikus hitelesítőadat-kezelést biztosítanak Microsoft Entra ID keresztül.

Ez a cikk bemutatja, hogyan konfigurálhatja a felügyelt identitáshitelesítést Service Bus, hogy az alkalmazás biztonságosan küldjön és fogadhassa az üzeneteket merevlemezes hitelesítő adatok nélkül.

Előfeltételek

Ha felügyelt identitásokat szeretne használni az Azure Service Busban, a következőkre van szüksége:

A Service Bus-névtér helyi vagy közös hozzáférésű jogosultságkódjának (SAS) kulcshitelesítését letilthatja, és csak a Microsoft Entra-hitelesítést engedélyezheti. Részletes útmutatásért tekintse meg a helyi hitelesítés letiltása című témakört.

Service Bus-szerepkör hozzárendelése a felügyelt identitáshoz

A Microsoft Entra az Azure szerepköralapú hozzáférés-vezérlésén (RBAC) keresztül engedélyezi a védett erőforrásokhoz való hozzáférést. Az Azure Service Bus beépített Azure-szerepköröket biztosít, amelyek a Service Bus-entitásokhoz való hozzáféréshez szükséges általános engedélyeket foglalják magukban. Egyéni szerepköröket is definiálhat.

Az alábbi táblázat a Service Bus-névtérhez való hozzáférés engedélyezésére szolgáló beépített Azure-szerepköröket sorolja fel:

Szerep Leírás
Azure Service Bus-adattulajdonos Teljes hozzáférés a Service Bus-névtérhez és annak entitásaihoz (üzenetsorok, témakörök, előfizetések és szűrők)
Azure Service Bus-adatküldő Üzenetek küldése Service Bus-üzenetsorokra és -témakörökre
Azure Service Bus-adatátvevő Üzenetek fogadása Service Bus-üzenetsorokból és -előfizetésekből

A Service Bus RBAC hatókörszintek megértése

Azure-szerepkör hozzárendelése előtt határozza meg a felügyelt identitáshoz szükséges hozzáférési hatókört. Csak a lehető legszűkebb hatókör megadása.

Az alábbi lista azokat a szinteket ismerteti, amelyeken a Service Bus-erőforrásokhoz való hozzáférés hatóköre a legszűkebb hatókörrel kezdődik:

  • Üzenetsor-, témakör- vagy témakör-előfizetés: A szerepkör-hozzárendelés csak az adott üzenetkezelési entitásra vonatkozik.
  • Service Bus-névtér: A szerepkör-hozzárendelés a Service Bus teljes topológiájára kiterjed a névtér alatt.
  • Erőforráscsoport: A szerepkör-hozzárendelés az erőforráscsoport összes Service Bus-erőforrására vonatkozik.
  • Azure-előfizetés: A szerepkör-hozzárendelés a Azure-előfizetés összes erőforráscsoportjának összes Service Bus erőforrására vonatkozik.

Az Azure-szerepkör-hozzárendelések propagálása akár öt percet is igénybe vehet.

Szerepkör hozzárendelése felügyelt identitáshoz az Azure Portalon

  1. Lépjen a Service Bus-névtérre, az üzenetsorra vagy a témára.

  2. A bal oldali menüben válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. Válassza a Hozzáadás>Szerepkör-hozzárendelés hozzáadása lehetőséget.

  4. A Szerepkör lapon válassza ki a megfelelő Service Bus-adatszerepkört.

  5. A Tagok lapon válassza a Managed Identity > (Tagválasztás) lehetőséget.

  6. Válassza ki az Azure-erőforrás felügyelt identitását.

  7. Válassza a Véleményezés + hozzárendelés lehetőséget.

További információ: Azure-szerepkörök hozzárendelése az Azure Portal használatával.

Szerepkör hozzárendelése az Azure CLI használatával

Az Azure Portal nem támogatja a felügyelt identitások Service Bus-szerepkörökhöz való hozzárendelését a témakör előfizetési szintjén. Az Azure CLI az role assignment create parancsával bármilyen hatókörhöz hozzárendelhet szerepkört:

az role assignment create \
    --role $service_bus_role \
    --assignee $assignee_id \
    --scope /subscriptions/$subscription_id/resourceGroups/$resource_group/providers/Microsoft.ServiceBus/namespaces/$service_bus_namespace/topics/$service_bus_topic/subscriptions/$service_bus_subscription

A beépített szerepkörök definiálásáról további információt az Azure-szerepkördefiníciók ismertetése című témakörben talál. Az Egyéni Azure-szerepkörök létrehozásáról további információt az Azure-ra vonatkozó egyéni szerepkörökben talál.

Megjegyzés

Ha a forrásszolgáltatás vagy alkalmazás nem indul újra, miután eltávolította a felügyelt identitást a Service Bus RBAC-szerepkörből, előfordulhat, hogy a forrásalkalmazás a jogkivonat lejáratáig továbbra is üzeneteket küld vagy fogad a Service Bus-entitásba vagy onnan. (Az alapértelmezett jogkivonat érvényessége 24 óra.) Ez a viselkedés terv szerint történik.

Miután eltávolította a forrás felügyelt identitását az RBAC-szerepkörből, indítsa újra a forrásalkalmazást vagy szolgáltatást, hogy azonnal lejárjon a jogkivonat, és megakadályozza, hogy üzeneteket küldjön vagy fogadjon a Service Bus-entitásból.

Csatlakozás a Service Bushoz felügyelt identitás használatával az Azure SDK-kban

A .NET-hez, Java-hoz, JavaScripthez és Pythonhoz készült Azure SDK-k támogatják a felügyelt identitáshitelesítést a Service Bus használatával. Az alábbi példa bemutatja, hogyan csatlakozhat a .NET SDK használatával.

A .NET-ben a ServiceBusClient objektum inicializálása egy konstruktor használatával történik, amely teljes névteret és jogkivonat-hitelesítő adatokat (TokenCredential) használ. DefaultAzureCredential ered TokenCredential-ből, az automatán alkalmazáshoz konfigurált felügyelt identitást használva. A jogkivonat hitelesítő adatai automatikusan kezelik a felügyelt identitás környezetének a Service Busba való áramlását és az engedélyezési kézfogást. Ez egy egyszerűbb modell, mint egy SAS használata.

var client = new ServiceBusClient("contoso.servicebus.windows.net", new DefaultAzureCredential());

Üzenetek küldése és fogadása a szokásos módon a ServiceBusSender és a ServiceBusReceiver vagy a ServiceBusProcessor használatával.

Ha részletes útmutatást szeretne kapni az üzenetek felügyelt identitással történő küldéséhez és fogadásához, tekintse meg az alábbi rövid útmutatókat. Ezek a gyors kezdési útmutatók kódot tartalmaznak, amely egy szolgáltatási főfelhasználó segítségével küld és fogad üzeneteket, de ugyanaz a kód használható felügyelt identitáshoz is.

Megjegyzés

A felügyelt identitások csak az Azure-környezetben, az Azure App Service-ben, az Azure-beli virtuális gépeken és a méretezési csoportokban működnek. .NET alkalmazások esetében a Microsoft.Azure.Services.AppAuthentication kódtár (amelyet a Service Bus NuGet-csomag használ) absztrakciót biztosít a protokollhoz, és támogatja a helyi fejlesztést. A kódot helyileg tesztelheti a felhasználói fiókjával Visual Studio, a Azure CLI vagy Microsoft Entra integrált hitelesítésből. További információ: App Authentication ügyfélkönyvtár a .NET-hez.