Microsoft kimlik platformu için uygulama türleri
Microsoft kimlik platformu, hepsi endüstri standardı OAuth 2.0 veya OpenID Connect protokollerini temel alan ç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 Connect protokolunu ve OAuth 2.0 tarafından tanımlanan iki yetkilendirme izni türünden birini kullanarak bu uygulamaları destekler. SPA'ları geliştirirken PKCE ile yetkilendirme kodu akışını kullanın. Bu akış örtük akıştan daha güvenlidir ve artık önerilmez. Daha fazla bilgi için bkz . Kimlik doğrulama kodu akışını tercih edin.
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çmış kullanıcıyı temsil eden bir id_token
de genellikle aynı akış ve/veya ayrı bir OpenID Connect isteği (burada gösterilmez) aracılığıyla da istenir.
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.
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 Connect'i kullanabilirsiniz. OpenID Connect'te 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": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
...
}
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:
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 Connect 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:
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.
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 AADSTS50199
hakkı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:
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 Connect hakkında daha fazla bilgi edinin.