Azure Event Grid aracılığıyla Microsoft Graph API değişiklik olaylarını alma
Bu makalede, Microsoft Graph API tarafından yayımlanan olaylara abone olma adımları açıklanmaktadır. Aşağıdaki tabloda, Graph API aracılığıyla olayların kullanılabildiği olay kaynakları listelenir. Çoğu kaynak için, oluşturulması, güncelleştirilip silinmesini duyuran olaylar desteklenir. Olay kaynakları için olayların oluşturulduğu kaynaklar hakkında ayrıntılı bilgi için bkz . Microsoft Graph API değişiklik bildirimleri tarafından desteklenen kaynaklar.
Microsoft olay kaynağı | Kaynaklar | Kullanılabilir olay türleri |
---|---|---|
Microsoft Entra Kimlik | Kullanıcı, Grup | Microsoft Entra olay türleri |
Microsoft Outlook | Olay (takvim toplantısı), İleti (e-posta), Kişi | Microsoft Outlook olay türleri |
Microsoft Teams | ChatMessage, CallRecord (toplantı) | Microsoft Teams olay türleri |
OneDrive | DriveItem | Microsoft OneDrive olayları |
Microsoft SharePoint | Liste | Microsoft SharePoint olayları |
Yapılacaklar | Yapılacak Görev | Microsoft ToDo olayları |
Güvenlik uyarıları | Alert | Microsoft Güvenlik Uyarısı olayları |
Bulut yazdırma | Yazıcı, Yazdırma Görevi Tanımı | Microsoft Bulut Yazdırma olayları |
Microsoft Konuşmaları | Konuşma | Microsoft 365 Grup Konuşması olayları |
Graph API olaylarının bir iş ortağı konusuna akmasını sağlamak için bir Microsoft Graph API aboneliği oluşturursunuz. İş ortağı konusu, Graph API aboneliği oluşturma işleminin bir parçası olarak sizin için otomatik olarak oluşturulur. Olaylarınızı, olayları işlemek için gereksinimlerinizi en iyi karşılayan desteklenen olay işleyicilerinden herhangi birine göndermek üzere olay abonelikleri oluşturmak için bu iş ortağı konusunu kullanırsınız.
Önemli
İş Ortağı Olayları özelliğini bilmiyorsanız bkz. İş Ortağı Olaylarına genel bakış.
Event Grid aracılığıyla Neden Microsoft Graph API kaynaklarından olaylara abone yapmalıyım?
Event Grid aracılığıyla Microsoft Graph API olaylarına abone olma özelliğinin yanı sıra, benzer bildirimleri (olayları değil) alabileceğiniz başka seçenekleriniz de vardır. Aşağıdaki gereksinimlerden en az birine sahipseniz Olayları Event Grid'e teslim etmek için Microsoft Graph API'sini kullanmayı göz önünde bulundurun:
- Kaynak değişikliklerine tepki vermek için Microsoft Entra ID, Outlook, Teams vb. olaylarını gerektiren olay odaklı bir çözüm geliştirıyorsunuz. Event Grid'in sağladığı güçlü olay temelli model ve yayımlama-abone olma özelliklerine ihtiyacınız vardır. Event Grid'e genel bakış için bkz . Event Grid kavramları.
- Tek bir Graph API aboneliği kullanarak olayları birden çok hedefe yönlendirmek için Event Grid kullanmak ve birden çok Graph API aboneliğini yönetmekten kaçınmak istiyorsunuz.
- Olaydaki bazı özelliklere bağlı olarak olayları farklı aşağı akış uygulamalarına, web kancalarına veya Azure hizmetlerine yönlendirmeniz gerekir. Örneğin, ve gibi
Microsoft.Graph.UserCreated
olay türlerini kullanıcıların ekleme veMicrosoft.Graph.UserDeleted
çıkarma işlemlerini işleyen özel bir uygulamaya yönlendirmek isteyebilirsiniz. Örneğin, kişi bilgilerini eşitleyen başka bir uygulamaya da olay göndermekMicrosoft.Graph.UserUpdated
isteyebilirsiniz. Event Grid'i bildirim hedefi olarak kullanırken tek bir Graph API aboneliği kullanarak bunu başarabilirsiniz. Daha fazla bilgi için bkz . olay filtreleme ve olay işleyicileri. - Birlikte çalışabilirlik sizin için önemlidir. Cloud Native Computing Foundation (CNCF) CloudEvents belirtimi standardını kullanarak olayları standart bir şekilde iletmek ve işlemek istiyorsunuz.
- CloudEvents'in sağladığı genişletilebilirlik desteğini seviyorsunuz. Örneğin, olayları uyumlu sistemlerde izlemek istiyorsanız CloudEvents Uzantısı Dağıtılmış İzleme'yi kullanın. Daha fazla CloudEvents uzantısı hakkında daha fazla bilgi edinin.
- Sektör tarafından benimsenen kanıtlanmış olay odaklı yaklaşımları kullanmak istiyorsunuz.
Graph API olaylarının iş ortağı konunuza akışını etkinleştirme
Microsoft Graph API Yazılım Geliştirme Setleri'ni (SDK' lar) kullanarak bir Graph API aboneliği oluşturarak ve bu bölümde sağlanan örneklerin bağlantılarındaki adımları izleyerek Microsoft Graph API'sinin olayları event Grid iş ortağı konusuna iletmesini istiyorsunuz. Kullanılabilir SDK desteği için bkz . Microsoft Graph API SDK'sı için desteklenen diller.
Genel önkoşullar
Microsoft Graph API aboneliklerini oluşturmak ve yenilemek için uygulamanızı uygulamadan önce şu genel önkoşulları karşılamanız gerekir:
İş ortağı olaylarına abone olmak için üst düzey adımlar hakkında bilgi sahibi olun. Bu makalede açıklandığı gibi, Graph API aboneliği oluşturmadan önce aşağıdaki yönergeleri izlemeniz gerekir:
Event Grid kaynak sağlayıcısını Azure aboneliğinize kaydedin.
Microsoft Graph API'sini (iş ortağı) kaynak grubunuzda iş ortağı konusu oluşturma yetkisi verin.
Microsoft Graph API bildirimleri hakkında bilgi sahibi olun. Öğrenmenizin bir parçası olarak Graph API'si abonelikleri oluşturmak için Graph API Gezgini'ni kullanabilirsiniz.
İş Ortağı Olayları kavramlarını anlama.
Sistem durumu değişiklik olaylarını almak istediğiniz Microsoft Graph API kaynağını belirleyin. Daha fazla bilgi için bkz . Microsoft Graph API değişiklik bildirimleri. Örneğin, Microsoft Entra Id'de kullanıcılarda yapılan değişiklikleri izlemek için kullanıcı kaynağını kullanmanız gerekir. Kullanıcı gruplarında yapılan değişiklikleri izlemek için grubu kullanın.
Bir Microsoft 365 kiracısı üzerinde kiracı yöneticisi hesabına sahip olun. Microsoft 365 Geliştirici Programı'na katılarak ücretsiz bir geliştirme kiracısı alabilirsiniz.
Seçtiğiniz programlama diline ve kullandığınız geliştirme ortamına özgü diğer önkoşulları, gelecek bölümde bulunan Microsoft Graph API örnekleri bağlantılarında bulabilirsiniz.
Önemli
Uygulamanızı uygulamaya yönelik ayrıntılı yönergeler ayrıntılı yönergeler içeren örneklerde bulunurken, Event Grid kullanarak Microsoft Graph API olaylarını iletmeyle ilgili ek, önemli bilgiler içerdiğinden bu makaledeki tüm bölümleri okumanız gerekir.
Microsoft Graph API aboneliği oluşturma
Graph API aboneliği oluşturduğunuzda, sizin için bir iş ortağı konusu oluşturulur. Yeni Graph API aboneliğinin oluşturulacağı ve ilişkilendirileceği iş ortağı konusunu belirtmek için notificationUrl parametresine aşağıdaki bilgileri geçirirsiniz:
- iş ortağı konu adı
- iş ortağı konusunun oluşturulduğu kaynak grubu adı
- bölge (konum)
- Azure aboneliği
Bu kod örnekleri, Graph API aboneliğinin nasıl oluşturulacağını gösterir. Microsoft Entra ID kiracısında oluşturulan, güncelleştirilen veya silinen tüm kullanıcılardan olay almak için abonelik oluşturmaya yönelik örnekler gösterir.
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
: olaylarını almak istediğiniz kaynak türü değişir. Geçerli değerler:Updated
,Deleted
veCreated
. Bu değerlerden birini veya daha fazlasını virgülle ayırarak belirtebilirsiniz.notificationUrl
: olayların gönderildiği iş ortağı konusunu tanımlamak için kullanılan bir URI. Aşağıdaki desene uygun olmalıdır: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>
. Konum (Azure bölgesi olarak da bilinir)name
az account list-locations komutu yürütülerek elde edilebilir. Konum görünen adı kullanmayın. Örneğin Orta Batı ABD kullanmayın. Bunun yerinewestcentralus
kullanın.az account list-locations
lifecycleNotificationUrl
: olayların gönderildiği iş ortağı konusunu tanımlamak içinmicrosoft.graph.subscriptionReauthorizationRequired
kullanılan bir URI. Bu olay, uygulamanıza Graph API aboneliğinin süresinin yakında dolduğunu bildirir. URI, event grid'i yaşam döngüsü olaylarının hedefi olarak kullanıyorsa daha önce açıklanan notificationUrl ile aynı deseni izler. Bu durumda, iş ortağı konusu notificationUrl'da belirtilen konu ile aynı olmalıdır.- resource: Durum değişikliklerini duyuran olaylar oluşturan kaynak.
- expirationDateTime: Aboneliğin sona erme zamanı ve olayların akışı durduruluyor. Değişiklik İsteği (RFC) 3339'da belirtilen biçime uygun olmalıdır. Kaynak türü başına izin verilen abonelik uzunluğu üst sınırı içinde bir süre sonu belirtmelisiniz.
- istemci durumu. Bu özellik isteğe bağlıdır. Olay teslimi sırasında olay işleyicisi uygulamanıza yapılan çağrıların doğrulanması için kullanılır. Daha fazla bilgi için bkz . Graph API aboneliği özellikleri.
Önemli
İş ortağı konu adı aynı Azure bölgesinde benzersiz olmalıdır. Her kiracı-uygulama kimliği bileşimi en fazla 10 benzersiz iş ortağı konusu oluşturabilir.
Çözümünüzü geliştirirken belirli Graph API kaynaklarının hizmet sınırlarına dikkat edin.
Özelliği olmayan
lifecycleNotificationUrl
mevcut Graph API abonelikleri yaşam döngüsü olaylarını almaz. lifecycleNotificationUrl özelliğini eklemek için mevcut aboneliği silmeniz ve abonelik oluşturma sırasında özelliği belirten yeni bir abonelik oluşturmanız gerekir.
Graph API aboneliği oluşturduktan sonra Azure'da oluşturulmuş bir iş ortağı konusuna sahipsiniz.
Microsoft Graph API aboneliğini yenileme
Olay akışını durdurmaktan kaçınmak için uygulamanızın süresi dolmadan önce Graph API aboneliğini yenilemesi gerekir. Microsoft Graph API, yenileme işlemini otomatikleştirmenize yardımcı olmak için uygulamanızın abone olabileceği yaşam döngüsü bildirimleri olaylarını destekler. Şu anda tüm Microsoft Graph API kaynakları türü, aşağıdaki koşullardan herhangi biri oluştuğunda gönderilen öğesini destekler microsoft.graph.subscriptionReauthorizationRequired
:
- Erişim belirtecinin süresi dolmak üzere.
- Graph API aboneliğinin süresi dolmak üzere.
- Kiracı yöneticisi, uygulamanızın kaynak okuma izinlerini iptal etti.
Süresi dolduktan sonra Graph API aboneliğinizi yenilemediyseniz yeni bir Graph API aboneliği oluşturmanız gerekir. Süresi 30 günden kısa olduğu sürece süresi dolan aboneliğinizde kullandığınız iş ortağı konusuna başvurabilirsiniz. Graph API aboneliğinin süresi 30 günden uzun süre dolduysa mevcut iş ortağı konunuzu yeniden kullanamazsınız. Bu durumda, başka bir iş ortağı konu adı belirtmeniz gerekir. Alternatif olarak, Graph API aboneliği oluşturma sırasında aynı ada sahip yeni bir iş ortağı konusu oluşturmak için mevcut iş ortağı konusunu silebilirsiniz.
Microsoft Graph API aboneliğini yenileme
Bir microsoft.graph.subscriptionReauthorizationRequired
olay aldıktan sonra uygulamanız şu eylemleri gerçekleştirerek Graph API aboneliğini yenilemelidir:
Graph API aboneliğini oluştururken clientState özelliğinde bir istemci gizli dizisi sağladıysanız, içindeki bu istemci gizli dizisi olaya dahil edilir. Olayın clientState değerinin Graph API aboneliğini oluştururken kullanılan değerle eşleşdiğini doğrulayın.
Uygulamanın bir sonraki adıma geçmek için geçerli bir erişim belirtecine sahip olduğundan emin olun. Ayrıntılı yönergeler bölümüyle birlikte gelecek örneklerde daha fazla bilgi sağlanmıştır.
Aşağıdaki iki API'den birini çağırın. API çağrısı başarılı olursa değişiklik bildirimi akışı devam eder.
Aboneliği son
/reauthorize
kullanma tarihini uzatmadan yeniden yetkilendirmek için eylemi çağırın.POST https://graph.microsoft.com/beta/subscriptions/{id}/reauthorize
Aboneliği aynı anda yeniden yetkilendirmek ve yenilemek için düzenli bir "yenileme" eylemi gerçekleştirin.
PATCH https://graph.microsoft.com/beta/subscriptions/{id} Content-Type: application/json { "expirationDateTime": "2024-04-30T11:00:00.0000000Z" }
Uygulama artık kaynağa erişim yetkisine sahip değilse yenileme başarısız olabilir. Daha sonra uygulamanın bir aboneliği başarıyla yeniden yetkilendirmesi için yeni bir erişim belirteci alması gerekebilir.
Yetkilendirme sınamaları, süresi dolmadan önce aboneliği yenileme gereksiniminin yerini değiştirmez. Erişim belirteçlerinin yaşam döngüleri ve abonelik süre sonu aynı değildir. Erişim belirtecinizin süresi aboneliğinizden önce dolabilir. Erişim belirtecinizi yenilemek için uç noktanızı düzenli olarak yeniden yetkilendirmeye hazırlıklı olmak önemlidir. Uç noktanızı yeniden yetkilendirmek aboneliğinizi yenilemez. Ancak aboneliğinizi yenilemek de uç noktanızı yeniden yetkilendirir.
Graph API aboneliğinizi yeniler ve/veya yeniden yetkilendirirken, abonelik oluşturulurken belirtilen iş ortağı konusu kullanılır.
Yeni bir expirationDateTime belirtirken, geçerli saatten itibaren en az üç saat olmalıdır. Aksi takdirde, uygulamanız yenilemeden hemen sonra olayları alabilir microsoft.graph.subscriptionReauthorizationRequired
.
Desteklenen dillerden herhangi birini kullanarak Graph API aboneliğinizi yeniden yetkilendirme hakkında örnekler için bkz . Aboneliği yeniden yetkilendirme isteği.
Desteklenen dillerden birini kullanarak Graph API aboneliğinizi yenileme ve yeniden yetkilendirme hakkında örnekler için bkz . abonelik isteğini güncelleştirme..
Ayrıntılı yönergeler içeren örnekler
Microsoft Graph API belgeleri, şu yönergeleri içeren kod örnekleri sağlar:
- Kullandığınız dile göre belirli yönergelerle geliştirme ortamınızı ayarlayın. Yönergeler, geliştirme amacıyla Bir Microsoft 365 kiracısı edinmeyi de içerir.
- Graph API abonelikleri oluşturun. Aboneliği yenilemek için Graph API aboneliğini yenileme bölümündeki kod parçacıklarını kullanarak Graph API'sini çağırabilirsiniz.
- Microsoft Graph API'sini çağırırken kullanmak için kimlik doğrulama belirteçlerini alın.
Not
Microsoft Graph API Gezgini'ni kullanarak Graph API aboneliğinizi oluşturabilirsiniz. Yine de kimlik doğrulaması ve alma olayları gibi çözümünüzün diğer önemli yönleri için örnekleri kullanmanız gerekir.
Web uygulaması örnekleri aşağıdaki diller için kullanılabilir:
- C# örneği. Graph API aboneliklerini oluşturma ve yenilemeyi içeren ve olay akışını etkinleştirme adımlarından bazılarında size yol gösteren güncel bir örnektir.
- Java örneği
- NodeJS örneği.
Önemli
Graph API aboneliği oluşturma işleminizin bir parçası olarak oluşturulan iş ortağı konunuzu etkinleştirmeniz gerekir. Ayrıca, olayları almak için web uygulamanıza bir Event Grid olay aboneliği oluşturmanız gerekir. Bu amaçla, olayları olay aboneliğinizde web kancası uç noktası olarak almak için web uygulamanızda yapılandırılan URL'yi kullanırsınız. Daha fazla bilgi için sonraki adımlar .
Önemli
Başka bir dil için örnek koda mı ihtiyacınız var yoksa sorularınız mı var? Lütfen adresinden bize ask-graph-and-grid@microsoft.come-posta gönderin.
Sonraki adımlar
Event Grid kullanarak Microsoft Graph API olaylarını alma kurulumunu tamamlamak için aşağıdaki iki adımda yer alan yönergeleri izleyin:
- Microsoft Graph API oluşturma işleminin bir parçası olarak oluşturulan iş ortağı konusunu etkinleştirin.
- İş ortağı konunuza bir olay aboneliği oluşturarak olaylara abone olun.
Diğer yararlı bağlantılar:
- Azure Event Grid - İş Ortağı Olaylarına genel bakış
- Microsoft Graph API'sinde bilgiler.
- Microsoft Graph API web kancaları
- Microsoft Graph API ile çalışmak için en iyi yöntemler
- Microsoft Graph API SDK'ları
- Graph API'sini kullanmayı gösteren Microsoft Graph API öğreticileri. Bu makale, Event Grid'e olay göndermeye yönelik örnekler içermesi şart değildir.