Ověřování a autorizace aplikace pomocí ID Microsoft Entra pro přístup k entitě Azure Relay

Azure Relay podporuje použití Microsoft Entra ID k autorizaci požadavků na entity Azure Relay (hybridní Připojení ions, WCF Relays). 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 nebo instanční objekt aplikace. Další informace o rolích a přiřazeních rolí najdete v tématu Vysvětlení různých rolí.

Poznámka:

Tato funkce je obecně dostupná ve všech oblastech s výjimkou 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.

Ověření z aplikace

Klíčovou výhodou použití Microsoft Entra ID se službou Azure Relay 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 nebo instanční objekt), na kterém je aplikace spuštěná. Pokud ověřování proběhne úspěšně, vrátí Microsoft Entra ID přístupový token aplikaci a aplikace pak může použít přístupový token k autorizaci požadavků na Azure Relay.

Následující části ukazují, jak nakonfigurovat konzolovou aplikaci pro ověřování pomocí platformy Microsoft Identity Platform 2.0. Další informace 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í Microsoft Entra ID k autorizaci entit Azure Relay 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.

Podrobné pokyny k registraci aplikace v Microsoft Entra ID najdete v rychlém startu: Registrace aplikace pomocí Microsoft Entra ID.

Důležité

Poznamenejte si ID adresáře (tenanta) a ID aplikace (klienta). Tyto hodnoty budete potřebovat ke spuštění ukázkové aplikace.

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

Aplikace potřebuje tajný klíč klienta, aby při žádosti o token mohla prokázat svou identitu. Ve stejném článku, který byl dříve propojený, si přečtěte část Přidání tajného klíče klienta pro vytvoření tajného klíče klienta.

Důležité

Poznamenejte si tajný klíč klienta. Budete ho potřebovat ke spuštění ukázkové aplikace.

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í Azure Relay v požadovaném oboru (entita relay, obor názvů, skupina prostředků, předplatné). Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Spuštění ukázky

  1. Stáhněte si ukázku konzolové aplikace z GitHubu.

  2. Podle pokynů v článku README spusťte aplikaci místně na svém počítači.

    Poznámka:

    Pomocí stejných kroků spusťte ukázkovou konzolovou aplikaci pro WCF Relay.

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.CreateAzureActiveDirectoryTokenProvider metody.

    Pokud jste ještě nevytvořili registraci aplikace, přečtěte si část Registrace aplikace v části Microsoft Entra ID a pak vytvořte tajný klíč klienta, jak je uvedeno v části Vytvoření tajného kódu klienta.

    Pokud chcete použít existující registraci aplikace, podle těchto pokynů získejte ID aplikace (klienta) a ID adresáře (tenanta).

    1. Přihlaste se k portálu Azure.
    2. Vyhledejte a vyberte Microsoft Entra ID pomocí panelu hledání v horní části.
    3. Na stránce MICROSOFT Entra ID vyberte Registrace aplikací v části Spravovat v nabídce vlevo.
    4. Vyberte registraci aplikace.
    5. Na stránce registrace aplikace se zobrazí hodnoty ID aplikace (klienta) a ID adresáře (tenanta).

    Tajný klíč klienta získáte takto:

    1. Na stránce registrace aplikace v nabídce vlevo vyberte Certifikáty a tajné kódy .
    2. Použijte tlačítko kopírovat ve sloupci Hodnota pro tajný klíč v části Tajné kódy klienta.
    static TokenProvider GetAadTokenProvider(string clientId, string tenantId, string clientSecret)
    {
        return TokenProvider.CreateAzureActiveDirectoryTokenProvider(
            async (audience, authority, state) =>
            {
                IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
                    .WithAuthority(authority)
                    .WithClientSecret(clientSecret)
                    .Build();
    
                var authResult = await app.AcquireTokenForClient(new [] { $"{audience}/.default" }).ExecuteAsync();
                return authResult.AccessToken;
            },
            $"https://login.microsoftonline.com/{tenantId}");
    }
    
  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 tématech.