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:
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:
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.
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álTokenCredential
fullyQualifiedNamespace
a felügyelt identitás használatával. A defaultAzureCredential értéket adja át, amely a felügyelt identitásbólTokenCredential
származik és használja. EbbenDefaultAzureCredentialOptions
a beállításban állítsa be azManagedIdentityClientId
ü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 TokenCredential
alkalmazá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 .