Příjem událostí změn rozhraní Microsoft Graph API prostřednictvím služby Azure Event Grid
Tento článek popisuje postup přihlášení k odběru událostí publikovaných rozhraním Microsoft Graph API. Následující tabulka uvádí zdroje událostí, pro které jsou události dostupné prostřednictvím rozhraní Graph API. U většiny prostředků jsou podporovány události, které oznamují její vytvoření, aktualizaci a odstranění. Podrobné informace o prostředcích, pro které jsou vyvolány události pro zdroje událostí, naleznete v podporovaných prostředcích v oznámeních o změnách rozhraní Microsoft Graph API .
Zdroj událostí Microsoftu | Zdroje informací | Dostupné typy událostí |
---|---|---|
Microsoft Entra ID | Uživatel, skupina | Typy událostí Microsoft Entra |
Microsoft Outlook | Událost (schůzka v kalendáři), Zpráva (e-mail), Kontakt | Typy událostí Aplikace Microsoft Outlook |
Microsoft Teams | ChatMessage, CallRecord (schůzka) | Typy událostí Microsoft Teams |
OneDrive | DriveItem | Události Microsoft OneDrivu |
Microsoft SharePoint | Seznam | Události Microsoft SharePointu |
Úkoly | Úkol úkol | Události Microsoft ToDo |
Výstrahy zabezpečení | Upozornění | Události výstrah zabezpečení Microsoftu |
Tisk do cloudu | Tiskárna, definice úlohy tisku | Události Microsoft Cloud Printingu |
Konverzace Microsoftu | Konverzace | Události konverzace skupiny Microsoftu 365 |
Vytvoříte předplatné rozhraní Microsoft Graph API, které umožní toku událostí rozhraní Graph API do partnerského tématu. Partnerské téma se automaticky vytvoří za vás v rámci vytváření předplatného rozhraní Graph API. Toto téma partnera použijete k vytvoření odběrů událostí, které posílají události do některého z podporovaných obslužných rutin událostí, které nejlépe splňují vaše požadavky na zpracování událostí.
Důležité
Pokud funkci Partnerské události neznáte, podívejte se na přehled partnerských událostí.
Proč se mám přihlásit k odběru událostí ze zdrojů rozhraní Microsoft Graph API přes Event Grid?
Kromě možnosti přihlásit se k odběru událostí rozhraní Microsoft Graph API prostřednictvím Event Gridu máte další možnosti , prostřednictvím kterých můžete dostávat podobná oznámení (ne události). Pokud máte aspoň jeden z následujících požadavků, zvažte použití rozhraní Microsoft Graph API k doručování událostí do Event Gridu:
- Vyvíjíte řešení řízené událostmi, které vyžaduje události z Microsoft Entra ID, Outlooku, Teams atd. k reakci na změny prostředků. Vyžadujete robustní model řízený událostmi a možnosti publikování a odběru, které služba Event Grid poskytuje. Přehled služby Event Grid najdete v tématu Koncepty služby Event Grid.
- Službu Event Grid chcete použít ke směrování událostí do více cílů pomocí jednoho předplatného rozhraní Graph API a chcete se vyhnout správě více předplatných rozhraní Graph API.
- V závislosti na některých vlastnostech události v události musíte směrovat události do různých podřízených aplikací, webhooků nebo služeb Azure. Můžete například chtít směrovat typy událostí, například
Microsoft.Graph.UserCreated
Microsoft.Graph.UserDeleted
do specializované aplikace, která zpracovává onboarding a odpojování uživatelů. Můžete také chtít odesílatMicrosoft.Graph.UserUpdated
události do jiné aplikace, která například synchronizuje informace o kontaktech. Toho můžete dosáhnout pomocí jednoho odběru rozhraní Graph API při použití Event Gridu jako cíle oznámení. Další informace najdete v tématu Filtrování událostí a obslužné rutiny událostí. - Interoperabilita je pro vás důležitá. Události chcete směrovat a zpracovávat standardním způsobem pomocí standardu specifikace CloudEvents (Cloud Native Computing Foundation) (CNCF).
- Líbí se vám podpora rozšiřitelnosti, kterou poskytuje CloudEvents. Pokud například chcete trasovat události napříč kompatibilními systémy, použijte rozšíření CloudEvents Distributed Tracing. Přečtěte si další informace o dalších rozšířeních CloudEvents.
- Chcete použít osvědčené přístupy řízené událostmi, které obor přijal.
Povolení toku událostí rozhraní Graph API do partnerského tématu
Požádáte rozhraní Microsoft Graph API o předávání událostí do tématu partnera služby Event Grid vytvořením předplatného rozhraní Graph API pomocí sad SDK (Microsoft Graph API Software Development Kit) a postupujte podle kroků v odkazech na ukázky uvedené v této části. Informace o podpoře dostupných sad SDK najdete v podporovaných jazycích sady Microsoft Graph API SDK .
Obecné požadavky
Před implementací aplikace byste měli splnit tyto obecné požadavky, abyste mohli vytvářet a obnovovat předplatná rozhraní Microsoft Graph API:
Seznamte se s postupem vysoké úrovně pro přihlášení k odběru partnerských událostí. Jak je popsáno v tomto článku, před vytvořením předplatného rozhraní Graph API byste měli postupovat podle pokynů v tématu:
Zaregistrujte poskytovatele prostředků Event Gridu ve svém předplatném Azure.
Autorizuje rozhraní Microsoft Graph API (partner) k vytvoření tématu partnera ve vaší skupině prostředků.
Máte funkční znalosti o oznámeních rozhraní Microsoft Graph API. V rámci svého učení můžete pomocí Průzkumníka rozhraní Graph API vytvářet předplatná rozhraní Graph API.
Seznamte se s koncepty partnerských událostí.
Identifikujte prostředek rozhraní Microsoft Graph API, ze kterého chcete přijímat události změny stavu systému. Další informace najdete v tématu Oznámení o změnách rozhraní Microsoft Graph API. Pokud například chcete sledovat změny uživatelů v ID Microsoft Entra, měli byste použít prostředek uživatele . Skupina slouží ke sledování změn ve skupinách uživatelů.
Požádejte správce tenanta o tenantovi Microsoftu 365. Tenanta pro vývoj můžete zdarma získat tak, že se připojíte k programu Microsoft 365 Developer Program.
Další požadavky specifické pro programovací jazyk podle výběru a vývojové prostředí, které používáte, najdete v odkazech ukázek rozhraní Microsoft Graph API, které najdete v další části.
Důležité
Podrobné pokyny k implementaci aplikace najdete v ukázkách s podrobnými pokyny , měli byste si přečíst všechny části tohoto článku, protože obsahují další důležité informace související s předáváním událostí rozhraní Microsoft Graph API pomocí Event Gridu.
Vytvoření předplatného rozhraní Microsoft Graph API
Když vytvoříte předplatné rozhraní Graph API, vytvoří se pro vás partnerské téma. V oznámení parametru předáte následující informace a určíte, jaké téma partnera se má vytvořit a přidružit k novému předplatnému Rozhraní Graph API:
- název tématu partnera
- název skupiny prostředků, ve které se vytvoří téma partnera
- oblast (umístění)
- Předplatné Azure
Tyto ukázky kódu ukazují, jak vytvořit předplatné rozhraní Graph API. Zobrazují příklady vytvoření předplatného pro příjem událostí od všech uživatelů v tenantovi Microsoft Entra ID při jejich vytváření, aktualizaci nebo odstranění.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json
{
"changeType": "Updated,Deleted,Created",
"notificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
"lifecycleNotificationUrl": "EventGrid:?azuresubscriptionid=8A8A8A8A-4B4B-4C4C-4D4D-12E12E12E12E&resourcegroup=yourResourceGroup&partnertopic=yourPartnerTopic&location=theNameOfAzureRegionFortheTopic",
"resource": "users",
"expirationDateTime": "2024-03-31T00:00:00Z",
"clientState": "secretClientValue"
}
changeType
: Druh změn prostředků, pro které chcete přijímat události. Platné hodnoty:Updated
,Deleted
aCreated
. Můžete zadat jednu nebo více těchto hodnot oddělených čárkami.notificationUrl
: Identifikátor URI sloužící k definování tématu partnera, do kterého se události odesílají. Musí odpovídat následujícímu vzoru:EventGrid:?azuresubscriptionid=<you-azure-subscription-id>&resourcegroup=<your-resource-group-name>&partnertopic=<the-name-for-your-partner-topic>&location=<the-Azure-region-name-where-you-want-the-topic-created>
. Umístění (označované také jako oblast Azure)name
je možné získat spuštěním příkazu az account list-locations . Nepoužívejte zobrazovaný název umístění. Nepoužívejte například USA – středozápad. Místo toho použijtewestcentralus
.az account list-locations
lifecycleNotificationUrl
: Identifikátor URI sloužící k definování tématu partnera, do kteréhomicrosoft.graph.subscriptionReauthorizationRequired
se události odesílají. Tato událost signalizuje, že brzy vyprší platnost předplatného rozhraní Graph API. Identifikátor URI se řídí stejným vzorem jako notificationUrl popsaný dříve, pokud používáte Event Grid jako cíl událostí životního cyklu. V takovém případě by mělo být téma partnera stejné jako téma zadané v notificationUrl.- prostředek: prostředek, který generuje události, které oznamují změny stavu.
- expirationDateTime: čas vypršení platnosti, kdy vyprší platnost předplatného, a tok událostí se zastaví. Musí odpovídat formátu uvedenému v požadavku na změnu (RFC) 3339. Musíte zadat dobu vypršení platnosti, která je v rámci maximální povolené délky předplatného pro jednotlivé typy prostředků.
- stav klienta. Tato vlastnost je nepovinná. Používá se k ověření volání aplikace obslužné rutiny události během doručování událostí. Další informace najdete v tématu Vlastnosti předplatného rozhraní Graph API.
Důležité
Název tématu partnera musí být jedinečný ve stejné oblasti Azure. Každá kombinace ID aplikace tenanta může vytvořit až 10 jedinečných témat partnera.
Při vývoji řešení mějte na paměti určité limity služeb rozhraní Graph API.
Existující předplatná rozhraní Graph API bez
lifecycleNotificationUrl
vlastnosti neobdrží události životního cyklu. Pokud chcete přidat vlastnost lifecycleNotificationUrl, měli byste odstranit stávající předplatné a vytvořit nové předplatné určující vlastnost během vytváření předplatného.
Po vytvoření předplatného Graph API máte partnerské téma vytvořené v Azure.
Prodloužení předplatného rozhraní Microsoft Graph API
Aby se zabránilo zastavení toku událostí, musí vaše aplikace prodloužit předplatné rozhraní Graph API před vypršením jeho platnosti. Rozhraní Microsoft Graph API podporuje události oznámení o životním cyklu, ke kterým se vaše aplikace může přihlásit k odběru. V současné době podporují všechny typy prostředků microsoft.graph.subscriptionReauthorizationRequired
rozhraní Microsoft Graph API , které se odesílají, když dojde k některé z následujících podmínek:
- Platnost přístupového tokenu brzy vyprší.
- Platnost předplatného rozhraní Graph API brzy vyprší.
- Správce tenanta odvolal oprávnění aplikace ke čtení prostředku.
Pokud jste předplatné Rozhraní Graph API po vypršení platnosti neprodloužili, musíte vytvořit nové předplatné rozhraní Graph API. Můžete se podívat na stejné téma partnera, které jste použili v předplatném, jehož platnost vypršela, pokud vypršela po dobu kratší než 30 dnů. Pokud vypršela platnost předplatného rozhraní Graph API déle než 30 dnů, nemůžete znovu použít stávající téma partnera. V takovém případě musíte zadat jiný název tématu partnera. Případně můžete odstranit stávající téma partnera a vytvořit nové téma partnera se stejným názvem při vytváření předplatného rozhraní Graph API.
Obnovení předplatného rozhraní Microsoft Graph API
Po přijetí microsoft.graph.subscriptionReauthorizationRequired
události by vaše aplikace měla prodloužit předplatné rozhraní Graph API provedením těchto akcí:
Pokud jste při vytváření odběru rozhraní Graph API zadali tajný klíč klienta do vlastnosti clientState , tajný klíč klienta zahrnutý do události. Ověřte, že hodnota clientState události odpovídá hodnotě použité při vytváření odběru rozhraní Graph API.
Ujistěte se, že aplikace má platný přístupový token, abyste mohli provést další krok. Další informace najdete v následujících ukázkách s podrobnými pokyny .
Volejte některé z následujících dvou rozhraní API. Pokud volání rozhraní API proběhne úspěšně, tok oznámení změn se obnoví.
/reauthorize
Zavolejte akci, aby se předplatné znovu autorizovalo, aniž by se prodloužilo datum vypršení platnosti.POST https://graph.microsoft.com/beta/subscriptions/{id}/reauthorize
Proveďte běžnou akci pro obnovení a obnovení předplatného současně.
PATCH https://graph.microsoft.com/beta/subscriptions/{id} Content-Type: application/json { "expirationDateTime": "2024-04-30T11:00:00.0000000Z" }
Obnovení může selhat, pokud už aplikace nemá oprávnění k přístupu k prostředku. Pak může být nutné, aby aplikace získala nový přístupový token pro úspěšné opětovné ověření předplatného.
Problémy s autorizací nenahrazovat potřebu prodloužení předplatného před vypršením jeho platnosti. Životní cyklus přístupových tokenů a vypršení platnosti předplatného nejsou stejné. Platnost přístupového tokenu může vypršet před vaším předplatným. Je důležité připravit se na pravidelné opětovné ověření koncového bodu, aby se aktualizoval přístupový token. Opětovné ověření koncového bodu neprodlouží vaše předplatné. Prodloužením platnosti předplatného se ale také znovu vytvoří koncový bod.
Při obnovování nebo opětovném ověření předplatného rozhraní Graph API se stejné téma partnera zadané při vytvoření předplatného použije.
Při zadávání nové hodnoty expirationDateTime musí být od aktuálního času nejméně tři hodiny. V opačném případě může vaše aplikace brzy po obnovení dostávat microsoft.graph.subscriptionReauthorizationRequired
události.
Příklady opětovného ověření předplatného rozhraní Graph API pomocí libovolného podporovaného jazyka najdete v tématu o opětovném ověření předplatného.
Příklady obnovení a opětovného ověření předplatného rozhraní Graph API pomocí některého z podporovaných jazyků najdete v žádosti o aktualizaci předplatného.
Ukázky s podrobnými pokyny
Dokumentace k rozhraní Microsoft Graph API poskytuje ukázky kódu s pokyny pro:
- Nastavte vývojové prostředí podle konkrétních pokynů podle jazyka, který používáte. Pokyny také zahrnují, jak získat tenanta Microsoftu 365 pro účely vývoje.
- Vytvořte předplatná rozhraní Graph API. Pokud chcete předplatné prodloužit, můžete volat rozhraní Graph API pomocí fragmentů kódu v části Jak prodloužit předplatné rozhraní Graph API.
- Získejte ověřovací tokeny, které je můžete použít při volání rozhraní Microsoft Graph API.
Poznámka:
Pomocí Průzkumníka rozhraní Microsoft Graph API je možné vytvořit předplatné rozhraní Graph API. Ukázky byste měli dál používat pro další důležité aspekty vašeho řešení, jako je ověřování a příjem událostí.
Ukázky webových aplikací jsou k dispozici pro následující jazyky:
- Ukázka jazyka C#. Jedná se o aktuální ukázku, která zahrnuje vytvoření a obnovení předplatných rozhraní Graph API a provede vás některými kroky, jak povolit tok událostí.
- Ukázka Javy
- Ukázka NodeJS
Důležité
Musíte aktivovat téma partnera, které se vytvoří v rámci vytváření předplatného rozhraní Graph API. Abyste mohli přijímat události, musíte také vytvořit odběr událostí Event Gridu pro webovou aplikaci. K tomu použijete adresu URL nakonfigurovanou ve webové aplikaci k příjmu událostí jako koncový bod webhooku ve vašem odběru událostí. Další informace najdete v dalších krocích .
Důležité
Potřebujete ukázkový kód pro jiný jazyk nebo máte dotazy? Pošlete nám prosím e-mail na adresu ask-graph-and-grid@microsoft.com.
Další kroky
Podle pokynů v následujících dvou krocích dokončete nastavení pro příjem událostí rozhraní Microsoft Graph API pomocí Event Gridu:
- Aktivujte partnerské téma vytvořené v rámci vytváření rozhraní Microsoft Graph API.
- Přihlaste se k odběru událostí vytvořením odběru událostí k tématu partnera.
Další užitečné odkazy:
- Azure Event Grid – Přehled partnerských událostí
- Informace o rozhraní Microsoft Graph API
- Webhooky rozhraní Microsoft Graph API
- Osvědčené postupy pro práci s rozhraním Microsoft Graph API
- Sady SDK rozhraní Microsoft Graph API
- Kurzy k rozhraní Microsoft Graph API, které ukazují, jak používat rozhraní Graph API. Tento článek nemusí nutně obsahovat příklady pro odesílání událostí do Event Gridu.