ověřování a autorizace aplikace s Azure Active Directory pro přístup k entitám Azure Service Bus
azure Service Bus podporuje použití Azure Active Directory (Azure AD) k autorizaci požadavků na Service Bus entit (fronty, témata, odběry nebo filtry). Pomocí Azure AD můžete použít řízení přístupu na základě role Azure (Azure RBAC) k udělení oprávnění objektu zabezpečení, který může být uživatel, skupina nebo instanční objekt aplikace. Další informace o rolích a přiřazení rolí najdete v tématu Principy různých rolí.
Přehled
když se objekt zabezpečení (uživatel, skupina nebo aplikace) pokusí o přístup k Service Bus entitě, musí být žádost autorizována. S Azure AD je přístup k prostředku v procesu se dvěma kroky.
- Nejprve je ověřená identita objektu zabezpečení a je vrácen token OAuth 2,0. Název prostředku pro vyžádání tokenu
https://servicebus.azure.net. - v dalším kroku se token předává jako součást požadavku služby Service Bus k autorizaci přístupu k zadanému prostředku.
Krok ověřování vyžaduje, aby žádost o aplikaci obsahovala přístupový token OAuth 2,0 za běhu. Pokud je aplikace spuštěná v rámci entity Azure, jako je třeba virtuální počítač Azure, sada škálování virtuálního počítače nebo aplikace funkce Azure, může pro přístup k prostředkům použít spravovanou identitu. informace o tom, jak ověřit požadavky prováděné spravovanou identitou pro Service Bus službu, najdete v tématu ověření přístupu k prostředkům azure Service Bus pomocí Azure Active Directory a spravovaných identit pro prostředky Azure.
Autorizační krok vyžaduje, aby se k objektu zabezpečení přiřadila jedna nebo více rolí Azure. azure Service Bus poskytuje role azure, které zahrnují sady oprávnění pro prostředky Service Bus. Role, které jsou přiřazeny objektu zabezpečení, určují oprávnění, která bude mít objekt zabezpečení. další informace o přiřazování rolí azure do azure Service Bus najdete v tématu předdefinované role azure pro azure Service Bus.
nativní aplikace a webové aplikace, které vytvářejí požadavky na Service Bus, mohou být také autorizovány pomocí Azure AD. v tomto článku se dozvíte, jak požádat o přístupový token a použít ho k autorizaci žádostí o Service Bus prostředky.
Přiřazení rolí Azure pro přístupová práva
Azure Active Directory (Azure AD) autorizuje přístupová práva k zabezpečeným prostředkům prostřednictvím Azure RBAC. azure Service Bus definuje sadu předdefinovaných rolí azure, které zahrnují společné sady oprávnění používané pro přístup k Service Busm entitám, a můžete také definovat vlastní role pro přístup k datům.
Když je role Azure přiřazená k objektu zabezpečení Azure AD, poskytuje Azure přístup k těmto prostředkům pro daný objekt zabezpečení. přístup může být vymezen na úrovni předplatného, skupiny prostředků nebo oboru názvů Service Bus. Objekt zabezpečení Azure AD může být uživatelem, skupinou, instančním objektem služby nebo spravovanou identitou pro prostředky Azure.
Předdefinované role Azure pro Azure Service Bus
v případě azure Service Bus je správa oborů názvů a všech souvisejících prostředků prostřednictvím Azure Portal a rozhraní API pro správu prostředků azure už chráněná pomocí modelu azure RBAC. azure poskytuje následující předdefinované role azure pro autorizaci přístupu k oboru názvů Service Bus:
- vlastník dat Service Bus Azure: povoluje přístup k datům Service Bus oboru názvů a jeho entit (fronty, témata, odběry a filtry).
- datový odesílatel Azure Service Bus: tuto roli použijte k poskytnutí přístupu pro přístup k oboru názvů Service Bus a jeho entitám.
- příjemce dat Service Bus Azure: pomocí této role můžete získat přístup k oboru názvů Service Bus a jeho entitám.
Obor prostředku
Než do objektu zabezpečení přiřadíte roli Azure, určete rozsah přístupu, který má objekt zabezpečení mít. Osvědčené postupy určují, že vždy nejlépe přidělíte jenom nejužšímu možnému rozsahu.
následující seznam popisuje úrovně, na jejichž základě můžete nastavit rozsah přístupu k prostředkům Service Bus, počínaje nejužším rozsahem:
- zařazení do fronty, tématu nebo předplatného: přiřazení Role se vztahuje na konkrétní entitu Service Bus. v současné době Azure Portal nepodporuje přiřazování uživatelů/skupin/spravovaných identit do Service Bus rolí Azure na úrovni předplatného.
- Service Bus obor názvů: přiřazování rolí zahrnuje celou topologii Service Bus pod oborem názvů a do skupiny uživatelů, které jsou k ní přidružené.
- skupina prostředků: přiřazení Role se vztahuje na všechny prostředky Service Bus v rámci skupiny prostředků.
- předplatné: přiřazení Role se vztahuje na všechny prostředky Service Bus ve všech skupinách prostředků v rámci předplatného.
Poznámka
Mějte na paměti, že rozšíření přiřazení rolí Azure může trvat až pět minut.
Další informace o tom, jak jsou předdefinované role definované, najdete v tématu vysvětlení definic rolí. Informace o vytváření vlastních rolí Azure najdete v tématu vlastní role Azure.
Přiřazení rolí Azure pomocí Azure Portal
přiřaďte jednu z Service Bus rolí k instančnímu objektu aplikace v požadovaném rozsahu (Service Bus obor názvů, skupina prostředků, předplatné). Podrobný postup najdete v tématu přiřazení rolí Azure pomocí Azure Portal.
Po definování role a jejího oboru můžete toto chování otestovat pomocí ukázek na GitHub.
Ověření z aplikace
klíčovou výhodou použití Azure AD s Service Bus je to, že vaše přihlašovací údaje už nemusíte ukládat do svého kódu. Místo toho můžete z Microsoft identity platform požádat o přístupový token OAuth 2,0. Azure AD ověřuje objekt zabezpečení (uživatel, skupina nebo instanční objekt), který spouští aplikaci. Pokud je ověření úspěšné, Azure AD vrátí přístupový token do aplikace a aplikace pak může použít přístupový token k autorizaci požadavků do Azure Service Bus.
v následujících částech se dozvíte, jak nakonfigurovat nativní aplikaci nebo webovou aplikaci pro ověřování pomocí Microsoft identity platform 2,0. další informace o Microsoft identity platform 2,0 naleznete v tématu Microsoft identity platform (v 2.0) – přehled.
přehled toku udělení kódu oauth 2,0 najdete v tématu autorizace přístupu k Azure Active Directory webových aplikací pomocí toku udělení kódu oauth 2,0.
Registrace aplikace pomocí tenanta Azure AD
prvním krokem při použití Azure ad k autorizaci Service Bus entit je registrace klientské aplikace pomocí klienta služby Azure AD z Azure Portal. Při registraci klientské aplikace zadáváte informace o aplikaci službě AD. Azure AD pak poskytuje ID klienta (označované také jako ID aplikace), které můžete použít k přidružení aplikace k modulu runtime služby Azure AD. Další informace o ID klienta najdete v tématu aplikace a objekty zabezpečení služby v Azure Active Directory.
Následující obrázky ukazují kroky pro registraci webové aplikace:

