Sdílet prostřednictvím


Ověřování a autorizace pomocí Microsoft Entra ID

Tento článek popisuje, jak ověřovat klienty publikování Azure Event Gridu pomocí ID Microsoft Entra.

Přehled

Platforma Microsoft Identity Platform poskytuje integrované ověřování a správu řízení přístupu pro prostředky a aplikace, které jako zprostředkovatele identity používají Microsoft Entra ID. K zajištění podpory ověřování a autorizace ve vašich aplikacích použijte platformu Microsoft Identity Platform. Je založená na otevřených standardech, jako jsou OAuth 2.0 a OpenID Connect, a nabízí nástroje a opensourcové knihovny, které podporují mnoho scénářů ověřování. Poskytuje pokročilé funkce, jako je podmíněný přístup , které umožňují nastavit zásady vyžadující vícefaktorové ověřování nebo povolit přístup z určitých umístění, například.

Výhodou, která zlepšuje váš postoj k zabezpečení při používání Microsoft Entra ID, je, že v kódu nebo úložištích nepotřebujete ukládat přihlašovací údaje, jako jsou ověřovací klíče. Místo toho se spoléháte na získání přístupových tokenů OAuth 2.0 z platformy Microsoft Identity Platform, kterou vaše aplikace prezentuje při ověřování v chráněném prostředku. Aplikaci pro publikování událostí můžete zaregistrovat pomocí ID Microsoft Entra a získat instanční objekt přidružený k vaší aplikaci, kterou spravujete a používáte. Místo toho můžete použít spravované identity, ať už přiřazené systémem, nebo uživatelem, pro ještě jednodušší model správy identit, protože některé aspekty životního cyklu identity se spravují za vás.

Řízení přístupu na základě role (RBAC) umožňuje nakonfigurovat autorizaci způsobem, kterým mají určité objekty zabezpečení (identity pro uživatele, skupiny nebo aplikace) specifická oprávnění ke spouštění operací s prostředky Azure. Tímto způsobem musí mít objekt zabezpečení používaný klientskou aplikací, která odesílá události do Event Gridu, přiřazenou roli RBAC EventGrid Data Sender .

Objekty zabezpečení

Existují dvě široké kategorie objektů zabezpečení, které se dají použít při diskuzi o ověřování klienta publikování služby Event Grid:

  • Spravované identity. Spravovanou identitu je možné přiřadit systémem, který povolíte u prostředku Azure a je přidružený pouze k danému prostředku nebo přiřazené uživateli, který explicitně vytvoříte a pojmenujete. Spravované identity přiřazené uživatelem je možné přidružit k více prostředkům.
  • Objekt zabezpečení aplikace. Jedná se o typ objektu zabezpečení, který představuje aplikaci, která přistupuje k prostředkům chráněným id Microsoft Entra.

