Microsoft Graph API-wijzigingsevenementen ontvangen via Azure Event Grid
In dit artikel worden de stappen beschreven voor het abonneren op gebeurtenissen die zijn gepubliceerd door Microsoft Graph API. De volgende tabel bevat de gebeurtenisbronnen waarvoor gebeurtenissen beschikbaar zijn via Graph API. Voor de meeste resources worden gebeurtenissen die het maken, bijwerken en verwijderen aankondigen, ondersteund. Zie ondersteunde resources door wijzigingsmeldingen van Microsoft Graph API voor gedetailleerde informatie over de resources waarvoor gebeurtenissen worden gegenereerd voor gebeurtenisbronnen.
Microsoft-gebeurtenisbron | Resources | Beschikbare gebeurtenistypen |
---|---|---|
Microsoft Entra ID | Gebruiker, groep | Microsoft Entra-gebeurtenistypen |
Microsoft Outlook | Gebeurtenis (agendavergadering), Bericht (e-mail), Contactpersoon | Microsoft Outlook-gebeurtenistypen |
Microsoft Teams | ChatMessage, CallRecord (vergadering) | Microsoft Teams-gebeurtenistypen |
OneDrive | DriveItem | Microsoft OneDrive-gebeurtenissen |
Microsoft SharePoint | Lijst | Microsoft SharePoint-gebeurtenissen |
Te doen | Taak uitvoeren | Microsoft ToDo-gebeurtenissen |
Beveiligingswaarschuwingen | Alert | Gebeurtenissen van Microsoft-beveiligingswaarschuwingen |
Afdrukken in de cloud | Printer, taakdefinitie afdrukken | Microsoft Cloud Printing-gebeurtenissen |
Microsoft-gesprekken | Gesprek | Microsoft 365 Groepsgespreksevenementen |
U maakt een Microsoft Graph API-abonnement om Graph API-gebeurtenissen in staat te stellen om naar een partneronderwerp te stromen. Het partneronderwerp wordt automatisch voor u gemaakt als onderdeel van het maken van het Graph API-abonnement. U gebruikt dat partneronderwerp om gebeurtenisabonnementen te maken om uw gebeurtenissen te verzenden naar een van de ondersteunde gebeurtenis-handlers die het beste voldoen aan uw vereisten om de gebeurtenissen te verwerken.
Belangrijk
Als u niet bekend bent met de functie Partnerevenementen , raadpleegt u het overzicht van partnerevenementen.
Waarom moet ik me abonneren op gebeurtenissen van Microsoft Graph API-bronnen via Event Grid?
Naast de mogelijkheid om u te abonneren op Microsoft Graph API-gebeurtenissen via Event Grid, hebt u andere opties waarmee u vergelijkbare meldingen (niet gebeurtenissen) kunt ontvangen. Overweeg om Microsoft Graph API te gebruiken om gebeurtenissen aan Event Grid te leveren als u ten minste een van de volgende vereisten hebt:
- U ontwikkelt een gebeurtenisgestuurde oplossing die gebeurtenissen vereist van Microsoft Entra ID, Outlook, Teams, enzovoort om te reageren op resourcewijzigingen. U hebt het robuuste gebeurtenisgestuurde model nodig en de mogelijkheden voor publiceren/abonneren die Event Grid biedt. Zie Event Grid-concepten voor een overzicht van Event Grid.
- U wilt Event Grid gebruiken om gebeurtenissen naar meerdere bestemmingen te routeren met behulp van één Graph API-abonnement en u wilt voorkomen dat u meerdere Graph API-abonnementen beheert.
- U moet gebeurtenissen routeren naar verschillende downstreamtoepassingen, webhooks of Azure-services, afhankelijk van een aantal eigenschappen in de gebeurtenis. U kunt bijvoorbeeld gebeurtenistypen routeren, zoals
Microsoft.Graph.UserCreated
enMicrosoft.Graph.UserDeleted
naar een gespecialiseerde toepassing die de onboarding en off-onboarding van gebruikers verwerkt. Mogelijk wilt u ook gebeurtenissen verzendenMicrosoft.Graph.UserUpdated
naar een andere toepassing waarmee bijvoorbeeld contactgegevens worden gesynchroniseerd. U kunt dit bereiken met behulp van één Graph API-abonnement wanneer u Event Grid gebruikt als een meldingsbestemming. Zie gebeurtenisfilters en gebeurtenis-handlers voor meer informatie. - Interoperabiliteit is belangrijk voor u. U wilt gebeurtenissen op een standaard manier doorsturen en afhandelen met behulp van cloud native computing Foundation (CNCF) CloudEvents-specificatiestandaard .
- U houdt van de uitbreidbaarheidsondersteuning die CloudEvents biedt. Als u bijvoorbeeld gebeurtenissen in compatibele systemen wilt traceren, gebruikt u gedistribueerde tracering van cloudEvents-extensies. Meer informatie over meer CloudEvents-extensies.
- U wilt bewezen gebeurtenisgestuurde benaderingen gebruiken die door de branche worden gebruikt.
Graph API-gebeurtenissen inschakelen om naar uw partneronderwerp te stromen
U vraagt Microsoft Graph API om gebeurtenissen door te sturen naar een Event Grid-partneronderwerp door een Graph API-abonnement te maken met behulp van de Microsoft Graph API Software Development Kits (SDK's) en de stappen in de koppelingen naar voorbeelden in deze sectie te volgen. Zie Ondersteunde talen voor Microsoft Graph API SDK voor beschikbare SDK-ondersteuning.
Algemene vereisten
U moet aan deze algemene vereisten voldoen voordat u uw toepassing implementeert om Microsoft Graph API-abonnementen te maken en te verlengen:
Raak vertrouwd met de stappen op hoog niveau om u te abonneren op partnergebeurtenissen. Zoals beschreven in dat artikel, moet u voordat u een Graph API-abonnement maakt, de instructies volgen in:
Registreer de Event Grid-resourceprovider bij uw Azure-abonnement.
Autoriseer Microsoft Graph API (partner) om een partneronderwerp in uw resourcegroep te maken.
Werk goed op de hoogte van Microsoft Graph API-meldingen. Als onderdeel van uw training kunt u Graph API Explorer gebruiken om Graph API-abonnementen te maken.
Concepten van partnerevenementen begrijpen.
Identificeer de Microsoft Graph API-resource van waaruit u gebeurtenissen voor systeemstatuswijziging wilt ontvangen. Zie Wijzigingsmeldingen voor Microsoft Graph API voor meer informatie. Voor het bijhouden van wijzigingen aan gebruikers in Microsoft Entra ID moet u bijvoorbeeld de gebruikersresource gebruiken. Gebruik de groep voor het bijhouden van wijzigingen in gebruikersgroepen.
Een tenantbeheerdersaccount hebben voor een Microsoft 365-tenant. U kunt gratis een ontwikkeltenant krijgen door deel te nemen aan het Microsoft 365 Developer Program.
U vindt andere vereisten die specifiek zijn voor de programmeertaal van keuze en de ontwikkelomgeving die u gebruikt in de koppelingen naar Microsoft Graph API-voorbeelden die in een volgende sectie worden gevonden.
Belangrijk
Hoewel gedetailleerde instructies voor het implementeren van uw toepassing worden gevonden in de voorbeelden met gedetailleerde instructies , moet u alle secties in dit artikel lezen omdat deze aanvullende, belangrijke informatie bevatten met betrekking tot het doorsturen van Microsoft Graph API-gebeurtenissen met behulp van Event Grid.
Een Microsoft Graph API-abonnement maken
Wanneer u een Graph API-abonnement maakt, wordt er een partneronderwerp voor u gemaakt. U geeft de volgende informatie door in parameter notificationUrl om op te geven welk partneronderwerp moet worden gemaakt en gekoppeld aan het nieuwe Graph API-abonnement:
- naam van partneronderwerp
- resourcegroepnaam waarin het partneronderwerp wordt gemaakt
- regio (locatie)
- Azure-abonnement
Deze codevoorbeelden laten zien hoe u een Graph API-abonnement maakt. Ze tonen voorbeelden voor het maken van een abonnement voor het ontvangen van gebeurtenissen van alle gebruikers in een Microsoft Entra ID-tenant wanneer ze worden gemaakt, bijgewerkt of verwijderd.
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
: het soort resourcewijzigingen waarvoor u gebeurtenissen wilt ontvangen. Geldige waarden:Updated
,Deleted
enCreated
. U kunt een of meer van deze waarden opgeven, gescheiden door komma's.notificationUrl
: een URI die wordt gebruikt om het partneronderwerp te definiëren waarnaar gebeurtenissen worden verzonden. Het moet voldoen aan het volgende patroon: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>
. De locatie (ook wel Azure-regio genoemd)name
kan worden verkregen door de opdracht az account list-locations uit te voeren. Gebruik geen weergavenaam voor de locatie. Gebruik bijvoorbeeld VS - west-centraal niet. Gebruik in plaats daarvanwestcentralus
.az account list-locations
lifecycleNotificationUrl
: een URI die wordt gebruikt om het partneronderwerp te definiëren waarnaarmicrosoft.graph.subscriptionReauthorizationRequired
gebeurtenissen worden verzonden. Deze gebeurtenis geeft uw toepassing aan dat het Graph API-abonnement binnenkort verloopt. De URI volgt hetzelfde patroon als notificationUrl dat eerder is beschreven als het gebruik van Event Grid als bestemming voor levenscyclus-gebeurtenissen. In dat geval moet het partneronderwerp hetzelfde zijn als het onderwerp dat is opgegeven in notificationUrl.- resource: de resource waarmee gebeurtenissen worden gegenereerd die statuswijzigingen aankondigen.
- expirationDateTime: de vervaldatum waarop het abonnement verloopt en de stroom van gebeurtenissen stopt. Deze moet voldoen aan de indeling die is opgegeven in RfC (Request for Change) 3339. U moet een verlooptijd opgeven die binnen de maximale toegestane abonnementslengte per resourcetype valt.
- clientstatus. Deze eigenschap is optioneel. Deze wordt gebruikt voor verificatie van aanroepen naar uw gebeurtenis-handlertoepassing tijdens de levering van gebeurtenissen. Zie de eigenschappen van het Graph API-abonnement voor meer informatie.
Belangrijk
De naam van het partneronderwerp moet uniek zijn binnen dezelfde Azure-regio. Elke combinatie van tenanttoepassings-id's kan maximaal 10 unieke partneronderwerpen maken.
Houd rekening met de servicelimieten van bepaalde Graph API-resources bij het ontwikkelen van uw oplossing.
Bestaande Graph API-abonnementen zonder een
lifecycleNotificationUrl
eigenschap ontvangen geen levenscyclus-gebeurtenissen. Als u de eigenschap lifecycleNotificationUrl wilt toevoegen, moet u het bestaande abonnement verwijderen en een nieuw abonnement maken waarin de eigenschap wordt opgegeven tijdens het maken van het abonnement.
Nadat u een Graph API-abonnement hebt gemaakt, hebt u een partneronderwerp gemaakt in Azure.
Een Microsoft Graph API-abonnement verlengen
Uw toepassing moet het Graph API-abonnement verlengen voordat het verloopt om te voorkomen dat de stroom van gebeurtenissen wordt gestopt. Microsoft Graph API biedt ondersteuning voor gebeurtenissen voor levenscyclusmeldingen waarop uw toepassing zich kan abonneren om het verlengingsproces te automatiseren. Op dit moment ondersteunen alle typen Microsoft Graph API-resources de microsoft.graph.subscriptionReauthorizationRequired
, die wordt verzonden wanneer een van de volgende voorwaarden zich voordoet:
- Het toegangstoken staat op het punt om te verlopen.
- Het Graph API-abonnement staat op het punt om te verlopen.
- Een tenantbeheerder heeft de machtigingen van uw app ingetrokken om een resource te lezen.
Als u uw Graph API-abonnement niet hebt verlengd nadat het is verlopen, moet u een nieuw Graph API-abonnement maken. U kunt verwijzen naar hetzelfde partneronderwerp dat u hebt gebruikt in uw verlopen abonnement zolang het gedurende minder dan 30 dagen is verlopen. Als het Graph API-abonnement langer dan 30 dagen is verlopen, kunt u uw bestaande partneronderwerp niet opnieuw gebruiken. In dit geval moet u een andere partneronderwerpnaam opgeven. U kunt ook het bestaande partneronderwerp verwijderen om een nieuw partneronderwerp te maken met dezelfde naam tijdens het maken van het Graph API-abonnement.
Een Microsoft Graph API-abonnement verlengen
Wanneer u een microsoft.graph.subscriptionReauthorizationRequired
gebeurtenis ontvangt, moet uw toepassing het Graph API-abonnement verlengen door deze acties uit te voeren:
Als u een clientgeheim hebt opgegeven in de eigenschap clientState toen u het Graph API-abonnement maakte, is dat clientgeheim opgenomen in de gebeurtenis. Controleer of de clientState van de gebeurtenis overeenkomt met de waarde die is gebruikt bij het maken van het Graph API-abonnement.
Zorg ervoor dat de app een geldig toegangstoken heeft om de volgende stap uit te voeren. Meer informatie vindt u in de komende voorbeelden met gedetailleerde instructies .
Roep een van de volgende twee API's aan. Als de API-aanroep slaagt, wordt de wijzigingsmeldingsstroom hervat.
Roep de
/reauthorize
actie aan om het abonnement opnieuw te autoriseren zonder de vervaldatum ervan uit te breiden.POST https://graph.microsoft.com/beta/subscriptions/{id}/reauthorize
Voer een reguliere actie 'verlengen' uit om het abonnement op hetzelfde moment opnieuw te autoriseren en te verlengen.
PATCH https://graph.microsoft.com/beta/subscriptions/{id} Content-Type: application/json { "expirationDateTime": "2024-04-30T11:00:00.0000000Z" }
Vernieuwen kan mislukken als de app niet langer gemachtigd is voor toegang tot de resource. Het kan vervolgens nodig zijn voor de app om een nieuw toegangstoken te verkrijgen om een abonnement opnieuw te autoriseren.
Autorisatieproblemen vervangen niet de noodzaak om een abonnement te verlengen voordat het verloopt. De levenscyclus van toegangstokens en het verlopen van abonnementen zijn niet hetzelfde. Uw toegangstoken verloopt mogelijk voordat uw abonnement verloopt. Het is belangrijk dat u voorbereid bent om uw eindpunt regelmatig opnieuw te autoriseren om uw toegangstoken te vernieuwen. Als u uw eindpunt opnieuw controleert, wordt uw abonnement niet verlengd. Als u uw abonnement verlengt, wordt uw eindpunt echter ook opnieuw geverifieerd.
Bij het verlengen en/of opnieuw autoriseren van uw Graph API-abonnement wordt hetzelfde partneronderwerp opgegeven toen het abonnement werd gemaakt, gebruikt.
Wanneer u een nieuwe expirationDateTime opgeeft, moet deze ten minste drie uur vanaf de huidige tijd zijn. Anders ontvangt microsoft.graph.subscriptionReauthorizationRequired
uw toepassing mogelijk gebeurtenissen kort na verlenging.
Zie de aanvraag voor opnieuwauthoriseren van uw Graph API-abonnement met behulp van een van de ondersteunde talen voor voorbeelden van het opnieuw autoriseren van abonnementen.
Zie Abonnementsaanvraag bijwerken voor voorbeelden over het verlengen en opnieuw autoriseren van uw Graph API-abonnement met behulp van een van de ondersteunde talen.
Voorbeelden met gedetailleerde instructies
Microsoft Graph API-documentatie bevat codevoorbeelden met instructies voor:
- Stel uw ontwikkelomgeving in met specifieke instructies op basis van de taal die u gebruikt. Instructies omvatten ook het verkrijgen van een Microsoft 365-tenant voor ontwikkelingsdoeleinden.
- Maak een Graph API-abonnement. Als u een abonnement wilt verlengen, kunt u de Graph API aanroepen met behulp van de codefragmenten in Het verlengen van een Graph API-abonnement.
- Haal verificatietokens op om deze te gebruiken bij het aanroepen van Microsoft Graph API.
Notitie
Het is mogelijk om uw Graph API-abonnement te maken met behulp van de Microsoft Graph API Explorer. U moet de voorbeelden nog steeds gebruiken voor andere belangrijke aspecten van uw oplossing, zoals verificatie en ontvangst van gebeurtenissen.
Voorbeelden van webtoepassingen zijn beschikbaar voor de volgende talen:
- C#-voorbeeld. Het is een up-to-date voorbeeld met informatie over het maken en verlengen van Graph API-abonnementen en begeleidt u bij een aantal stappen om de stroom van gebeurtenissen in te schakelen.
- Java-voorbeeld
- NodeJS-voorbeeld.
Belangrijk
U moet het partneronderwerp activeren dat is gemaakt als onderdeel van het maken van uw Graph API-abonnement. U moet ook een Event Grid-gebeurtenisabonnement maken voor uw webtoepassing om gebeurtenissen te ontvangen. Hiervoor gebruikt u de URL die is geconfigureerd in uw webtoepassing om gebeurtenissen te ontvangen als een webhookeindpunt in uw gebeurtenisabonnement. Volgende stappen voor meer informatie.
Belangrijk
Hebt u voorbeeldcode nodig voor een andere taal of hebt u vragen? Stuur ons een e-mail naar ask-graph-and-grid@microsoft.com.
Volgende stappen
Volg de instructies in de volgende twee stappen om de configuratie te voltooien voor het ontvangen van Microsoft Graph API-gebeurtenissen met behulp van Event Grid:
- Activeer het partneronderwerp dat is gemaakt als onderdeel van het maken van de Microsoft Graph API.
- Abonneer u op gebeurtenissen door een gebeurtenisabonnement te maken op uw partneronderwerp.
Andere nuttige koppelingen:
- Overzicht van Azure Event Grid - Partnergebeurtenissen
- Informatie over Microsoft Graph API.
- Microsoft Graph API-webhooks
- Aanbevolen procedures voor het werken met Microsoft Graph API
- SDK's voor Microsoft Graph API
- Microsoft Graph API-zelfstudies, waarin wordt getoond hoe u Graph API gebruikt. Dit artikel bevat niet noodzakelijkerwijs voorbeelden voor het verzenden van gebeurtenissen naar Event Grid.