Microsoft kimlik platformu OAuth 2.0 ve OpenID Bağlan (OIDC)

Microsoft kimlik platformu kullanmak için protokol düzeyinde OAuth veya OpenID Bağlan (OIDC) hakkında bilgi edinmek gerekmez. Ancak uygulamalarınıza kimlik doğrulaması eklemek için kimlik platformunu kullanırken protokol terimleri ve kavramlarıyla karşılaşırsınız. Microsoft Entra yönetim merkezi, belgelerimiz ve kimlik doğrulama kitaplıklarıyla çalışırken, bazı temel bilgileri bilmek tümleştirmenize ve genel deneyiminize yardımcı olabilir.

OAuth 2.0'daki roller

Dört taraf genellikle OAuth 2.0 ve OpenID Bağlan kimlik doğrulaması ve yetkilendirme değişimine katılır. Bu değişimler genellikle kimlik doğrulama akışları veya kimlik doğrulama akışları olarak adlandırılır.

Diagram showing the OAuth 2.0 roles

  • Yetkilendirme sunucusu - Microsoft kimlik platformu yetkilendirme sunucusudur. Kimlik sağlayıcısı veya IdP olarak da adlandırılır, son kullanıcının bilgilerini, erişimini ve kimlik doğrulama akışındaki taraflar arasındaki güven ilişkilerini güvenli bir şekilde işler. Yetkilendirme sunucusu, kullanıcı oturum açtıktan (kimliği doğrulandı) sonra uygulamalarınızın ve API'lerinizin kaynaklara erişim vermek, reddetmek veya iptal etmek için kullandığı güvenlik belirteçlerini verir.

  • İstemci - OAuth değişimindeki istemci, korumalı bir kaynağa erişim isteyen uygulamadır. İstemci bir sunucuda çalışan bir web uygulaması, kullanıcının web tarayıcısında çalışan tek sayfalı bir web uygulaması veya başka bir web API'sini çağıran bir web API'si olabilir. genellikle istemci uygulaması, uygulama veya uygulama olarak adlandırılan istemciyi görürsünüz.

  • Kaynak sahibi - Kimlik doğrulama akışındaki kaynak sahibi genellikle uygulama kullanıcısı veya OAuth terminolojisindeki son kullanıcıdır . Uygulamanızın kendi adına eriştiği korumalı kaynağa (verilerine) son kullanıcı "sahip olur". Kaynak sahibi, uygulamanızın (istemci) sahip olduğu kaynaklara erişmesini sağlayabilir veya reddedebilir. Örneğin, uygulamanız bir kullanıcının e-posta adresini bu sistemdeki profilinden almak için bir dış sistemin API'sini çağırabilir. Profil verileri, son kullanıcının dış sistemde sahip olduğu bir kaynaktır ve son kullanıcı uygulamanızın verilerine erişme isteğini onaylayabilir veya reddedebilir.

  • Kaynak sunucusu - Kaynak sunucusu bir kaynak sahibinin verilerini barındırıyor veya erişim sağlıyor. Çoğu zaman, kaynak sunucusu bir veri deposunun önünde bir web API'sine sahip olabilir. Kaynak sunucusu, kimlik doğrulaması gerçekleştirmek için yetkilendirme sunucusuna dayanır ve kaynaklara erişim vermek veya reddetmek için yetkilendirme sunucusu tarafından verilen taşıyıcı belirteçlerdeki bilgileri kullanır.

Belirteçler

Kimlik doğrulama akışındaki taraflar, sorumluyu (kullanıcı, konak veya hizmet) güvence altına almak, doğrulamak ve kimlik doğrulaması yapmak ve korumalı kaynaklara (yetkilendirme) erişim vermek veya reddetmek için taşıyıcı belirteçleri kullanır. Microsoft kimlik platformu taşıyıcı belirteçleri JSON Web Belirteçleri (JWT) olarak biçimlendirilir.

Kimlik platformu tarafından güvenlik belirteçleri olarak üç tür taşıyıcı belirteç kullanılır:

  • Erişim belirteçleri - Erişim belirteçleri, yetkilendirme sunucusu tarafından istemci uygulamasına verilir. İstemci, erişim belirteçlerini kaynak sunucuya geçirir. Erişim belirteçleri, istemcinin yetkilendirme sunucusu tarafından verdiği izinleri içerir.

  • Kimlik belirteçleri - Kimlik belirteçleri, yetkilendirme sunucusu tarafından istemci uygulamasına verilir. İstemciler, kullanıcılarda oturum açarken ve bunlar hakkında temel bilgileri almak için kimlik belirteçlerini kullanır.

  • Belirteçleri yenileme - İstemci, yetkilendirme sunucusundan yeni erişim ve kimlik belirteçleri istemek için bir yenileme belirteci veya RT kullanır. Kodunuz yenileme belirteçlerini ve dize içeriğini hassas veriler olarak değerlendirmelidir çünkü bunlar yalnızca yetkilendirme sunucusu tarafından kullanılmak üzere tasarlanmıştır.

