Microsoft kimlik platformu için uygulama türleri

Microsoft kimlik platformu, hepsi endüstri standardı OAuth 2.0 veya OpenID Bağlan temel alınarak çeşitli modern uygulama mimarileri için kimlik doğrulamasını destekler. Bu makalede, tercih ettiğiniz dilden veya platformdan bağımsız olarak Microsoft kimlik platformu kullanarak oluşturabileceğiniz uygulama türleri açıklanmaktadır. Bilgiler, uygulama senaryolarında kodla çalışmaya başlamadan önce üst düzey senaryoları anlamanıza yardımcı olmak için tasarlanmıştır.

Temel bilgiler

Microsoft kimlik platformu kullanan her uygulamayı Microsoft Entra yönetim merkezi Uygulama kayıtları kaydetmeniz gerekir. Uygulama kayıt işlemi, uygulamanız için şu değerleri toplar ve atar:

  • Uygulamanızı benzersiz olarak tanımlayan bir Uygulama (istemci) kimliği
  • Yanıtları uygulamanıza geri yönlendirmek için kullanabileceğiniz bir Yeniden Yönlendirme URI'si
  • Desteklenen hesap türleri gibi senaryoya özgü birkaç değer daha

Ayrıntılar için bir uygulamayı kaydetmeyi öğrenin.

Uygulama kaydedildikten sonra, uygulama uç noktaya istek göndererek Microsoft kimlik platformu ile iletişim kurar. Bu isteklerin ayrıntılarını işleyen açık kaynak çerçeveler ve kitaplıklar sağlıyoruz. Ayrıca, bu uç noktalara yönelik istekler oluşturarak kimlik doğrulama mantığını kendiniz uygulama seçeneğiniz de vardır:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token

Microsoft kimlik platformu tarafından desteklenen uygulama türleri şunlardır:

  • Tek sayfalı uygulama (SPA)
  • Web uygulaması
  • Web API'si
  • Mobil ve yerel uygulamalar
  • Hizmet, daemon, betik

Tek sayfalı uygulamalar

Çoğu modern uygulamada, çoğunlukla Angular, React veya Vue gibi bir çerçeveyle öncelikli olarak JavaScript'te yazılmış tek sayfalı bir uygulama (SPA) ön ucu vardır. Microsoft kimlik platformu, kimlik doğrulaması için OpenID Bağlan protokolunu ve OAuth 2.0 tarafından tanımlanan iki yetkilendirme izni türünden birini kullanarak bu uygulamaları destekler. Desteklenen izin türleri OAuth 2.0 örtük verme akışı veya daha yeni OAuth 2.0 yetkilendirme kodu + PKCE akışıdır (aşağıya bakın).

Akış diyagramı, uygulamanın Microsoft kimlik platformu authorize uç noktasından bir kod aldığı ve siteler arası web isteklerini kullanarak bir erişim belirteci ve yenileme belirteci için kullandığı OAuth 2.0 yetkilendirme kodu verme akışını gösterir (PKCE ile ilgili ayrıntılar atlanmıştır). SPA'lar için erişim belirteci 1 saat geçerlidir ve süresi dolduktan sonra yenileme belirtecini kullanarak başka bir kod istemelidir. Erişim belirtecine ek olarak, istemci uygulamasında oturum açan kullanıcıyı temsil eden bir id_token de genellikle aynı akış ve/veya ayrı bir OpenID Bağlan isteği (burada gösterilmez) üzerinden de istenir.

Tek sayfalı bir uygulama ile güvenlik belirteci hizmet uç noktası arasındaki OAuth 2.0 yetkilendirme kodu akışını gösteren diyagram.

Bunu uygulamada görmek için Hızlı Başlangıç: Tek sayfalı uygulamada (SPA) kullanıcılarla oturum açma ve JavaScript kullanarak Microsoft Graph API'sini çağırma konusuna bakın.

Yetkilendirme kodu akışı ile örtük akış karşılaştırması

