Ověření spravované identity pomocí ID Microsoft Entra pro přístup k prostředkům Azure Relay

Spravované identity pro prostředky Azure jsou funkce mezi Azure, která umožňuje vytvořit zabezpečenou identitu přidruženou k nasazení, ve kterém běží kód aplikace. Tuto identitu pak můžete přidružit k rolím řízení přístupu, které udělují vlastní oprávnění pro přístup ke konkrétním prostředkům Azure, které vaše aplikace potřebuje.

Se spravovanými identitami spravuje platforma Azure tuto identitu modulu runtime. V kódu nebo konfiguraci aplikace nemusíte ukládat a chránit přístupové klíče, a to buď pro samotnou identitu, nebo pro prostředky, ke které potřebujete přístup. Klientská aplikace Relay spuštěná v aplikaci služby Aplikace Azure service nebo ve virtuálním počítači s povolenými spravovanými entitami pro prostředky Azure nemusí zpracovávat pravidla a klíče SAS ani žádné jiné přístupové tokeny. Klientská aplikace potřebuje jenom adresu koncového bodu oboru názvů služby Relay. Když se aplikace připojí, Relay vytvoří vazbu kontextu spravované entity na klienta v operaci, která je znázorněna v příkladu dále v tomto článku. Jakmile je přidružená ke spravované identitě, může váš klient služby Relay provádět všechny autorizované operace. Autorizace se uděluje přidružením spravované entity k rolím relay.

Poznámka:

Tato funkce je obecně dostupná ve všech oblastech, včetně Microsoft Azure provozovaných společností 21Vianet.

Přehled

Když se objekt zabezpečení (uživatel, skupina, aplikace) pokusí o přístup k entitě Relay, 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://relay.azure.net. 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.
  2. Dále se token předá jako součást požadavku službě Relay za účelem autorizace přístupu k zadanému prostředku (hybridní připojení, přenosy WCF). Microsoft Entra autorizuje přístupová práva k zabezpečeným prostředkům prostřednictvím řízení přístupu na základě role v Azure (Azure RBAC). Azure Relay 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 Relay. Můžete také definovat vlastní role pro přístup k datům. Seznam předdefinovaných rolí podporovaných službou Azure Relay najdete v tématu Předdefinované role Azure pro Azure Relay. Nativní aplikace a webové aplikace, které odesílaly požadavky na Relay, můžou také autorizovat pomocí Microsoft Entra ID.

Předdefinované role Azure pro Azure Relay

Pro Azure Relay 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 Azure pro autorizaci přístupu k oboru názvů služby Relay:

Role Popis
Vlastník služby Azure Relay Pomocí této role můžete udělit úplný přístup k prostředkům Azure Relay.
Naslouchací proces služby Azure Relay Pomocí této role udělte naslouchacímu procesu a entitě přístup pro čtení k prostředkům Azure Relay.
Odesílatel služby Azure Relay Pomocí této role udělte prostředkům Azure Relay přístup pro čtení a čtení entit.

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 Azure Relay, počínaje nejužším oborem:

  • Entity přenosu: Přiřazení role se vztahuje na konkrétní entitu přenosu, jako je hybridní připojení nebo předávání WCF.
  • Obor názvů přenosu: Přiřazení role se vztahuje na všechny entity přenosu v oboru názvů.
  • Skupina prostředků: Přiřazení role se vztahuje na všechny prostředky přenosu v rámci skupiny prostředků.
  • Předplatné: Přiřazení role se vztahuje na všechny prostředky služby Relay 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.

Povolení spravované identity

Nejprve povolte spravovanou identitu pro prostředek Azure, který potřebuje přístup k entitám Azure Relay (hybridní připojení nebo přenosy WCF). Pokud například klientská aplikace Relay běží na virtuálním počítači Azure, povolte pro virtuální počítač spravovanou identitu podle pokynů v článku Konfigurace spravované identity pro virtuální počítač Azure. Po povolení tohoto nastavení se ve vašem ID Microsoft Entra vytvoří nová identita spravované služby.

Seznam služeb, které podporují spravované identity, najdete v tématu Služby, které podporují spravované identity pro prostředky Azure.

Přiřazení role Azure Relay ke spravované identitě

Po povolení spravované identity přiřaďte k identitě v příslušném oboru některou z rolí Azure Relay (vlastník služby Azure Relay, naslouchací proces Azure Relay nebo Odesílatel služby Azure Relay). Když je role Azure přiřazená ke spravované identitě, udělí se spravované identitě přístup k entitě služby Relay v příslušném oboru.

Následující část používá jednoduchou aplikaci, která běží pod spravovanou identitou v instanci virtuálního počítače Azure a přistupuje k prostředkům služby Relay.

Ukázková aplikace na virtuálním počítači, která přistupuje k entitě přenosu

  1. Stáhněte si ukázkovou konzolovou aplikaci Hybridní Připojení iony do počítače z GitHubu.

  2. Vytvořte virtuální počítač Azure. Pro tuto ukázku použijte image Windows 10.

  3. Povolte identitu přiřazenou systémem nebo identitu přiřazenou uživatelem pro virtuální počítač Azure. Pokyny najdete v tématu Povolení identity pro virtuální počítač.

  4. Přiřaďte jednu z rolí služby Relay k identitě spravované služby v požadovaném oboru (entita relay, obor názvů služby Relay, skupina prostředků, předplatné). Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

  5. Podle pokynů z dokumentu README sestavte konzolovou aplikaci místně na místním počítači.

  6. Zkopírujte spustitelný soubor pod <místní cestou>\RoleBasedAccessControl\bin\Debug do virtuálního počítače. K připojení k virtuálnímu počítači Azure můžete použít protokol RDP. Další informace najdete v tématu Připojení a přihlášení k virtuálnímu počítači Azure s Windows.

  7. Na virtuálním počítači Azure spusťte RoleBasedAccessControl.exe podle pokynů z dokumentu README.

    Poznámka:

    Ke spuštění konzolové aplikace pro WCF Relays použijte stejný postup.

Zvýrazněný kód z ukázky

Tady je kód z ukázky, který ukazuje, jak použít ověřování Microsoft Entra pro připojení ke službě Azure Relay.

  1. Vytvoření tokenProvider objektu pomocí TokenProvider.CreateManagedIdentityTokenProvider metody.

    • Pokud používáte spravovanou identitu přiřazenou systémem:
      TokenProvider.CreateManagedIdentityTokenProvider();
      
    • Pokud používáte spravovanou identitu přiřazenou uživatelem, získejte ID klienta pro identitu přiřazenou uživatelem ze stránky Spravovaná identita na webu Azure Portal. Pokyny najdete v tématu Seznam spravovaných identit přiřazených uživatelem.
      var managedCredential = new ManagedIdentityCredential(clientId);
      tokenProvider = TokenProvider.CreateManagedIdentityTokenProvider(managedCredential);    
      
  2. Vytvořte objekt Hybrid Připojení ionListener nebo Hybrid Připojení ionClient předáním identifikátoru URI hybridního připojení a zprostředkovatele tokenu, který jste vytvořili v předchozím kroku.

    Posluchače:

    var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);    
    

    Odesílatele:

    var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);    
    

Ukázky

Další kroky

Další informace o Službě Azure Relay najdete v následujících článcích.