Azure AD B2C: Kimlik doğrulama protokolleri

Azure Active Directory B2C (Azure AD B2C), endüstri standardı iki protokolü destekleyerek uygulamalarınız için hizmet olarak kimlik sağlar: OpenID Connect ve OAuth 2.0. Hizmet standartlara uygundur, ancak bu protokollerin iki uygulamasında küçük farklılıklar olabilir.

Bu kılavuzdaki bilgiler, kodunuzu bir açık kaynak kitaplığı kullanmak yerine doğrudan HTTP istekleri göndererek ve işleyerek yazıyorsanız yararlıdır. Belirli protokollerin ayrıntılarını incelemeden önce bu sayfayı okumanızı öneririz. Ancak Azure AD B2C'yi zaten biliyorsanız doğrudan protokol başvuru kılavuzlarına gidebilirsiniz.

Temel bilgiler

Azure AD B2C kullanan her uygulamanın Azure portal B2C dizininize kaydedilmesi gerekir. Uygulama kayıt işlemi birkaç değer toplayarak uygulamanıza atar:

  • Uygulamanızı benzersiz olarak tanımlayan bir Uygulama Kimliği.

  • Yanıtları uygulamanıza geri yönlendirmek için kullanılabilecek bir Yeniden Yönlendirme URI'si veya paket tanımlayıcısı .

  • Senaryoya özgü birkaç değer daha. Daha fazla bilgi için uygulamanızı kaydetmeyi öğrenin.

Uygulamanızı kaydettikten sonra uç noktaya istek göndererek Azure AD B2C ile iletişim kurar:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token

Özel bir etki alanı kullanıyorsanız değerini uç noktalarda gibi contoso.comözel etki alanıyla değiştirin{tenant}.b2clogin.com.

Neredeyse tüm OAuth ve OpenID Connect akışlarında, değişime dört taraf dahil edilir:

Dört OAuth 2.0 Rolünü gösteren diyagram.

  • Yetkilendirme sunucusu, Azure AD B2C uç noktasıdır. Kullanıcı bilgileri ve erişimle ilgili her şeyi güvenli bir şekilde işler. Ayrıca bir akıştaki taraflar arasındaki güven ilişkilerini de işler. Kullanıcının kimliğini doğrulama, kaynaklara erişim izni verme ve iptal etme ve belirteç verme sorumluluğundadır. Kimlik sağlayıcısı olarak da bilinir.

  • Kaynak sahibi genellikle son kullanıcıdır. Verilerin sahibi olan taraftır ve üçüncü tarafların bu verilere veya kaynağa erişmesine izin verme gücüne sahiptir.

  • OAuth istemcisi uygulamanızdır. Uygulama Kimliği ile tanımlanır. Genellikle son kullanıcıların etkileşimde olduğu taraftır. Ayrıca yetkilendirme sunucusundan belirteçler de talep eder. Kaynak sahibi, istemciye kaynağa erişim izni vermelidir.

  • Kaynak sunucusu, kaynağın veya verilerin bulunduğu yerdir. OAuth istemcisinin kimliğini güvenli bir şekilde doğrulamak ve yetkilendirmek için yetkilendirme sunucusuna güvenir. Ayrıca bir kaynağa erişim verebilmek için taşıyıcı erişim belirteçlerini kullanır.

İlkeler ve kullanıcı akışları

Azure AD B2C, ilkeler sunarak standart OAuth 2.0 ve OpenID Connect protokollerini genişletir. Bunlar, Azure AD B2C'nin basit kimlik doğrulaması ve yetkilendirmeden çok daha fazlasını gerçekleştirmesine olanak sağlar.

En yaygın kimlik görevlerini ayarlamanıza yardımcı olmak için, Azure AD B2C portalında kullanıcı akışları olarak adlandırılan önceden tanımlanmış, yapılandırılabilir ilkeler bulunur. Kullanıcı akışları kaydolma, oturum açma ve profil düzenleme dahil olmak üzere tüketici kimliği deneyimlerini tam olarak açıklar. Kullanıcı akışları yönetim kullanıcı arabiriminde tanımlanabilir. Http kimlik doğrulama isteklerinde özel bir sorgu parametresi kullanılarak yürütülebilirler.

İlkeler ve kullanıcı akışları OAuth 2.0 ve OpenID Connect'in standart özellikleri değildir, bu nedenle bunları anlamak için zaman ayırmalısınız. Daha fazla bilgi için bkz. Azure AD B2C kullanıcı akışı başvuru kılavuzu.

Belirteçler

OAuth 2.0 ve OpenID Connect'in Azure AD B2C uygulaması, JSON web belirteçleri (JWT) olarak temsil edilen taşıyıcı belirteçler dahil olmak üzere taşıyıcı belirteçlerin kapsamlı bir şekilde kullanılmasını sağlar. Taşıyıcı belirteci, korumalı bir kaynağa "taşıyıcı" erişim veren basit bir güvenlik belirtecidir.

Taşıyıcı, belirteci sunabilen herhangi bir taraftır. Azure AD B2C'nin taşıyıcı belirteci alabilmesi için önce bir tarafın kimliğini doğrulaması gerekir. Ancak iletim ve depolamada belirtecin güvenliğini sağlamak için gerekli adımlar atılmazsa, engellenebilir ve istenmeyen bir taraf tarafından kullanılabilir.

Bazı güvenlik belirteçleri, yetkisiz tarafların bunları kullanmasını engelleyen yerleşik mekanizmalara sahiptir, ancak taşıyıcı belirteçlerde bu mekanizma yoktur. Bunlar, aktarım katmanı güvenliği (HTTPS) gibi güvenli bir kanalda taşınmalıdır.

Taşıyıcı belirteci güvenli bir kanalın dışına iletilirse, kötü amaçlı bir taraf belirteci almak için ortadaki adam saldırısını kullanabilir ve korumalı bir kaynağa yetkisiz erişim elde etmek için kullanabilir. Taşıyıcı belirteçler daha sonra kullanılmak üzere depolandığında veya önbelleğe alınırken aynı güvenlik ilkeleri geçerlidir. Her zaman uygulamanızın taşıyıcı belirteçleri güvenli bir şekilde ilettiğinden ve depoladığından emin olun.

Ek taşıyıcı belirteci güvenlik konuları için bkz. RFC 6750 Bölüm 5.

Azure AD B2C'de kullanılan farklı belirteç türleri hakkında daha fazla bilgi Azure AD B2C belirteç başvurusunda bulunabilir.

Protokoller

Bazı örnek istekleri gözden geçirmeye hazır olduğunuzda, aşağıdaki öğreticilerden biriyle başlayabilirsiniz. Her biri belirli bir kimlik doğrulama senaryosuna karşılık gelir. Hangi akışın size uygun olduğunu belirleme konusunda yardıma ihtiyacınız varsa Azure AD B2C kullanarak oluşturabileceğiniz uygulama türlerine göz atın.