ozztech_logo_white

OAuth 2.0 in Azure API + C# Office 365 SMTP Mail Gönderimi

OAuth 2.0, yetkili kullanıcı ile Azure üzerinde API işlemleri yapmamızı sağlayan bir protokoldür. Azure üzerinde bulunan kaynaklara özel izinler vermemize olanak sağlar. OAuth, HTTP üzerinde çalışacak şekilde tasarlanmıştır bu sayede istemci (API üzerinden istekte bulunan uygulamalar, geliştiriciler) ile kaynak sahibine (Azure yöneticisi) ait roller bu protokol üzerinden rahatlıkla ayrılabilir şekildedir. İstemciler Azure API üzerinden Azure’da barındırılan uygulamalara erişim isteği gönderir, istek gönderen istemci daha önceden kaynak yöneticisi tarafından yetkilendirildiyse yapmış olduğu isteğe karşılık olarak API’den bir Token (Erişim Belirteci) alır ve bu Token’ı kullanarak Azure üzerinde barındırılan uygulamalara erişebilir.

Bu makalemizde Office 365 kullanıcıları için SMTP protokolüne bağlanmak ve e-posta gönderme işlemi yapabilmek için OAuth kimlik doğrulamasını nasıl kullanacağımızı öğreneceğiz.

Uygulamalarımızın Office 365’e bağlanması ve başarılı bir şekilde istekte bulunabilmesi için aşağıdaki adımların izlenmesi gerekir:

  1. Azure Token sunucusundan istekte bulunacağınız uygulamaya ait bir token alın.
  2. İstekte bulunacağınız uygulamalara yapacağınız istekleri aldığınız token ile doğrulayın.

Bazı izin kapsamı dizeleri;

Protokolİzin Kapsamı Dizesi
IMAPhttps://outlook.office.com/IMAP.AccessAsUser.All
POPhttps://outlook.office.com/POP.AccessAsUser.All
SMTP YETKİLENDİRMEhttps://outlook.office.com/SMTP.Send

Table 1- İzin Kapsamları

Ayrıca offline_access kapsamı için istekte bulunabilirsiniz . Bir kullanıcı offline_access kapsamını onayladığında, uygulamanız Microsoft kimlik platformu belirteç uç noktasından yenileme belirteçleri alabilir. Yenileme belirteçleri uzun ömürlüdür. Uygulamanız, eski erişim belirteçlerinin süresi doldukça yeni erişim belirteçleri alabilir.

SMTP Mail Gönderimi için Azure Yetkilendirmeleri

  1. Azure Portal üzerinden istekte bulunacağımız uygulamamızı açıyoruz.
Azure APP Registration Panel
Azure APP Registration Panel
Azure APP Panel
Azure APP Panel
  1. Sol taraftaki menüden API permissions menüsüne tıklıyoruz.
Azure API Permission Panel
Azure API Permission Panel
  1. Açılan yetkilendirme sayfasında uygulamamıza aşağıdaki yetkileri veriyoruz.
Azure API Permission Panel 2
Azure API Permission Panel 2

Yukarıdaki işlemlerden sonra uygulamamıza SMTP.Send istekleri gönderebileceğiz.

Azure’dan C# ile SMTP.Send Token’ı Almak

Azure’dan C# ile SMTP.Send Token’ı Almak
Azure’dan C# ile SMTP.Send Token’ı Almak

Clientid : İstekte bulunacağınız uygulamaya ait Client Id veya Application Id

Tenantid: İstekte bulunacağınız uygulamaya ait Tenant Id

Mailadresi: SMTP Send işlemi için O365’te tanımlı mail adresi.

Şifre: SMTP Send işlemi için O365’te tanımlı mail adresine ait şifre.

Client id ve Tenant Id değerlerimizi Azure Portal üzerinden Home > Registrations > İlgili Uygulamanız > Overview içerisinde Essentials kısmında bulabilirsiniz.

Yukarıdaki kodu çalıştırdığımızda bilgilerimizin doğru olması durumunda result olarak JWT tipinde bir token almış oluruz. Bu token Azure Token sunucusu tarafından üretilir ve SMTP.Send işlemlerimizde kullanabiliriz.

JWT ile Mail Gönderimi C# Kodu

JWT ile Mail Gönderimi C# Kodu
JWT ile Mail Gönderimi C# Kodu

Yukarıdaki kod çalıştırıldığında ,

  • GetAccessToken metot’u çalışarak girmiş olduğumuz ClientId, TenantId, MailAdresi ve Şifre bilgilerini kullanarak bir token alır
  • Token değeri SendMail metot’una aktarılır.
  • Aldığımız token Mail Kit eklentisi ile SaslMechanismOAuth2 servisi kullanılarak oaut2 elde edilir.
  • Alınan oauth2 token bilgisi SMTP.Send izin kapsamında Authentication işlemi için kullanılır ve mail gönderimi gerçekleştirilir.

İlginizi Çekebilecek Makaleler​

Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »
.OrianaLOG Nedir?

.OrianaLOG Nedir? ve Ne işe Yarar?  .OrianaLOG bir sistem veya uygulamanın çalışması sırasında oluşan log (kayıt) dosyalarının toplanması, depolanması, analiz edilmesi ve incelenmesine olanak sağlayan bir

Devamı »