OAuth 2.0 yetkilendirme kodu akışı artık Uygulamanızın Safari'de ve diğer gizlilik bilincine sahip tarayıcılarda uyumluluğunu sağlamak için SPA'lar oluşturmanın önerilen yoludur. Üçüncü taraf tanımlama bilgilerinin kaldırılması ve daha fazla dikkatin alınmasından sonra örtük akışın sürekli kullanılması önerilmez.

Web uygulamaları

Kullanıcının tarayıcı üzerinden eriştiği web uygulamaları (.NET, PHP, Java, Ruby, Python, Node) için, kullanıcı oturum açma için OpenID Bağlan kullanabilirsiniz. OpenID Bağlan web uygulaması bir kimlik belirteci alır. Kimlik belirteci, kullanıcının kimliğini doğrulayan ve talep biçiminde kullanıcı hakkında bilgi sağlayan bir güvenlik belirtecidir:

// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...

// Partial content of a decoded ID token
{
    "name": "Casey Jensen",
    "email": "casey.jensen@onmicrosoft.com",
    "oid": "ab12cd34-effe-5678-9012-abcdef012345"
    ...
}

Microsoft kimlik platformu kullanılan farklı belirteç türlerinin diğer ayrıntıları erişim belirteci başvurusunda ve id_token başvurusunda kullanılabilir.

Web sunucusu uygulamalarında oturum açma kimlik doğrulaması akışı şu üst düzey adımları izler:

Web uygulaması kimlik doğrulama akışını gösterir

Kimlik belirtecini Microsoft kimlik platformu alınan bir ortak imzalama anahtarıyla doğrulayarak kullanıcının kimliğini güvence altına alabilirsiniz. Sonraki sayfa isteklerinde kullanıcıyı tanımlamak için kullanılabilecek bir oturum tanımlama bilgisi ayarlanır.

Aşağıdaki çok bölümlü öğretici serisinde kullanıcıların oturumunu kuran bir ASP.NET Core web uygulaması oluşturarak daha fazla bilgi edinin

Basit oturum açma işlemine ek olarak, bir web sunucusu uygulamasının Temsili Durum Aktarımı (REST) API'si gibi başka bir web hizmetine erişmesi gerekebilir. Bu durumda, web sunucusu uygulaması OAuth 2.0 yetkilendirme kodu akışını kullanarak birleştirilmiş bir OpenID Bağlan ve OAuth 2.0 akışıyla etkileşim kurar. Bu senaryo hakkında daha fazla bilgi için kod örneğimize bakın.

Web API'leri

uygulamanızın RESTful web API'si gibi web hizmetlerinin güvenliğini sağlamak için Microsoft kimlik platformu kullanabilirsiniz. Web API'leri çok sayıda platformda ve dilde uygulanabilir. Ayrıca Azure İşlevleri'de HTTP Tetikleyicileri kullanılarak da uygulanabilirler. Kimlik belirteçleri ve oturum tanımlama bilgileri yerine, web API'si verilerinin güvenliğini sağlamak ve gelen isteklerin kimliğini doğrulamak için OAuth 2.0 erişim belirteci kullanır.

Web API'sinin çağıranı, http isteğinin yetkilendirme üst bilgisine aşağıdaki gibi bir erişim belirteci ekler:

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
Accept: application/json
...

Web API'si, API çağıranın kimliğini doğrulamak ve erişim belirtecinde kodlanmış taleplerden arayan hakkındaki bilgileri ayıklamak için erişim belirtecini kullanır. Microsoft kimlik platformu kullanılan farklı belirteç türlerinin diğer ayrıntılarına erişim belirteci başvurusu ve kimlik belirteci başvurusundan ulaşabilirsiniz.

Web API'leri, kapsamlar olarak da bilinen izinleri kullanıma sunarak kullanıcılara belirli işlevleri veya verileri kabul etme veya devre dışı bırakma gücü verebilir. Bir arama uygulamasının kapsama izin alması için kullanıcının akış sırasında kapsama onay vermesi gerekir. Microsoft kimlik platformu kullanıcıdan izin ister ve ardından web API'sinin aldığı tüm erişim belirteçlerine izinleri kaydeder. Web API'si her çağrıda aldığı erişim belirteçlerini doğrular ve yetkilendirme denetimleri gerçekleştirir.

