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


Felügyelt identitás hitelesítése Microsoft Entra-azonosítóval az Azure Service Bus-erőforrások eléréséhez

Az Azure-erőforrásokhoz tartozó kezelt identitások az Azure-szolgáltatásokat automatikusan kezelt identitással látják el a Microsoft Entra ID-ban. Ezzel az identitással bármely olyan szolgáltatásban hitelesíthet, mint például az Azure Service Bus, amely támogatja a Microsoft Entra-hitelesítést anélkül, hogy hitelesítő adatokkal kellene rendelkeznie a kódban. Ha nem ismeri a felügyelt identitásokat, a cikk elolvasása előtt tekintse meg az Azure-erőforrások felügyelt identitásai című témakört.

Az alábbiakban a Service Bus-entitások eléréséhez használt felügyelt identitások magas szintű lépéseit követjük:

  1. Engedélyezze a felügyelt identitást az ügyfélalkalmazáshoz vagy -környezethez. Engedélyezze például a felügyelt identitást a Azure-alkalmazás Service-alkalmazáshoz, az Azure Functions-alkalmazáshoz vagy egy olyan virtuális géphez, amelyen az alkalmazás fut. Az alábbi cikkek segítenek ebben a lépésben:

  2. Rendeljen Azure Service Bus-adattulajdonosi, Azure Service Bus-adatküldői vagy Azure Service Bus-adatátvevői szerepkört a felügyelt identitáshoz a megfelelő hatókörben (Azure-előfizetés, erőforráscsoport, Service Bus-névtér vagy Service Bus-üzenetsor vagy -témakör). A szerepkör felügyelt identitáshoz való hozzárendelésére vonatkozó utasításokért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.

  3. Az alkalmazásban használja a felügyelt identitást és a Service Bus-névtér végpontját a névtérhez való csatlakozáshoz.

    A .NET-ben például a ServiceBusClient konstruktort használja, amely a Service Bushoz való csatlakozáshoz egy sztringet, például: cotosons.servicebus.windows.net) paramétereket használ TokenCredential fullyQualifiedNamespace a felügyelt identitás használatával. A defaultAzureCredential értéket adja át, amely a felügyelt identitásból TokenCredential származik és használja. Ebben DefaultAzureCredentialOptionsa beállításban állítsa be az ManagedIdentityClientId ügyfél felügyelt identitásának azonosítóját.

    string fullyQualifiedNamespace = "<your namespace>.servicebus.windows.net>";
    string userAssignedClientId = "<your managed identity client ID>";
    
    var credential = new DefaultAzureCredential(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = userAssignedClientId
        });
    
    var sbusClient = new ServiceBusClient(fullyQualifiedNamespace, credential);
    

    Fontos

    A Service Bus-névtér helyi vagy SAS-kulcsos hitelesí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.

Azure beépített szerepkörök az Azure Service Bushoz

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 azure-beli beépített szerepkörök készletét határozza meg, amelyek a Service Bus-entitásokhoz való hozzáféréshez használt közös engedélykészleteket foglalják magukban. Egyéni szerepköröket is meghatározhat az adatok eléréséhez.

Az Azure a következő beépített Azure-szerepköröket biztosítja a Service Bus-névtérhez való hozzáférés engedélyezéséhez:

  • Azure Service Bus-adattulajdonos: Ezzel a szerepkörrel teljes hozzáférést engedélyezhet 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ő: Ezzel a szerepkört használva üzeneteket küldhet a Service Bus üzenetsoraiba és témaköreibe.
  • Azure Service Bus-adat fogadó: Ezzel a szerepkörsel engedélyezheti az üzenetek fogadását a Service Bus-üzenetsorokból és -előfizetésekből.

Ha szerepkört szeretne hozzárendelni egy felügyelt identitáshoz az Azure Portalon, használja a Hozzáférés-vezérlés (IAM) lapot. Ehhez a laphoz a Service Bus Névtér lapján vagy a Service Bus üzenetsorlapján vagy a Service Bus-témakörlapon válassza a Hozzáférés-vezérlés (IAM) lehetőséget. A szerepkörök hozzárendelésével kapcsolatos részletes utasításokért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.

Erőforrás hatóköre

Mielőtt hozzárendel egy Azure-szerepkört egy felügyelt identitáshoz, határozza meg, hogy a felügyelt identitás milyen hozzáférési hatókörrel rendelkezzen. Az ajánlott eljárások azt diktálják, hogy mindig a lehető legszűkebb hatókört érdemes megadni.

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 előfizetés: A szerepkör-hozzárendelés az adott Service Bus-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.

  • Előfizetés: A szerepkör-hozzárendelés az előfizetés összes erőforráscsoportjában lévő Service Bus-erőforrásra vonatkozik.

    Feljegyzés

    Ne feledje, hogy az Azure-szerepkör-hozzárendelések propagálása akár öt percet is igénybe vehet.

Az Azure Portal jelenleg nem támogatja a felhasználók, csoportok vagy felügyelt identitások Service Bus Azure-szerepkörökhöz való hozzárendelését a témakör előfizetési szintjén. Íme egy példa az Azure CLI-parancs használatára: az-role-assignment-create az identity to assign an Service Bus Azure role:

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 a 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.

SDK-k használata

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

var client = new ServiceBusClient('cotosons.servicebus.windows.net', new DefaultAzureCredential());

A ServiceBusSender és a ServiceBusReceiver vagy a ServiceBusProcessor használatával a szokásos módon küldhet és fogadhat üzeneteket.

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 rövid útmutatók olyan kóddal rendelkeznek, amely szolgáltatásnévvel küld és fogad üzeneteket, de a kód megegyezik a felügyelt identitások használatával.

Feljegyzés

A felügyelt identitás csak az Azure-környezetben, az App Servicesben, az Azure-beli virtuális gépeken és a méretezési csoportokban működik. A .NET-alkalmazások esetében a Service Bus NuGet-csomag által használt Microsoft.Azure.Services.AppAuthentication kódtár absztrakciót biztosít a protokollhoz, és támogatja a helyi fejlesztési élményt. Ez a kódtár lehetővé teszi a kód helyi tesztelését a fejlesztői gépen a Visual Studio, az Azure CLI 2.0 vagy az Active Directory integrált hitelesítés felhasználói fiókjával. A kódtár helyi fejlesztési lehetőségeiről további információt az Azure Key Vault szolgáltatásközi hitelesítése a .NET használatával című témakörben talál.

Következő lépések

Tekintse meg ezt a .NET-webalkalmazás-mintát a GitHubon, amely felügyelt identitással csatlakozik a Service Bushoz üzenetek küldéséhez és fogadásához. Adja hozzá az app service identitását az Azure Service Bus adattulajdonosi szerepköréhez .