Bez ohledu na použitý objekt zabezpečení spravovaná identita nebo objekt zabezpečení aplikace používá váš klient tuto identitu k ověření před ID Microsoft Entra a získání přístupového tokenu OAuth 2.0, který se odesílá s požadavky při odesílání událostí do Event Gridu. Token je kryptograficky podepsaný a jakmile ho Event Grid přijme, token se ověří. Například cílová skupina (zamýšlený příjemce tokenu) se mimo jiné potvrzuje jako Event Grid (https://eventgrid.azure.net). Token obsahuje informace o identitě klienta. Event Grid převezme tuto identitu a ověří, že má klient přiřazenou roli EventGrid Data Sender . Přesněji řečeno služba Event Grid ověří, že identita má Microsoft.EventGrid/events/send/action oprávnění v roli RBAC přidruženou k identitě, a teprve potom povolí dokončení žádosti o publikování událostí.

Pokud používáte sadu Event Grid SDK, nemusíte si dělat starosti s podrobnostmi o tom, jak implementovat získání přístupových tokenů a jak ji zahrnout do všech požadavků na Event Grid, protože sady SDK roviny dat Event Gridu to dělají za vás.

Postup konfigurace klienta pro použití ověřování Microsoft Entra

Pomocí následujících kroků nakonfigurujte klienta tak, aby při odesílání událostí do tématu, domény nebo oboru názvů partnera používal ověřování Microsoft Entra.

  1. Vytvořte nebo použijte objekt zabezpečení, který chcete použít k ověření. Můžete použít spravovanou identitu nebo objekt zabezpečení aplikace.
  2. Udělte objektu zabezpečení oprávnění k publikování událostí přiřazením role EventGrid Data Sender k objektu zabezpečení.
  3. Pomocí sady Event Grid SDK publikujte události do Event Gridu.

Ověřování s využitím spravované identity

Spravované identity jsou identity přidružené k prostředkům Azure. Spravované identity poskytují identitu, kterou aplikace používají při použití prostředků Azure, které podporují ověřování Microsoft Entra. Aplikace mohou použít spravovanou identitu hostitelského prostředku, jako je virtuální počítač nebo služba Aplikace Azure k získání tokenů Microsoft Entra, které jsou prezentovány s žádostí při publikování událostí do Event Gridu. Když se aplikace připojí, Event Grid vytvoří vazbu kontextu spravované entity na klienta. Jakmile je přidružená ke spravované identitě, může váš klient publikování event Gridu provádět všechny autorizované operace. Autorizace se uděluje přidružením spravované entity k roli RBAC event Gridu.

Spravovaná identita poskytuje službám Azure automaticky spravovanou identitu v Microsoft Entra ID. Na rozdíl od jiných metod ověřování nemusíte ukládat a chránit přístupové klíče ani sdílené přístupové podpisy (SAS) v kódu nebo konfiguraci aplikace, a to buď pro samotnou identitu, nebo pro prostředky, ke které potřebujete přístup.

Pokud chcete ověřit klienta publikování událostí pomocí spravovaných identit, nejprve se rozhodněte o hostování služby Azure pro vaši klientskou aplikaci a pak povolte spravované identity přiřazené systémem nebo uživatelem přiřazené v dané instanci služby Azure. Můžete například povolit spravované identity na virtuálním počítači, ve službě Aplikace Azure nebo ve službě Azure Functions.

Jakmile máte spravovanou identitu nakonfigurovanou v hostitelské službě, přiřaďte jí oprávnění k publikování událostí.

Ověřování pomocí objektu zabezpečení klientské aplikace

Kromě spravovaných identit je další možností identity vytvořit objekt zabezpečení pro vaši klientskou aplikaci. K tomu je potřeba zaregistrovat aplikaci v Microsoft Entra ID. Registrace aplikace je gesto, přes které delegujete řízení správy identit a přístupu na ID Microsoft Entra. Postupujte podle kroků v části Registrace aplikace a v části Přidání tajného klíče klienta. Než začnete, nezapomeňte si projít požadavky .

Jakmile budete mít objekt zabezpečení aplikace a budete postupovat podle výše uvedených kroků, přiřaďte oprávnění k publikování událostí této identity.

Poznámka:

Když na portálu zaregistrujete aplikaci, objekt aplikace a instanční objekt se automaticky vytvoří ve vašem domovském tenantovi. Případně můžete k registraci aplikace použít Microsoft Graph. Pokud ale zaregistrujete nebo vytvoříte aplikaci pomocí rozhraní Microsoft Graph API, vytvoření instančního objektu je samostatný krok.

Přiřazení oprávnění objektu zabezpečení k publikování událostí

Identita použitá k publikování událostí do Event Gridu musí mít oprávnění Microsoft.EventGrid/events/send/action , která jí umožní odesílat události do Event Gridu. Toto oprávnění je zahrnuto v integrované roli RBAC Event Grid Data Sender. Tuto roli je možné přiřadit k objektu zabezpečení pro daný obor, což může být skupina pro správu, předplatné Azure, skupina prostředků nebo konkrétní téma Event Gridu, doména nebo obor názvů partnera. Postupujte podle kroků v tématu Přiřazení rolí Azure k přiřazení objektu zabezpečení roli EventGrid Data Sender a tímto způsobem udělte aplikaci pomocí tohoto objektu zabezpečení přístup k odesílání událostí. Alternativně můžete definovat vlastní roli , která zahrnuje oprávnění a přiřadit tuto vlastní roli k objektu Microsoft.EventGrid/events/send/action zabezpečení.

S oprávněními RBAC se teď dá sestavit klientská aplikace pro odesílání událostí do Event Gridu.

Poznámka:

Event Grid podporuje více rolí RBAC pro účely nad rámec odesílání událostí. Další informace najdete v tématu Předdefinované role event Gridu.

Publikování událostí pomocí klientských sad SDK služby Event Grid

K publikování událostí do Event Gridu použijte sadu SDK roviny dat služby Event Grid. Sada Event Grid SDK podporuje všechny metody ověřování, včetně ověřování Microsoft Entra.

Tady je ukázkový kód, který publikuje události do Event Gridu pomocí sady .NET SDK. Koncový bod tématu můžete získat na stránce Přehled tématu Event Gridu na webu Azure Portal. Je ve formátu: https://<TOPIC-NAME>.<REGION>-1.eventgrid.azure.net/api/events.

ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredential();
EventGridPublisherClient client = new EventGridPublisherClient( new Uri("<TOPIC ENDPOINT>"), managedIdentityCredential);


EventGridEvent egEvent = new EventGridEvent(
        "ExampleEventSubject",
        "Example.EventType",
        "1.0",
        "This is the event data");

// Send the event
await client.SendEventAsync(egEvent);

Požadavky

Následují požadavky na ověření ve službě Event Grid.

Publikování událostí pomocí ověřování Microsoft Entra

Pokud chcete odesílat události do tématu, domény nebo oboru názvů partnera, můžete klienta sestavit následujícím způsobem. Verze rozhraní API, která nejprve poskytla podporu ověřování Microsoft Entra, je 2018-01-01. Použijte tuto verzi rozhraní API nebo novější verzi ve vaší aplikaci.

Ukázka:

Tento fragment kódu jazyka C# vytvoří klienta vydavatele Event Gridu pomocí aplikace (instančního objektu) s tajným klíčem klienta, aby bylo možné povolit metodu DefaultAzureCredential, kterou potřebujete přidat do knihovny Azure.Identity. Pokud používáte oficiální sadu SDK, sada SDK za vás zpracuje verzi.

Environment.SetEnvironmentVariable("AZURE_CLIENT_ID", "");
Environment.SetEnvironmentVariable("AZURE_TENANT_ID", "");
Environment.SetEnvironmentVariable("AZURE_CLIENT_SECRET", "");

EventGridPublisherClient client = new EventGridPublisherClient(new Uri("your-event-grid-topic-domain-or-partner-namespace-endpoint"), new DefaultAzureCredential());

Další informace najdete v následujících článcích:

Zakázání klíče a ověřování pomocí sdíleného přístupového podpisu

Ověřování Microsoft Entra poskytuje vynikající podporu ověřování, než kterou nabízí přístupový klíč nebo ověřování tokenu sdíleného přístupového podpisu (SAS). Při ověřování Microsoft Entra se identita ověřuje u zprostředkovatele identity Microsoft Entra. Jako vývojář nebudete muset zpracovávat klíče v kódu, pokud používáte ověřování Microsoft Entra. Získáte také výhody ze všech funkcí zabezpečení integrovaných do platformy Microsoft Identity Platform, jako je podmíněný přístup , který vám pomůže zlepšit postoj k zabezpečení vaší aplikace.

Jakmile se rozhodnete použít ověřování Microsoft Entra, můžete ověřování zakázat na základě přístupových klíčů nebo tokenů SAS.

Poznámka:

Přístupové klíče nebo ověřování tokenu SAS je forma místního ověřování. Při diskuzi o této kategorii mechanismů ověřování, které nespoléhá na ID Microsoft Entra, uslyšíte někdy odkaz na místní ověřování. Parametr rozhraní API použitý k zakázání místního ověřování se volá odpovídajícím způsobem. disableLocalAuth

portál Azure

Při vytváření nového tématu můžete místní ověřování zakázat na kartě Upřesnit na stránce Vytvořit téma.

Snímek obrazovky znázorňující kartu Upřesnit na stránce Vytvořit téma, když můžete zakázat místní ověřování

Pokud chcete zakázat místní ověřování v existujícím tématu, postupujte takto:

  1. Přejděte na stránku tématu Event Gridu a v části Místní ověřování vyberte Povoleno.

    Snímek obrazovky se stránkou Přehled existujícího tématu

  2. V místním okně Místní ověřování vyberte Zakázáno a vyberte OK.

    Snímek obrazovky s oknem Místní ověřování

Azure CLI

Následující příkaz rozhraní příkazového řádku ukazuje způsob, jak vytvořit vlastní téma se zakázaným místním ověřováním. Funkce zakázání místního ověřování je aktuálně dostupná ve verzi Preview a potřebujete použít verzi 2021-06-01-previewrozhraní API.

az resource create --subscription <subscriptionId> --resource-group <resourceGroup> --resource-type Microsoft.EventGrid/topics --api-version 2021-06-01-preview --name <topicName> --location <location> --properties "{ \"disableLocalAuth\": true}"

Pro referenci jsou následující hodnoty typu prostředku, které můžete použít podle tématu, které vytváříte nebo aktualizujete.

Typ tématu Typ prostředku
Domény Microsoft.EventGrid/domains
Obor názvů partnera Microsoft.EventGrid/partnerNamespaces
Vlastní téma Microsoft.EventGrid/topics

Azure PowerShell

Pokud používáte PowerShell, pomocí následujících rutin vytvořte vlastní téma se zakázaným místním ověřováním.


Set-AzContext -SubscriptionId <SubscriptionId>

New-AzResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.EventGrid/topics -ApiVersion 2021-06-01-preview -ResourceName <TopicName> -Location <Location> -Properties @{disableLocalAuth=$true}

Poznámka:

Zdroje informací