Web API'si, web sunucusu uygulamaları, masaüstü ve mobil uygulamalar, tek sayfalı uygulamalar, sunucu tarafı daemon'lar ve hatta diğer web API'leri dahil olmak üzere tüm uygulama türlerinden erişim belirteçleri alabilir. Web API'sinin üst düzey akışı şöyle görünür:

Web API kimlik doğrulama akışını gösterir

OAuth2 erişim belirteçlerini kullanarak bir web API'sinin güvenliğini sağlamayı öğrenmek için korumalı web API'sinin öğreticisindeki web API'si kod örneklerine göz atın.

Çoğu durumda web API'lerinin de Microsoft kimlik platformu tarafından güvenliği sağlanan diğer aşağı akış web API'lerine giden istekler yapması gerekir. Bunu yapmak için web API'leri, web API'sinin giden isteklerde kullanılacak başka bir erişim belirteci için gelen erişim belirtecini değiştirmesine olanak tanıyan Şirket İçi (OBO) akışından yararlanabilir. Daha fazla bilgi için Microsoft kimlik platformu ve OAuth 2.0 On-Behalf-Of akışına bakın.

Mobil ve yerel uygulamalar

Mobil ve masaüstü uygulamaları gibi cihazdan yüklenen uygulamaların genellikle verileri depolayan ve kullanıcı adına işlevler gerçekleştiren arka uç hizmetlerine veya web API'lerine erişmesi gerekir. Bu uygulamalar, OAuth 2.0 yetkilendirme kodu akışını kullanarak arka uç hizmetlerine oturum açma ve yetkilendirme ekleyebilir.

Bu akışta, kullanıcı oturum açtığında uygulama Microsoft kimlik platformu bir yetkilendirme kodu alır. Yetkilendirme kodu, uygulamanın oturum açmış olan kullanıcı adına arka uç hizmetlerini çağırma iznini temsil eder. Uygulama, OAuth 2.0 erişim belirteci ve yenileme belirteci için arka planda yetkilendirme kodunu değiştirebilir. Uygulama, HTTP isteklerindeki web API'lerinde kimlik doğrulaması yapmak için erişim belirtecini kullanabilir ve eski erişim belirteçlerinin süresi dolduğunda yeni erişim belirteçleri almak için yenileme belirtecini kullanabilir.

Yerel uygulama kimlik doğrulama akışını gösterir

Not

Uygulama varsayılan sistem web görünümü kullanıyorsa, Microsoft Entra kimlik doğrulaması ve yetkilendirme hata kodlarında "Oturum AçmaMı Onayla" işlevselliği ve hata kodu AADSTS50199hakkındaki bilgileri denetleyin.

Sunucu, daemon'lar ve betikler

Uzun süre çalışan işlemlere sahip olan veya bir kullanıcıyla etkileşim kurmadan çalışan uygulamalar da web API'leri gibi güvenli kaynaklara erişmek için bir yönteme ihtiyaç duyar. Bu uygulamalar, OAuth 2.0 istemci kimlik bilgileri akışıyla kullanıcının temsilci kimliği yerine uygulamanın kimliğini kullanarak kimlik doğrulaması yapabilir ve belirteç alabilir. İstemci gizli dizisini veya sertifikayı kullanarak uygulamanın kimliğini kanıtlayabilirsiniz. Daha fazla bilgi için bkz. Microsoft kimlik platformu kullanan .NET daemon konsol uygulaması.

Bu akışta uygulama, erişim elde etmek için doğrudan uç noktayla /token etkileşim kurar:

Daemon uygulaması kimlik doğrulama akışını gösterir

Bir daemon uygulaması oluşturmak için istemci kimlik bilgileri belgelerine bakın veya bir .NET örnek uygulaması deneyin.

Ayrıca bkz.

Microsoft kimlik platformu tarafından desteklenen uygulama türleri hakkında bilgi edindiğinize göre, farklı senaryolar tarafından kullanılan protokol bileşenlerini anlamak için OAuth 2.0 ve OpenID Bağlan hakkında daha fazla bilgi edinin.