Poznámka
Pokud aplikaci zaregistrujete jako nativní aplikaci, můžete pro identifikátor URI přesměrování zadat libovolný platný identifikátor URI. Pro nativní aplikace nemusí být tato hodnota skutečnou adresou URL. Pro webové aplikace musí být identifikátor URI pro přesměrování platným identifikátorem URI, protože určuje adresu URL, na které jsou tokeny poskytovány.
po zaregistrování aplikace se zobrazí ID aplikace (klienta) v části Nastavení:

Další informace o registraci aplikace v Azure AD najdete v tématu integrování aplikací pomocí Azure Active Directory.
Důležité
Poznamenejte si TenantId a ApplicationId. Tyto hodnoty budete potřebovat ke spuštění aplikace.
Vytvoření tajného klíče klienta
Aplikace potřebuje při žádosti o tokenu klíč klienta k prokázání jeho identity. Chcete-li přidat tajný klíč klienta, postupujte podle těchto kroků.
Pokud na stránce ještě nemáte, přejděte k registraci vaší aplikace v Azure Portal.
V nabídce vlevo vyberte certifikáty & tajné klíče .
V části tajné klíče klienta vyberte nový tajný klíč klienta a vytvořte nový tajný klíč.

Zadejte popis tajného kódu a vyberte požadovaný interval vypršení platnosti a pak vyberte Přidat.

Hodnotu nového tajného klíče hned zkopírujte do zabezpečeného umístění. Hodnota Fill se zobrazí pouze jednou.

oprávnění pro rozhraní Service Bus API
Pokud je vaše aplikace Konzolová aplikace, musíte zaregistrovat nativní aplikaci a přidat oprávnění rozhraní API pro Microsoft. ServiceBus do požadované sady oprávnění . Nativní aplikace také potřebují identifikátor URI přesměrování ve službě Azure AD, který slouží jako identifikátor; identifikátor URI nemusí být cílovým umístěním v síti. Použijte v https://servicebus.microsoft.com tomto příkladu, protože vzorový kód již používá tento identifikátor URI.
ověřování klienta Service Bus
po zaregistrování aplikace a udělení oprávnění it k posílání a přijímání dat v Azure Service Bus můžete klienta ověřit pomocí pověření tajného klíče klienta, které vám umožní vytvářet požadavky na azure Service Bus.
seznam scénářů, pro které jsou podporované tokeny, najdete v části scénáře v knihovně Microsoft authentication Library (MSAL) pro úložiště .net GitHub.
Pomocí nejnovější knihovny Azure. Messaging. ServiceBus můžete ServiceBusClient ověřit pomocí ClientSecretCredential, který je definovaný v knihovně Azure. identity .
TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);
Pokud používáte starší balíčky .NET, přečtěte si ukázky RoleBasedAccessControl v úložišti ukázek Azure-Service-Bus.
Další kroky
- Další informace o službě Azure RBAC najdete v tématu co je řízení přístupu na základě role Azure (Azure RBAC)?
- další informace o tom, jak přiřadit a spravovat přiřazení rolí Azure pomocí Azure PowerShell, Azure CLI nebo REST API, najdete v těchto článcích:
Pokud se o přenosu zpráv přes Service Bus chcete dozvědět víc, pročtěte si následující témata.