Uygulama kaydı

İstemci uygulamanızın, Microsoft kimlik platformu tarafından verilen güvenlik belirteçlerine güvenmek için bir yönteme ihtiyacı vardır. Güven oluşturmanın ilk adımı uygulamanızı kaydetmektir. Uygulamanızı kaydettiğinizde, kimlik platformu bazı değerleri otomatik olarak atarken, diğerleri uygulamanın türüne göre yapılandırılır.

En sık başvuruda bulunan uygulama kayıt ayarlarından ikisi şunlardır:

  • Uygulama (istemci) kimliği - Uygulama kimliği ve istemci kimliği olarak da adlandırılan bu değer, uygulamanıza kimlik platformu tarafından atanır. İstemci kimliği, uygulamanızı kimlik platformunda benzersiz olarak tanımlar ve platform sorunlarının güvenlik belirteçlerine dahil edilir.
  • Yeniden yönlendirme URI'si - Yetkilendirme sunucusu, etkileşimini tamamladıktan sonra kaynak sahibinin kullanıcı aracısını (web tarayıcısı, mobil uygulama) başka bir hedefe yönlendirmek için yeniden yönlendirme URI'sini kullanır. Örneğin, son kullanıcı yetkilendirme sunucusuyla kimlik doğrulaması yaptıktan sonra. Tüm istemci türleri yeniden yönlendirme URI'lerini kullanmaz.

Uygulamanızın kaydı, kimlik ve erişim belirteçlerini almak için kodunuzda kullanacağınız kimlik doğrulaması ve yetkilendirme uç noktaları hakkında da bilgi tutar.

Uç Noktalar

Microsoft kimlik platformu, OAuth 2.0 ve OpenID Bağlan (OIDC) 1.0'ın standartlara uygun uygulamalarını kullanarak kimlik doğrulama ve yetkilendirme hizmetleri sunar. Kimlik platformu gibi standartlara uyumlu yetkilendirme sunucuları, bir kimlik doğrulama akışında taraflar tarafından akışı yürütmek üzere kullanılmak üzere bir dizi HTTP uç noktası sağlar.

Uygulamanızı kaydettiğinizde veya yapılandırdığınızda uygulamanızın uç nokta URI'leri otomatik olarak oluşturulur. Uygulamanızın kodunda kullandığınız uç noktalar, uygulamanın türüne ve desteklemesi gereken kimliklere (hesap türleri) bağlıdır.

Yaygın olarak kullanılan iki uç nokta yetkilendirme uç noktası ve belirteç uç noktasıdır. ve token uç noktalarına authorize örnekler aşağıda verilmiştir:

# Authorization endpoint - used by client to obtain authorization from the resource owner.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/authorize
# Token endpoint - used by client to exchange an authorization grant or refresh token for an access token.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/token

# NOTE: These are examples. Endpoint URI format may vary based on application type,
#       sign-in audience, and Azure cloud instance (global or national cloud).

#       The {issuer} value in the path of the request can be used to control who can sign into the application. 
#       The allowed values are **common** for both Microsoft accounts and work or school accounts, 
#       **organizations** for work or school accounts only, **consumers** for Microsoft accounts only, 
#       and **tenant identifiers** such as the tenant ID or domain name.

Kaydettiğiniz bir uygulamanın uç noktalarını bulmak için Microsoft Entra yönetim merkezinde şu sayfaya gidin:

Kimlik>Uygulamaları> Uygulama kayıtları<> YOUR-APPLICATION>>Uç Noktaları

Sonraki adımlar

Ardından, her uygulama türü tarafından kullanılan OAuth 2.0 kimlik doğrulama akışları ve bunları gerçekleştirmek için uygulamalarınızda kullanabileceğiniz kitaplıklar hakkında bilgi edinin:

Kimlik doğrulama akışlarını yürütmek için kendi kitaplığınızı veya ham HTTP çağrılarınızı oluşturmamanızı kesinlikle öneririz. Microsoft Kimlik Doğrulama Kitaplığı daha güvenli ve kolaydır. Ancak senaryonuz kitaplıklarımızı kullanmanızı engelliyorsa veya yalnızca Microsoft kimlik platformu uygulaması hakkında daha fazla bilgi edinmek istiyorsanız protokol başvurumuz vardır: