Sdílet prostřednictvím


Ověřování a autorizace aplikace pomocí ID Microsoft Entra pro přístup k entitě služby Azure Service Bus

Azure Service Bus podporuje použití Microsoft Entra ID k autorizaci požadavků na entity služby Service Bus (fronty, témata, odběry nebo filtry). S ID Microsoft Entra můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení, což může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita pro prostředky Azure. Klíčovou výhodou použití Microsoft Entra ID se službou Azure Service Bus je, že už v kódu nemusíte ukládat svoje přihlašovací údaje. Místo toho můžete požádat o přístupový token OAuth 2.0 z platformy Microsoft Identity Platform. Pokud ověřování proběhne úspěšně, vrátí MICROSOFT Entra ID přístupový token k aplikaci a aplikace pak může použít přístupový token k autorizaci požadavku na prostředky služby Service Bus.

Důležité

Pro obor názvů služby Service Bus můžete zakázat ověřování pomocí místního klíče nebo klíče SAS a povolit pouze ověřování Microsoft Entra. Podrobné pokyny najdete v tématu Zakázání místního ověřování.

Přehled

Když se objekt zabezpečení (uživatel, skupina nebo aplikace) pokusí o přístup k entitě Service Bus, musí být požadavek autorizovaný. S ID Microsoft Entra je přístup k prostředku dvoustupňový proces.

  1. Nejprve se ověří identita objektu zabezpečení a vrátí se token OAuth 2.0. Název prostředku pro vyžádání tokenu je https://servicebus.azure.net.
  2. Dále se token předá jako součást požadavku službě Service Bus za účelem autorizace přístupu k zadanému prostředku.

Krok ověřování vyžaduje, aby žádost aplikace obsahovala přístupový token OAuth 2.0 za běhu. Pokud je aplikace spuštěná v rámci entity Azure, jako je virtuální počítač Azure, škálovací sada virtuálních počítačů nebo aplikace Azure Functions, může pro přístup k prostředkům použít spravovanou identitu. Informace o ověřování požadavků provedených spravovanou identitou ve službě Service Bus najdete v tématu Ověřování přístupu k prostředkům Služby Azure Service Bus pomocí ID Microsoft Entra a spravovaných identit pro prostředky Azure.

Krok autorizace vyžaduje, aby k objektu zabezpečení byla přiřazena jedna nebo více rolí Azure. Azure Service Bus poskytuje role Azure, které zahrnují sady oprávnění pro prostředky služby Service Bus. Role přiřazené k objektu zabezpečení určují oprávnění, která bude objekt zabezpečení mít u prostředků služby Service Bus. Další informace o přiřazování rolí Azure ke službě Azure Service Bus najdete v tématu Předdefinované role Azure pro Azure Service Bus.

Nativní aplikace a webové aplikace, které odesílaly požadavky na Service Bus, můžou také autorizovat pomocí Microsoft Entra ID. V tomto článku se dozvíte, jak požádat o přístupový token a použít ho k autorizaci žádostí o prostředky služby Service Bus.

Předdefinované role Azure pro Azure Service Bus

Microsoft Entra 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í běžné sady oprávnění používaných pro přístup k entitám služby Service Bus a můžete také definovat vlastní role pro přístup k datům.

Když je role Azure přiřazená k objektu zabezpečení Microsoft Entra, Azure udělí přístup k těmto prostředkům pro tento objekt zabezpečení. Přístup může být vymezen na úroveň předplatného, skupiny prostředků, oboru názvů služby Service Bus nebo entity (fronta, téma nebo předplatné). Objekt zabezpečení Microsoft Entra může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita pro prostředky Azure.

Pro Službu Azure Service Bus je správa oborů názvů a všech souvisejících prostředků prostřednictvím webu 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 pro autorizaci přístupu k oboru názvů služby Service Bus:

  • Vlastník dat služby Azure Service Bus: Pomocí této role můžete udělit úplný přístup k prostředkům služby Service Bus.
  • Odesílatel dat služby Azure Service Bus: Pomocí této role můžete udělit přístup k oboru názvů služby Service Bus a jeho entitám.
  • Příjemce dat služby Azure Service Bus: Pomocí této role můžete udělit přístup k oboru názvů služby Service Bus a jeho entitám.

Obor prostředku

Před přiřazením role Azure k objektu zabezpečení určete rozsah přístupu, který má mít objekt zabezpečení. Osvědčené postupy určují, že je vždy nejlepší udělit pouze nejužší možný rozsah.

Následující seznam popisuje úrovně, na kterých můžete omezit přístup k prostředkům služby Service Bus, počínaje nejužším oborem:

  • Fronta, téma nebo odběr: Přiřazení role se vztahuje na konkrétní entitu služby Service Bus. Azure Portal v současné době nepodporuje přiřazování uživatelů, skupin nebo spravovaných identit k rolím Azure service Bus na úrovni předplatného tématu.

  • Obor názvů služby Service Bus: Přiřazení role zahrnuje celou topologii služby Service Bus pod oborem názvů a do odběru fronty nebo tématu přidruženého k němu.

  • Skupina prostředků: Přiřazení role se vztahuje na všechny prostředky služby Service Bus v rámci skupiny prostředků.

  • Předplatné Azure: Přiřazení role se vztahuje na všechny prostředky služby Service Bus ve všech skupinách prostředků v předplatném.

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 definované předdefinované role, najdete v tématu Vysvětlení definic rolí. Informace o vytváření vlastních rolí Azure najdete v tématu Vlastní role Azure.

Ověření z aplikace

Klíčovou výhodou použití Microsoft Entra ID se službou Service Bus je, že vaše přihlašovací údaje už nemusí být uložené ve vašem kódu. Místo toho můžete požádat o přístupový token OAuth 2.0 z platformy Microsoft Identity Platform. Microsoft Entra ověřuje objekt zabezpečení (uživatel, skupina, instanční objekt nebo spravovaná identita pro prostředky Azure) spuštěnou aplikaci. Pokud ověřování proběhne úspěšně, vrátí MICROSOFT Entra ID přístupový token do aplikace a aplikace pak může použít přístupový token k autorizaci požadavků na Azure Service Bus.

V následujících částech se dozvíte, jak nakonfigurovat nativní aplikaci nebo webovou aplikaci pro ověřování pomocí platformy Microsoft Identity Platform 2.0. Další informace o platformě Microsoft Identity Platform 2.0 najdete v přehledu platformy Microsoft Identity Platform (v2.0).

Přehled toku udělení kódu OAuth 2.0 najdete v tématu Autorizace přístupu k webovým aplikacím Microsoft Entra pomocí toku udělení kódu OAuth 2.0.

Registrace aplikace v tenantovi Microsoft Entra

Prvním krokem při použití ID Microsoft Entra k autorizaci entit Service Bus je registrace klientské aplikace v tenantovi Microsoft Entra z webu Azure Portal. Při registraci klientské aplikace zadáte do AD informace o aplikaci. Microsoft Entra ID pak poskytuje ID klienta (označované také jako ID aplikace), které můžete použít k přidružení aplikace k modulu runtime Microsoft Entra. Další informace o ID klienta najdete v tématu Objekty aplikace a instanční objekty v Microsoft Entra ID.

Postupujte podle kroků v rychlém startu : Zaregistrujte aplikaci na platformě Microsoft Identity Platform a zaregistrujte aplikaci pomocí Microsoft Entra ID.

Poznámka:

Pokud aplikaci zaregistrujete jako nativní aplikaci, můžete zadat libovolný platný identifikátor URI pro identifikátor URI přesměrování. U nativních aplikací nemusí být tato hodnota skutečnou adresou URL. U webových aplikací musí být identifikátor URI přesměrování platným identifikátorem URI, protože určuje adresu URL, ke které jsou tokeny k dispozici.

Po registraci aplikace uvidíte ID aplikace (klienta) a ID adresáře (tenanta) v části Nastavení:

Důležité

Poznamenejte si ID tenanta a ID aplikace. Tyto hodnoty budete potřebovat ke spuštění aplikace.

Snímek obrazovky se stránkou registrace aplikace zobrazující ID aplikace a ID tenanta

Další informace o registraci aplikace v Microsoft Entra ID naleznete v tématu Integrace aplikací s Microsoft Entra ID.

Vytvoření tajného klíče klienta

Aplikace potřebuje tajný klíč klienta, aby při žádosti o token mohla prokázat svou identitu. Pokud chcete přidat tajný klíč klienta, postupujte takto.

  1. Pokud ještě nejste na stránce, přejděte k registraci aplikace na webu Azure Portal.

  2. V nabídce vlevo vyberte Certifikáty a tajné kódy .

  3. V části Tajné kódy klienta vyberte Nový tajný klíč klienta a vytvořte nový tajný klíč.

    Snímek obrazovky zobrazující stránku Certifikáty a tajné kódy s vybraným tlačítkem Nový tajný kód klienta

  4. Zadejte popis tajného klíče a zvolte požadovaný interval vypršení platnosti a pak vyberte Přidat.

    Snímek obrazovky se stránkou Přidat tajný kód klienta

  5. Okamžitě zkopírujte hodnotu nového tajného kódu do zabezpečeného umístění. Hodnota výplně se zobrazí jenom jednou.

    Snímek obrazovky zobrazující část Tajné kódy klienta s přidaným tajným kódem

Oprávnění pro rozhraní API služby Service Bus

Pokud je vaše aplikace konzolovou aplikací, musíte zaregistrovat nativní aplikaci a přidat oprávnění rozhraní API pro Microsoft.ServiceBus k požadované sadě oprávnění . Nativní aplikace také potřebují identifikátor URI přesměrování v MICROSOFT Entra ID, který slouží jako identifikátor. Identifikátor URI nemusí být cílem sítě. Tento příklad se používá https://servicebus.microsoft.com , protože vzorový kód už tento identifikátor URI používá.

Přiřazování rolí Azure s využitím webu Azure Portal

Přiřaďte k instančnímu objektu aplikace jednu z rolí Service Bus v požadovaném oboru (entita, obor názvů služby Service Bus, skupina prostředků, předplatné Azure). Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Jakmile definujete roli a její obor, můžete toto chování otestovat pomocí ukázky na GitHubu.

Ověřování klienta služby Service Bus

Jakmile zaregistrujete aplikaci a udělíte jí oprávnění k odesílání a přijímání dat ve službě Azure Service Bus, můžete klienta ověřit pomocí přihlašovacích údajů tajných klíčů klienta, což vám umožní provádět požadavky na službu Azure Service Bus.

Seznamscénářůch

Pomocí nejnovější knihovny Azure.Messaging.ServiceBus můžete ověřit ServiceBusClient 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, prohlédni si ukázky RoleBasedAccessControl v úložišti ukázek azure-service-bus.

Další kroky

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.