Aracılığıyla paylaş


Yerel kimlik doğrulama API'si başvurusu

Şunun için geçerlidir: Aşağıdaki içeriğin dış kiracılar için geçerli olduğunu gösteren beyaz onay işareti simgesine sahip yeşil daire. Dış kiracılar (daha fazla bilgi edinin)

Microsoft Entra native authentication tarayıcılara kimlik doğrulaması devretmek yerine uygulamanızın kullanıcı arabirimini istemci uygulamasında barındırmanıza olanak tanır ve bu da yerel olarak tümleşik bir kimlik doğrulama deneyimi sağlar. Geliştirici olarak, oturum açma arabiriminin genel görünümü üzerinde tam denetime sahipsiniz.

Bu API başvuru makalesi, yalnızca akışı yürütmek için el ile ham HTTP istekleri yaptığınızda gerekli ayrıntıları açıklar. Ancak bu yaklaşımı önermiyoruz. Bu nedenle mümkün olduğunda Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama SDK'sı kullanın. Yerel kimlik doğrulama SDK'ları hakkında daha fazla bilgi edinin. API uç noktalarına yapılan bir çağrı başarılı olduğunda, hem kullanıcı kimliği için bir kimlik belirteci hem de korumalı API'leri çağırmak için bir erişim belirteci alırsınız. API'den gelen tüm yanıtlar JSON biçimindedir.

Microsoft Entra yerel kimlik doğrulama API'si iki kimlik doğrulama akışı için kaydolmayı ve oturum açmayı destekler:

  • Bir e-posta ve parola ile kaydolmayı ve oturum açmayı ve self servis parola sıfırlamayı (SSPR) destekleyen parolalı e-posta.

  • Tek seferlik geçiş kodu e-posta ile kaydolmayı ve tek seferlik geçiş koduyla oturum açmayı destekleyen bir kerelik geçiş kodunu e-postayla gönderin.

Not

Şu anda yerel kimlik doğrulama API'sinin uç noktaları Çıkış Noktaları Arası Kaynak Paylaşımı'nı (CORS) desteklememektedir.

Önkoşullar

  1. dış kiracı Microsoft Entra. Henüz bir kiracınız yoksa bir dış kiracı oluşturun.

  2. Henüz yapmadıysanız Microsoft Entra yönetim merkezinde bir uygulamayı kaydetme. Şu şekilde olduğundan emin olun:

  3. Henüz yapmadıysanız Microsoft Entra yönetim merkezinde kullanıcı akışı oluşturun. Kullanıcı akışını oluştururken, uygulamanızın göndermesini beklediğiniz öznitelikler Microsoft Entra gerektiği gibi yapılandırdığınız kullanıcı özniteliklerini not alın.

  4. Uygulama kaydınızı kullanıcı akışıyla ilişkilendirin.

  5. Giriş akışı için, bir müşteri kullanıcısını kaydedin ve bu akışı test etmek için kullanın. Alternatif olarak, kayıt akışını çalıştırdıktan sonra bu test kullanıcısını alabilirsiniz.

  6. SSPR akışı için dış kiracıdaki müşteri kullanıcıları için self servis parola sıfırlamayı etkinleştirin. SSPR, parola kimlik doğrulama yöntemiyle e-posta kullanan müşteri kullanıcıları tarafından kullanılabilir.

  7. E-posta adresi ve şifreyle giriş yapan kullanıcıların da kullanıcı adı ve şifreyle giriş yapabilmesini istiyorsanız, Takma adla veya kullanıcı adı makalesindeki adımları kullanın:

    1. Giriş sırasında kullanıcı adınızı etkinleştirin.
    2. Yönetim merkezinde kullanıcı adı olan kullanıcılar oluşturun veya bir kullanıcı adı ekleyerek mevcut kullanıcıları olarak güncelleştirin. Alternatif olarak, Microsoft Graph API kullanarak uygulamanızda kullanıcı oluşturmaya ve güncelleştirmeye uyabilirsiniz.
  8. Müşterileriniz için çok faktörlü kimlik doğrulamasını (MFA) zorunlu kılmak için Uygulamaya çok faktörlü kimlik doğrulaması (MFA) ekleme bölümünde yer alan adımları kullanarak oturum açma akışınıza MFA ekleyin. Yerel kimlik doğrulaması, MFA için ikinci bir faktör olarak e-posta tek seferlik geçiş kodunu ve SMS'i destekler.

Devamlılık belirteci

Bir oturum açma, kaydolma veya SSPR uç noktasını çağırdığınızda yanıt bir devamlılık belirteci içerir. Bu belirteç geçerli akışı benzersiz olarak tanımlar ve Microsoft Entra ID uç noktaları arasında durumu korumasını sağlar. Belirteci sonraki her isteğe bu akışa ekleyin. Yalnızca sınırlı bir süre için geçerlidir ve yalnızca aynı akıştaki sonraki istekler için kullanılabilir.

Kayıt için API referansı

Her iki kimlik doğrulama yönteminde de kullanıcı kayıt akışını tamamlamak için uygulamanız , , /signup/v1.0/start/signup/v1.0/challengeve /signup/v1.0/continueolmak üzere dört uç noktayla etkileşim kurar/token.

Kayıt için API uç noktaları

Uç nokta Açıklama
/signup/v1.0/start Bu uç nokta kayıt akışını başlatır. Geçerli uygulama kimliğini, yeni kullanıcı adını ve sınama türünü geçirip yeni bir devamlılık belirteci alırsınız. Uygulamanın seçtiği kimlik doğrulama yöntemleri Microsoft Entra tarafından desteklenmiyorsa, uç nokta uygulamaya web kimlik doğrulaması akışı kullanabileceğini belirten bir yanıt döndürebilir.
/signup/v1.0/challenge Uygulamanız bu uç noktayı Microsoft Entra tarafından desteklenen challenge türleri listesiyle çağırır. Microsoft Entra ardından kullanıcının kimlik doğrulaması için desteklenen kimlik doğrulama yöntemlerinden birini seçer.
/signup/v1.0/continue Bu uç nokta, parola ilkesi gereksinimleri veya yanlış öznitelik biçimleri gibi eksik gereksinimler nedeniyle kullanıcı hesabı oluşturmak veya akışı kesintiye uğratmak için akışın devam etmesi için yardımcı olur. Bu uç nokta bir devamlılık belirteci oluşturur ve ardından bunu uygulamaya döndürür. Uygulama, Microsoft Entra tarafından seçilen bir kimlik doğrulama yöntemi değilse uç nokta, uygulamaya web tabanlı kimlik doğrulama akışı kullanılacağını belirten bir yanıt döndürebilir.
oauth/v2.0/token Uygulama, son olarak güvenlik belirteçleri istemek için bu uç noktayı çağırır. Uygulamanın uç noktaya yapılan son başarılı çağrıdan aldığı devamlılık belirtecini /signup/v1.0/continue kullanması gerekir.

Kaydolma sınama türleri

API, istemci uygulamasının Microsoft Entra çağrısı yaptığında desteklediği kimlik doğrulama yöntemlerini tanıtmasını sağlar. Bunu yapmak için uygulama, uygulamanın isteğindeki parametresini kullanır challenge_type . Bu parametre, farklı kimlik doğrulama yöntemlerini temsil eden önceden tanımlanmış değerleri tutar.

Yerel kimlik doğrulama sınaması türlerindeki sınama türleri hakkında daha fazla bilgi edinin. Bu makalede, kimlik doğrulama yöntemi için kullanmanız gereken sınama türü değerleri açıklanmaktadır.

Kayıt akışı protokolü ayrıntıları

Sıralı diyagram, kaydolma işleminin akışını gösterir.

Yerel kimlik doğrulaması diyagramı bir kaydolma akışı.

Bu diyagram, uygulamanın kullanıcı adını (e-posta), parolayı (parola kimlik doğrulama akışına sahip e-posta için) ve kullanıcıdan farklı zamanlarda (ve muhtemelen ayrı ekranlarda) öznitelikleri topladığını gösterir. Bununla birlikte, uygulamanızı kullanıcı adı (e-posta), parola ve gerekli tüm ve isteğe bağlı öznitelik değerlerini aynı ekranda toplayacak şekilde tasarlayabilir ve ardından bunların /signup/v1.0/start tümünü uç noktaya gönderebilirsiniz. Uygulama gerekli tüm bilgileri /signup/v1.0/start uç noktaya gönderirse, uygulamanın isteğe bağlı adımlarda çağrı yapması ve yanıtları işlemesi gerekmez.

21. adımda, kullanıcı zaten kaydolmuş durumdadır. Ancak, uygulamanın kaydolmadan sonra kullanıcıda otomatik olarak oturum açması gerekiyorsa, uygulama güvenlik belirteçleri istemek için uç noktayı çağırır oauth/v2.0/token .

1. Adım: Kayıt akışını başlatma isteği

Kayıt akışı, uygulamanın kayıt akışını başlatmak için /signup/v1.0/start uç noktaya post isteği göndermesiyle başlar.

İstek örnekleri aşağıda verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

Örnek 1:

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/start
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&username=contoso-consumer@contoso.com 

Örnek 2 (istekte kullanıcı özniteliklerini ve parolayı ekleyin):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/start
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&password={secure_password}
&attributes={"displayName": "{given_name}", "extension_2588abcdwhtfeehjjeeqwertc_age": "{user_age}", "postalCode": "{user_postal_code}"}
&username=contoso-consumer@contoso.com 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
username Evet Kaydolmak istediği müşteri kullanıcısının e-posta adresi, örneğin contoso-consumer@contoso.com.
challenge_type Evet Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Değer, parola kimlik doğrulama yöntemiyle e-posta için oob redirect veya oob password redirect için beklenir.
password Hayır Uygulamanın müşteri kullanıcısından topladığı parola değeri. Bir kullanıcının parolasını uç noktadaki /signup/v1.0/start veya sonraki /signup/v1.0/continue bir sürüm aracılığıyla gönderebilirsiniz. değerini, uygulamanın müşteri kullanıcısından topladığı parola değeriyle değiştirin {secure_password} . Uygulamanın kullanıcı arabiriminde parola onaylama alanını sağlayarak kullanıcının kullanmak istediği parolanın farkında olduğunu onaylamak sizin sorumluluğunuzdadır. Ayrıca, kullanıcının kuruluşunuzun ilkesine göre neyin güçlü bir parola oluşturduğunu anladığınızdan emin olmanız gerekir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
Bu parametre yalnızca parola kimlik doğrulama yöntemine sahip e-postalar için geçerlidir.
attributes Hayır Kullanıcı, uygulamanın müşteri kullanıcısından topladığı değerleri öznitelikler. Değer bir dizedir, ancak anahtar değerleri kullanıcı özniteliklerinin programlanabilir adı olan bir JSON nesnesi olarak biçimlendirilir. Bu öznitelikler yerleşik veya özel olabilir ve gerekli veya isteğe bağlı olabilir. Nesnenin anahtar adları, yöneticinin Microsoft Entra yönetim merkezinde yapılandırmış olduğu özniteliklere bağlıdır. Kullanıcı özniteliklerinin bazılarını veya tümünü uç nokta üzerinden veya uç noktadaki /signup/v1.0/start sonraki bir sürüm aracılığıyla /signup/v1.0/continue gönderebilirsiniz. Gerekli tüm öznitelikleri uç nokta üzerinden /signup/v1.0/start gönderirseniz, uç noktada herhangi bir öznitelik /signup/v1.0/continue göndermeniz gerekmez. Ancak, uç nokta aracılığıyla /signup/v1.0/start bazı gerekli öznitelikleri gönderirseniz, kalan gerekli öznitelikleri uç noktada daha sonra /signup/v1.0/continue gönderebilirsiniz. ve {given_name}{user_age} değerlerini, uygulamanın müşteri kullanıcısından topladığı ad, yaş ve posta kodu değerleriyle değiştirin{postal_code}. Microsoft Entra gönderdiğiniz ve var olmayan öznitelikleri yoksayar.
capabilities Hayır İstemci uygulamasının özelliklerini açıklayan boşlukla ayrılmış bayraklar. Hangi yöntemlerin zorlanabileceğini tanımlarken challenge_type , capabilities yerel kimlik doğrulama API'sine istemci uygulamasının hangi ek akışları işleyebileceğini ve kullanıcıya gösterebileceği URI'leri bildirin. Örneğin, mfa_required başka bir /challenge ve /token döngüsü anlamına gelir; registration_required istemci uygulaması kayıt API'lerini çağırır ve kayıt kullanıcı arabirimini gösterir. Gerekli bir özellik istemci uygulaması tarafından tanıtılmıyorsa, API yeniden yönlendirme döndürür. Desteklenen değerler mfa_required ve registration_required. Özellikler hakkında daha fazla bilgi edinin.

Başarılı yanıt

Başarılı bir yanıt örneği aşağıda verilmişti:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "AQABAAEAAA…",
} 
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "user_already_exists", 
    "error_description": "AADSTS1003037: It looks like you may already have an account.... .\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...", 
    "error_codes": [ 
        1003037 
    ],
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
invalid_attributes Doğrulamada başarısız olan özniteliklerin listesi (nesne dizisi). Uygulama kullanıcı öznitelikleri gönderirse ve özelliğin suberror değeri attribute_validation_failed bu yanıt mümkündür.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request challenge_type parametre değeri desteklenmeyen bir kimlik doğrulama yöntemi içerdiğinde veya istek parametre içermediğinde client_id istemci kimliği değerinin boş veya geçersiz olması gibi istek parametresi doğrulaması başarısız oldu. Hatanın error_description tam nedenini öğrenmek için parametresini kullanın.
invalid_client Uygulamanın istekte içerdiği istemci kimliği, genel istemci olmadığı veya yerel kimlik doğrulaması için etkinleştirilmediği gibi yerel kimlik doğrulama yapılandırması olmayan bir uygulamaya yöneliktir. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
unauthorized_client İstekte kullanılan istemci kimliği geçerli bir istemci kimliği biçimine sahip, ancak dış kiracıda yok veya yanlış.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.
user_already_exists Kullanıcı zaten var.
invalid_grant Uygulamanın gönderdiği parola, parola çok kısa olduğu gibi tüm karmaşıklık gereksinimlerini karşılamaz. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
Bu parametre yalnızca parola kimlik doğrulama yöntemine sahip e-postalar için geçerlidir.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
password_too_weak Karmaşıklık gereksinimlerini karşılamadığından parola çok zayıf. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.
password_too_short Yeni parola 8 karakterden azdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.
password_too_long Yeni parola 256 karakterden uzun. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.
password_recently_used Yeni parola, yakın zamanda kullanılan parolayla aynı olmamalıdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.
password_banned Yeni parola, yasaklanmış bir sözcük, tümcecik veya desen içerir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.
password_is_invalid Parola geçersiz, örneğin izin verilmeyen karakterler kullandığından. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.

Hata parametresi invalid_client değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
nativeauthapi_disabled Yerel kimlik doğrulaması için etkinleştirilmemiş bir uygulamanın istemci kimliği.

Not

Tüm gerekli öznitelikleri uç nokta üzerinden /signup/v1.0/start gönderirseniz ancak isteğe bağlı özniteliklerin tümünü göndermezseniz, daha sonra uç nokta aracılığıyla /signup/v1.0/continue ek isteğe bağlı öznitelikler gönderemezsiniz. Microsoft Entra, kaydolma akışının tamamlanması zorunlu olmadığından isteğe bağlı öznitelikler için açıkça istekte bulunmaz. ve uç noktalarına gönderebileceğiniz kullanıcı özniteliklerini öğrenmek için Uç noktalara kullanıcı özniteliklerini gönderme bölümündeki tabloya /signup/v1.0/start bakın./signup/v1.0/continue

2. Adım: Bir kimlik doğrulama yöntemi seçin

Uygulama Microsoft Entra kullanıcının kimlik doğrulaması için desteklenen sınama türlerinden birini seçmesini istemektedir. Bunu yapmak için uygulama uç noktaya bir çağrı /signup/v1.0/challenge yapar. Uygulamanın istekte uç noktadan aldığı devamlılık belirtecini /signup/v1.0/start içermesi gerekir.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/challenge
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&continuation_token=AQABAAEAAA…
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
challenge_type Hayır Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Değerin tek seferlik geçiş kodu e-postası oob redirect ve oob password redirect parola kimlik doğrulama yöntemiyle e-posta için olması beklenir.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.

Başarılı yanıt

Microsoft Entra kullanıcının e-postasına tek seferlik bir geçiş kodu gönderir, ardından oob değeriyle sınama türüyle yanıtlar ve tek seferlik geçiş kodu hakkında ek bilgiler verir:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "interval": 300,
    "continuation_token": "AQABAAEAAAYn...",
    "challenge_type": "oob",
    "binding_method": "prompt",
    "challenge_channel": "email",
    "challenge_target_label": "c***r@co**o**o.com",
    "code_length": 8
} 
Mülkiyet Açıklama
interval Uygulamanın OTP'yi yeniden göndermeye çalışmadan önce beklemesi gereken saniye cinsinden süre.
continuation_token Microsoft Entra döndüren Continuation token.
challenge_type Kullanıcının kimlik doğrulaması için seçilen sınama türü.
binding_method Tek geçerli değer istemdir. Bu parametre gelecekte kullanıcıya tek seferlik geçiş kodunu girmenin daha fazla yolunu sunmak için kullanılabilir. Oob ise challenge_type verilir
challenge_channel Tek seferlik geçiş kodunun gönderildiği kanalın türü. Şu anda yalnızca e-posta kanalı desteklenmektedir.
challenge_target_label Tek seferlik geçiş kodunun gönderildiği belirsiz bir e-posta.
code_length Microsoft Entra oluşturduğu tek seferlik geçiş kodunun uzunluğu.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{
   "challenge_type": "redirect"
}
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request İstemci kimliği boş veya geçersiz olduğu için istek parametresi doğrulaması başarısız oldu.
expired_token Devamlılık belirtecinin süresi doldu.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.
invalid_grant Devamlılık belirteci geçersiz.

3. Adım: Tek seferlik geçiş kodu gönderme

Uygulama, kullanıcının e-postasına gönderilen tek seferlik geçiş kodunu gönderir. Tek seferlik geçiş kodu gönderdiğimiz için bir oob parametre gereklidir ve parametrenin grant_type değeri oob olmalıdır.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded
continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=oob 
&oob={otp_code}
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
grant_type Evet Bir kerelik geçiş kodu, parola veya kullanıcı öznitelikleri göndermek için uç noktaya yönelik bir istek /signup/v1.0/continue kullanılabilir. Bu durumda, grant_type değer bu üç kullanım örneğini ayırt etmek için kullanılır. grant_type için olası değerler oob, parola ve özniteliklerdir. Bu çağrıda tek seferlik geçiş kodu gönderdiğimiz için değerin oob olması beklenir.
oob Evet Müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş kodu. değerini, müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş kodu değerleriyle değiştirin {otp_code} . Tek seferlik geçiş kodunu yeniden göndermek için uygulamanın uç noktaya yeniden istekte /signup/v1.0/challenge bulunması gerekir.

Uygulama tek seferlik geçiş kodunu başarıyla gönderdikten sonra, kaydolma akışı tabloda gösterildiği gibi senaryolara bağlıdır:

Senaryo Devam etme
Uygulama, /signup/v1.0/start uç noktası aracılığıyla kullanıcının parolasını (parola kimlik doğrulama yöntemiyle e-posta için) başarıyla gönderir ve Microsoft Entra yönetim merkezinde hiçbir öznitelik yapılandırılmaz veya tüm gerekli kullanıcı öznitelikleri /signup/v1.0/start uç noktası aracılığıyla gönderilir. Microsoft Entra bir devamlılık belirteci oluşturur. Uygulama, güvenlik belirteçleri isteme bölümünde gösterildiği gibi güvenlik belirteçleri istemek için devamlılık belirtecini kullanabilir.
Uygulama, kullanıcının parolasını (parola kimlik doğrulama yöntemiyle e-posta için) /signup/v1.0/start aracılığıyla başarıyla gönderir, ancak tüm gerekli kullanıcı özniteliklerini göndermez, Microsoft Entra uygulamanın user özniteliklerinde gösterildiği gibi göndermesi gereken öznitelikleri gösterir. Uygulamanın uç nokta üzerinden gerekli kullanıcı özniteliklerini göndermesi /signup/v1.0/continue gerekir. Yanıt, gerekli Kullanıcı özniteliklerindeki yanıta benzer. Kullanıcı özniteliklerini gönderme bölümünde gösterilen kullanıcı özniteliklerini gönderin.
Uygulama, kullanıcının parolasını (parola kimlik doğrulama yöntemiyle e-posta için) uç nokta üzerinden /signup/v1.0/start göndermez. Microsoft Entra yanıtı, kimlik bilgilerinin gerekli olduğunu gösterir. Bkz . yanıt.
Bu yanıt, parola kimlik doğrulama yöntemiyle e-posta için mümkündür.

Yanıt

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "credential_required",
    "error_description": "AADSTS55103: Credential required. Trace ID: d6966055-...-80500 Correlation ID: 3944-...-60d6 Timestamp: yy-mm-dd 02:37:33Z",
    "error_codes": [
        55103
    ],
    "timestamp": "yy-mm-dd 02:37:33Z",
    "trace_id": "d6966055-...-80500",
    "correlation_id": "3944-...-60d6",
    "continuation_token": "AQABEQEAAAA..."
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
continuation_token Microsoft Entra döndüren Continuation token.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
credential_required Hesap oluşturmak için kimlik doğrulaması gereklidir, bu nedenle kullanıcının sağlaması gereken kimlik bilgilerini belirlemek için uç noktaya bir çağrı /signup/v1.0/challenge yapmanız gerekir.
invalid_request Devamlılık belirtecinin doğrulanması başarısız oldu veya istek parametre eklemedi client_id istemci kimliği değeri boş veya geçersiz ya da dış kiracı yöneticisi tüm kiracı kullanıcıları için e-posta OTP'sini etkinleştirmemiş gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant İstekte yer alan verme türü geçerli veya desteklenmiyor ya da OTP değeri yanlış.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
invalid_oob_value Tek seferlik geçiş kodu değeri geçersiz.

Kullanıcıdan parola kimlik bilgilerinin toplanması için uygulamanın, kullanıcının sağlaması gereken kimlik bilgilerini belirlemek için /signup/v1.0/challenge uç noktaya bir çağrı yapması gerekir.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/challenge
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob password redirect
&continuation_token=AQABAAEAAA…
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
challenge_type Hayır Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Parola kayıt akışına sahip e-posta için değerinin içermesi password redirectbeklenir.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.

Başarılı yanıt

Parola, Microsoft Entra yönetim merkezinde kullanıcı için yapılandırılan kimlik doğrulama yöntemiyse, uygulamaya devamlılık belirteci içeren bir başarı yanıtı döndürülür.

HTTP/1.1 200 OK
Content-Type: application/json
{
    "challenge_type": "password",
    "continuation_token": " AQABAAEAAAAty..."
}
Mülkiyet Açıklama
challenge_type parola , gerekli kimlik bilgisi için yanıtta döndürülür.
continuation_token Microsoft Entra döndüren Continuation token.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
    "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

4. Adım: Kaydolmak için kimlik doğrulaması ve belirteç alma

Uygulamanın, önceki adımda istenen Microsoft Entra kullanıcının kimlik bilgilerini (bu örnekte parola) göndermesi gerekir. Uygulamanın bunu uç nokta üzerinden yapmaması durumunda bir parola kimlik bilgisi göndermesi /signup/v1.0/start gerekir. Uygulama, parolayı /signup/v1.0/continue göndermek için uç noktaya bir istekte bulunur. Parola gönderdiğimiz için bir password parametre gereklidir ve parametrenin grant_type bir değer parolası olmalıdır.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded
continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=password 
&password={secure_password}
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet Önceki adımda döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
grant_type Evet Bir kerelik geçiş kodu, parola veya kullanıcı öznitelikleri göndermek için uç noktaya yönelik bir istek /signup/v1.0/continue kullanılabilir. Bu durumda, grant_type değer bu üç kullanım örneğini ayırt etmek için kullanılır. grant_type için olası değerler oob, parola ve özniteliklerdir. Bu çağrıda, kullanıcının parolasını gönderdiğimiz için değerin parola olması beklenir.
password Evet Uygulamanın müşteri kullanıcısından topladığı parola değeri. değerini, uygulamanın müşteri kullanıcısından topladığı parola değeriyle değiştirin {secure_password} . Uygulamanın kullanıcı arabiriminde parola onaylama alanını sağlayarak kullanıcının kullanmak istediği parolanın farkında olduğunu onaylamak sizin sorumluluğunuzdadır. Ayrıca, kullanıcının kuruluşunuzun ilkesine göre neyin güçlü bir parola oluşturduğunu anladığınızdan emin olmanız gerekir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.

Başarılı yanıt

İstek başarılı olursa ancak Microsoft Entra yönetim merkezinde hiçbir öznitelik yapılandırılmadıysa veya gerekli tüm öznitelikler /signup/v1.0/start uç noktası aracılığıyla gönderildiyse, uygulama hiçbir öznitelik göndermeden bir devamlılık belirteci alır. Uygulama, güvenlik belirteçleri isteme bölümünde gösterildiği gibi güvenlik belirteçleri istemek için devamlılık belirtecini kullanabilir. Aksi takdirde, Microsoft Entra yanıtı uygulamanın gerekli öznitelikleri göndermesi gerektiğini belirtir. Yerleşik veya özel olan bu öznitelikler, kiracı yöneticisi tarafından Microsoft Entra yönetim merkezinde yapılandırıldı.

Kullanıcı öznitelikleri gerekli

Bu yanıt uygulamadan ad, yaş ve telefon öznitelikleri için değerler göndermesini istemektedir.

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "attributes_required",
    "error_description": "User attributes required",
    "error_codes": [
            55106
        ],
    "timestamp": "yy-mm-dd 02:37:33Z",
    "trace_id": "d6966055-...-80500",
    "correlation_id": "3944-...-60d6",
    "continuation_token": "AQABAAEAAAAtn...",
    "required_attributes": [
        {
            "name": "displayName",
            "type": "string",
            "required": true,
            "options": {
              "regex": ".*@.**$"
            }
        },
        {
            "name": "extension_2588abcdwhtfeehjjeeqwertc_age",
            "type": "string",
            "required": true
        },
        {
            "name": "postalCode",
            "type": "string",
            "required": true,
            "options": {
              "regex":"^[1-9][0-9]*$"
            }
        }
    ],
}

Not

Özel öznitelikler (dizin uzantıları olarak da bilinir), uzantılar uygulamasınınextension_{appId-without-hyphens}_{attribute-name}kaldırılmış sürümü olan {appId-without-hyphens} kural kullanılarak adlandırılır. Örneğin, uzantılar uygulamasının 2588a-bcdwh-tfeehj-jeeqw-ertc istemci kimliği ve öznitelik adı hobiler ise, özel öznitelik olarakextension_2588abcdwhtfeehjjeeqwertc_hobbies adlandırılır. Özel öznitelikler ve uzantı uygulaması hakkında daha fazla bilgi edinin.

Mülkiyet Açıklama
error Bir özniteliğin doğrulanması veya gönderilmesi gerektiğinden Microsoft Entra kullanıcı hesabını oluşturamıyorsa bu öznitelik ayarlanır.
error_description Hatanın nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
continuation_token Microsoft Entra döndüren Continuation token.
required_attributes Devam etmek için uygulamanın bir sonraki çağrıyı göndermesi gereken özniteliklerin listesi (nesne dizisi). Bu öznitelikler, uygulamanın kullanıcı adı dışında göndermesi gereken ek özniteliklerdir. Microsoft Entra, error parametresinin değeri attributes_required ise yanıttır.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Devamlılık belirtecinin doğrulanması başarısız olduğu veya isteğin parametre içermediği client_id için istemci kimliği değerinin boş veya geçersiz olması gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant İstekte yer alan verme türü geçerli değil veya desteklenmiyor. için grant_typeolası değerler oob, parola, özniteliklerdir
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.
attributes_required Bir veya daha fazla kullanıcı özniteliği gereklidir.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "invalid_grant",
    "error_description": "New password is too weak",
    "error_codes": [
        399246
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd",
    "suberror": "password_too_weak"
}
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Parametre geçersiz bir sınama türü içerdiğinde challenge_type olduğu gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant Gönderilen izin geçersiz, örneğin gönderilen parola çok kısa. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
expired_token Devamlılık belirtecinin süresi doldu.
attributes_required Bir veya daha fazla kullanıcı özniteliği gereklidir.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. Özelliğin olası değerleri suberror şunlardır:

Alt değer Açıklama
password_too_weak Karmaşıklık gereksinimlerini karşılamadığından parola çok zayıf. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_too_short Yeni parola 8 karakterden azdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_too_long Yeni parola 256 karakterden uzun. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_recently_used Yeni parola, yakın zamanda kullanılan parolayla aynı olmamalıdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_banned Yeni parola, yasaklanmış bir sözcük, tümcecik veya desen içerir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_is_invalid Parola geçersiz, örneğin izin verilmeyen karakterler kullandığından. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.

Kullanıcı özniteliklerini gönderme

Akışa devam etmek için uygulamanın gerekli kullanıcı özniteliklerini göndermek için /signup/v1.0/continue uç noktaya bir çağrı yapması gerekir. Öznitelikleri gönderdiğimiz için bir attributes parametre gereklidir ve parametrenin grant_type özniteliklere eşit bir değeri olmalıdır.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue
Content-Type: application/x-www-form-urlencoded
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=attributes 
&attributes={"displayName": "{given_name}", "extension_2588abcdwhtfeehjjeeqwertc_age": "{user_age}", "postalCode": "{postal_code}"}
&continuation_token=AQABAAEAAAAtn...
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
grant_type Evet Bir kerelik geçiş kodu, parola veya kullanıcı öznitelikleri göndermek için uç noktaya yönelik bir istek /signup/v1.0/continue kullanılabilir. Bu durumda, grant_type değer bu üç kullanım örneğini ayırt etmek için kullanılır. grant_type için olası değerler oob, parola ve özniteliklerdir. Bu çağrıda kullanıcı öznitelikleri gönderdiğimiz için değerin öznitelik olması beklenir.
attributes Evet Uygulamanın müşteri kullanıcısından topladığı kullanıcı öznitelik değerleri. Değer bir dizedir, ancak anahtar değerleri yerleşik veya özel kullanıcı özniteliklerinin adları olan bir JSON nesnesi olarak biçimlendirilir. Nesnenin anahtar adları, yöneticinin Microsoft Entra yönetim merkezinde yapılandırmış olduğu özniteliklere bağlıdır. ve {given_name}{user_age} değerlerini, uygulamanın müşteri kullanıcısından topladığı ad, yaş ve posta kodu değerleriyle değiştirin{postal_code}. Microsoft Entra gönderdiğiniz ve var olmayan öznitelikleri yoksayar.

Başarılı yanıt

İstek başarılı olursa, Microsoft Entra kullanıcıyı kaydoldurarak bir devam belirteci verir. Uygulama, uç noktadan güvenlik belirteçleri istemek için devamlılık belirtecini oauth/v2.0/token kullanabilir.

HTTP/1.1 200 OK
Content-Type: application/json
{  
    "continuation_token": "AQABAAEAAAYn..."
} 
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{
    "error": "expired_token",
    "error_description": "AADSTS901007: The continuation_token is expired.  .\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...", 
    "error_codes": [
        552003
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd" 
}
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
continuation_token Microsoft Entra döndüren Continuation token.
unverified_attributes Doğrulanması gereken öznitelik anahtarı adlarının listesi (nesne dizisi). Parametrenin değeri verification_requirederrorparametre yanıta eklenir.
required_attributes Uygulamanın göndermesi gereken özniteliklerin listesi (nesne dizisi). Microsoft Entra, error parametresinin değeri attributes_required olduğunda bu parametreyi yanıtına ekler.
invalid_attributes Doğrulamada başarısız olan özniteliklerin listesi (nesne dizisi). Özelliğin değeri suberror olduğunda bu parametre yanıta eklenir.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Devamlılık belirtecinin doğrulanması başarısız olduğu veya isteğin parametre içermediği client_id için istemci kimliği değerinin boş veya geçersiz olması gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant Sağlanan izin türü geçerli değil, öznitelik doğrulaması başarısız oldu gibi desteklenen veya başarısız doğrulama. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.
attributes_required Bir veya daha fazla kullanıcı özniteliği gereklidir.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
attribute_validation_failed Kullanıcı özniteliği doğrulaması başarısız oldu. invalid_attributes parametresi, doğrulamada başarısız olan özniteliklerin listesini (nesne dizisi) içerir.

5. Adım: Kayıt sonrasında otomatik olarak oturum açma

Kullanıcının kaydolduktan sonra otomatik olarak oturum açması gerekiyorsa, uygulama uç noktaya bir POST isteğinde oauth/v2.0/token bulunur ve güvenlik belirteçlerini almak için önceki adımdan alınan devamlılık belirtecini sağlar. Belirteç uç noktasını çağırmayı öğrenin.

Uç noktalara kullanıcı öznitelikleri gönderme

Microsoft Entra yönetim merkezinde kullanıcı özniteliklerini gerektiği gibi veya isteğe bağlı olarak yapılandırabilirsiniz. Bu yapılandırma, uç noktalarına çağrı yaptığınızda Microsoft Entra nasıl yanıt vereceğini belirler. Kaydolma akışının tamamlanması için isteğe bağlı öznitelikler zorunlu değildir. Bu nedenle, tüm öznitelikler isteğe bağlı olduğunda, kullanıcı adı doğrulanması için önce gönderilmelidir. Aksi takdirde, isteğe bağlı öznitelikler olmadan kaydolma tamamlar.

Aşağıdaki tabloda, kullanıcı özniteliklerinin Microsoft Entra uç noktalara gönderebilmek için ne zaman mümkün olduğu özetlemektedir.

Uç nokta Gerekli öznitelikler İsteğe bağlı öznitelikler Hem gerekli hem de isteğe bağlı öznitelikler
/signup/v1.0/start bitiş noktası Evet Evet Evet
/signup/v1.0/continue kullanıcı adı doğrulamadan önceki uç nokta Evet Evet Evet
/signup/v1.0/continue kullanıcı adı doğrulaması sonrasında uç nokta Evet Hayır Evet

Kullanıcı öznitelikleri değerlerinin biçimi

kullanıcı akışı ayarlarını Microsoft Entra yönetim merkezinde yapılandırarak kullanıcıdan toplamak istediğiniz bilgileri belirtirsiniz. Hem yerleşik hem de özel öznitelikler için değer toplamayı öğrenmek için Kaydolma sırasında özel kullanıcı özniteliklerini toplama makalesini kullanın.

Yapılandırdığınız öznitelikler için Kullanıcı Giriş Türü de belirtebilirsiniz. Aşağıdaki tabloda desteklenen kullanıcı giriş türleri ve kullanıcı arabirimi denetimleri tarafından toplanan değerlerin Microsoft Entra gönderme işlemleri özetlenmektedir.

Kullanıcı Giriş Türü Gönderilen değerlerin biçimi
Metin Kutusu  İş unvanı , Yazılım Mühendisi gibi tek bir değer.
SingleRadioSelect Dil, Norveççe gibi tek bir değer. 
Onay KutusuMultiSelect Hobi veya hobi, Dans veya Dans, Yüzme, Seyahat gibi bir veya birden çok değer.

Özniteliklerin değerlerini nasıl gönderdiğinizi gösteren örnek bir istek aşağıda verilmiştir:

POST /{tenant_subdomain}.onmicrosoft.com/signup/v1.0/continue HTTP/1.1
Host: {tenant_subdomain}.ciamlogin.com
Content-Type: application/x-www-form-urlencoded
 
continuation_token=ABAAEAAAAtfyo... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=attributes 
&attributes={"jobTitle": "Software Engineer", "extension_2588abcdwhtfeehjjeeqwertc_language": "Norwegian", "extension_2588abcdwhtfeehjjeeqwertc_hobbies": "Dancing,Swimming,Traveling"}
&continuation_token=AQABAAEAAAAtn...

Özel kullanıcı öznitelikleri giriş türleri makalesinde kullanıcı öznitelikleri giriş türleri hakkında daha fazla bilgi edinin.

Kullanıcı özniteliklerine başvurma

Kaydolma kullanıcı akışı oluşturduğunuzda, kayıt sırasında kullanıcıdan toplamak istediğiniz kullanıcı özniteliklerini yapılandırabilirsiniz. Microsoft Entra yönetim merkezindeki kullanıcı özniteliklerinin adları, yerel kimlik doğrulama API'sinde bunlara başvurma yönteminizden farklıdır.

Örneğin, Microsoft Entra yönetim merkezindeki Display Name API'de displayName olarak başvurulur.

Yerel kimlik doğrulama API'sinde hem yerleşik hem de özel kullanıcı özniteliklerine başvurmayı öğrenmek için Kullanıcı profili öznitelikleri makalesini kullanın.

Giriş akışı için API referansı

Kullanıcıların kaydolmak için kullandıkları kimlik doğrulama yöntemiyle oturum açmaları gerekir. Örneğin, parola kimlik doğrulama yöntemiyle e-posta kullanarak kaydolan kullanıcıların e-postada ve parolada oturum açması gerekir.

Güvenlik belirteçleri istemek için uygulamanız , oauth/v2.0/initiate, oauth/v2.0/challengeve isteğe bağlı olarak oauth/v2.0/tokenolmak üzere üç uç noktayla oauth/v2.0/introspectetkileşim kurar.

Giriş için API uç noktaları

Uç nokta Açıklama
oauth/v2.0/initiate Bu uç nokta oturum açma akışını başlatır. Uygulamanız zaten var olan bir kullanıcı hesabının kullanıcı adıyla çağırırsa, devamlılık belirteci içeren bir başarı yanıtı döndürür. Uygulamanız Microsoft Entra tarafından desteklenmeyen kimlik doğrulama yöntemlerini kullanmayı isterse, bu uç nokta yanıtı uygulamanıza tarayıcı tabanlı bir kimlik doğrulama akışı kullanması gerektiğini gösterebilir.
oauth/v2.0/challenge Uygulamanız, kullanıcının kimlik doğrulaması için desteklenen sign-in sınama türlerinden birini seçmek üzere Microsoft Entra istemek için bu uç noktayı çağırır. Kiracı yöneticisinin müşteri kullanıcıları için MFA'yı zorunlu kıldığı durumlarda uygulamanız bu uç noktayı çağırarak kullanıcıya ikinci faktör kimlik doğrulama yöntemi için meydan okur.
oauth/v2.0/token Bu uç nokta, uygulamanızdan aldığı kullanıcının kimlik bilgilerini doğrular ve ardından uygulamanıza güvenlik belirteçleri verir. Bu uç noktadan gelen bir yanıt, kullanıcının bir MFA sınamasını tamamlaması veya güçlü bir kimlik doğrulama yöntemi kaydetmesi gerekip gerekmediğini de gösterebilir.
oauth/v2.0/introspect Uygulamanız, çok faktörlü kimlik doğrulaması (MFA) için kayıtlı güçlü kimlik doğrulama yöntemlerinin listesini istemek üzere uygulamayı çağırır. İç gözlem uç noktasını kullanmayı öğrenin

Oturum açma sınama türleri

API, uygulamanın Microsoft Entra çağrısı yaptığında desteklediği kimlik doğrulama yöntemlerini tanıtmasını sağlar. Bunu yapmak için uygulama isteklerinde parametresini challenge_type kullanır. Bu parametre, farklı kimlik doğrulama yöntemlerini temsil eden önceden tanımlanmış değerleri tutar.

Belirli bir kimlik doğrulama yöntemi için, bir uygulamanın kayıt akışı sırasında Microsoft Entra gönderdiği sınama türü değerleri, uygulamanın oturum açması ile aynıdır. Örneğin, parola kimlik doğrulama yöntemine sahip e-postada hem kaydolma hem de oturum açma akışları için oob, parola ve yeniden yönlendirme sınama türü değerleri kullanılır.

Yerel kimlik doğrulaması sınama türleri makalesinde sınama türleri hakkında daha fazla bilgi edinin.

Oturum açma akışı protokolü ayrıntıları

Sıralı diyagram, oturum açma işleminin akışını gösterir. Oturum açma akışı, kullanıcının kimlik doğrulama yöntemine bağlıdır.

Tek seferlik e-posta geçiş koduyla yerel kimlik doğrulaması oturum açma diyagramı.

Uygulama kullanıcının OTP ile e-postasını doğruladıktan sonra güvenlik belirteçleri alır. Tek seferlik geçiş kodunun teslimi gecikirse veya kullanıcının e-postasına hiçbir zaman teslim edilmediyse, kullanıcı bir kerelik başka bir geçiş kodu gönderilmesini isteyebilir. Microsoft Entra, önceki doğrulanmamışsa bir kerelik bir geçiş kodu daha yeniden gönderin. Microsoft Entra tek seferlik bir geçiş kodunu yeniden gönderdiğinde, daha önce gönderilen kodu geçersiz kılır.

Aşağıdaki bölümlerde, oturum açma akışını üç temel adımda özetleyeceğiz.

1. Adım: Oturum açma akışını başlatma isteği

Kimlik doğrulama akışı, uygulamanın oturum açma akışını başlatmak için /initiate uç noktaya post isteği göndermesiyle başlar.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/initiate
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=password redirect
&username=contoso-consumer@contoso.com
&capabilities=registration_required mfa_required
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
username Evet Gibi contoso-consumer@contoso.commüşteri kullanıcısının e-postası.
challenge_type Evet Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Değerin e-posta tek seferlik geçiş kodu ve oob redirect parolalı e-posta için olması beklenirpassword redirect.
capabilities Hayır İstemci uygulamasının "nasıl" hazır olduğunu açıklayan boşlukla ayrılmış bayraklar. Hangi yöntemlerin zorlanabileceğini tanımlarken challenge_type , capabilities yerel kimlik doğrulama API'sine istemci uygulamasının hangi ek akışları işleyebileceğini ve hangi URI'leri gösterebileceğini söyleyin. Örneğin, mfa_required , /introspectve /challenge döngüsü anlamına gelir/token; registration_required istemci uygulaması kayıt API'lerini çağırır ve kayıt kullanıcı arabirimini gösterir. Gerekli özellik istemci uygulamasına dahil değilse, API yeniden yönlendirme döndürür. Desteklenen değerler mfa_required ve registration_required. Özellikler hakkında daha fazla bilgi edinin.

Başarılı yanıt

Başarılı bir yanıt örneği aşağıda verilmişti:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY..."
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json

{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Parametre geçersiz bir sınama türü içerdiğinde challenge_type olduğu gibi istek parametresi doğrulaması başarısız oldu. veya istek parametre içermiyordu client_id , istemci kimliği değeri boş veya geçersiz. Hatanın error_description tam nedenini öğrenmek için parametresini kullanın.
unauthorized_client İstekte kullanılan istemci kimliği geçerli bir istemci kimliği biçimine sahip, ancak dış kiracıda yok veya yanlış.
invalid_client Uygulamanın istekte içerdiği istemci kimliği, genel istemci olmadığı veya yerel kimlik doğrulaması için etkinleştirilmediği gibi yerel kimlik doğrulama yapılandırması olmayan bir uygulamaya yöneliktir. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
user_not_found Kullanıcı adı yok.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.

Hata parametresi invalid_client değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
nativeauthapi_disabled Yerel kimlik doğrulaması için etkinleştirilmemiş bir uygulamanın istemci kimliği.

2. Adım: Bir kimlik doğrulama yöntemi seçin

Akışa devam etmek için uygulama, kullanıcının bir MFA sınamasının kimliğini doğrulaması veya tamamlaması için desteklenen sınama türlerinden birini seçmek üzere Microsoft Entra istemek üzere önceki adımdan aldığı devamlılık belirtecini kullanır. Uygulama uç noktaya bir POST isteğinde bulunur /oauth2/v2.0/challenge .

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/challenge
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=password redirect 
&continuation_token=uY29tL2F1dGhlbnRpY... 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token. Önceki istek uç noktayı veya kullanıcı bir MFA sınamasını /oauth2/v2.0/initiate tamamlarsa uç noktayı çağırır/oauth2/v2.0/introspect.
challenge_type Hayır Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Değerin e-posta tek seferlik geçiş kodu ve oob redirect parolalı e-posta için olması beklenirpassword redirect.
id Hayır Uç noktadan döndürülen güçlü kimlik doğrulama yönteminin dize tanımlayıcısı /oauth2/v2.0/introspect . bu parametre, istemci uygulaması kullanıcıya ikinci bir faktör kimlik doğrulaması için meydan okurken gereklidir. İç gözlem uç noktasını kullanmayı öğrenin.

Başarılı yanıt

Başarı yanıtı, kullanıcının kimlik doğrulama yöntemine bağlıdır.

Kiracı yöneticisi kullanıcının kimlik doğrulama yöntemi olarak Microsoft Entra yönetim merkezinde tek seferlik geçiş kodu yapılandırdıysa Microsoft Entra kullanıcının e-postasına tek seferlik geçiş kodu gönderir, ardından oob sınama türüyle yanıt verir ve tek seferlik geçiş kodu hakkında daha fazla bilgi sağlar.

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "challenge_type": "oob",
    "binding_method": "prompt ", 
    "challenge_channel": "email",
    "challenge_target_label ": "c***r@co**o**o.com ",
    "code_length": 8
} 
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
challenge_type Kullanıcının kimlik doğrulaması için seçilen sınama türü.
binding_method Tek geçerli değer istemdir. Bu parametre gelecekte kullanıcının tek seferlik geçiş kodunu girmesi için daha fazla yol sunmak için kullanılabilir. Oob ise challenge_type verilir
challenge_channel Tek seferlik geçiş kodunun gönderildiği kanalın türü. Şu anda e-postayı destekliyoruz.
challenge_target_label Tek seferlik geçiş kodunun gönderildiği belirsiz bir e-posta.
code_length Microsoft Entra oluşturduğu tek seferlik geçiş kodunun uzunluğu.

Yeniden yönlendirme yanıtı

Aşağıdaki senaryolarda web tabanlı kimlik doğrulama akışına geri dönüş gerekebilir:

  • İstemci uygulaması, Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemez.
  • Kullanıcı SMS'yi güçlü bir kimlik doğrulama yöntemi olarak kullanmayı dener, ancak sahtekarlık koruması, yüksek riskli olarak kabul ederse isteği engeller (yalnızca parola kimlik doğrulaması içeren e-postalarda).

Bu senaryolarda, Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Parametre geçersiz bir sınama türü içerdiğinde challenge_type olduğu gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant İstekte yer alan devamlılık belirteci geçerli değil.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.

3. Adım: Güvenlik belirteçleri isteği

Uygulama uç noktaya bir POST isteğinde oauth2/v2.0/token bulunur ve güvenlik belirteçlerini almak için önceki adımda seçilen kullanıcının kimlik bilgilerini sağlar.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=password 
&password={secure_password}
&scope=openid offline_access 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
grant_type Evet Verme türü. Belirteç uç noktasını çağırdığınızda, bu değer şu
- Kullanıcının ilk faktörlü kimlik doğrulamasını doğrulamak için oturum açma akışında parola kimlik doğrulama yöntemiyle e-posta parolası.
- oturum açma akışında tek seferlik geçiş kodu kimlik doğrulama yöntemi için oob.
- Kaydolma akışı sonrasında otomatik oturum açma için continuation_token.
- Self servis parola sıfırlama akışı sonrasında otomatik oturum açma için continuation_token.
- Güçlü bir kimlik doğrulama yöntemi kayıt akışı sonrasında continuation_token.
- Kullanıcının ikinci faktör kimlik doğrulamasını doğrularken mfa_oob.
scope Evet Boşlukla ayrılmış kapsam listesi. Tüm kapsamlar , profil, openid ve e-posta gibi OpenID Connect (OIDC) kapsamlarıyla birlikte tek bir kaynaktan olmalıdır. Uygulamanın kimlik belirteci Microsoft Entra için openid kapsamını içermesi gerekir. Uygulamanın yenileme belirteci vermek için Microsoft Entra offline_access kapsamını içermesi gerekir. Microsoft kimlik platformu İzinler ve onay hakkında daha fazla bilgi edinin.
password Hayır Uygulamanın kullanıcıdan topladığı parola değeri. değerini, uygulamanın kullanıcıdan topladığı parola değeriyle değiştirin {secure_password} . Kimlik doğrulama yöntemi parola ile e-posta ise bu parametre gereklidir .
oob Hayır Kullanıcının e-postayla aldığı tek seferlik geçiş kodu. Gerekli ise:
- Birincil kimlik doğrulama yöntemi tek seferlik e-posta geçiş kodudur.
- Uygulama, birincil kimlik doğrulama yöntemi parola ile e-posta olduğunda bir MFA sınamasını karşılamak için e-posta tek seferlik geçiş kodunu gönderir.
Tek seferlik geçiş kodunu yeniden göndermek için uç noktayı yeniden çağırın /challenge .
username Hayır Kaydolmak istediği kullanıcının e-posta adresi, örneğin contoso-consumer@contoso.com. Bu parametre bir kayıt akışında gereklidir .

Başarılı yanıt

Başarılı bir yanıt örneği aşağıda verilmişti:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "token_type": "Bearer",
    "scope": "openid profile",
    "expires_in": 4141,
    "access_token": "eyJ0eXAiOiJKV1Qi...",
    "refresh_token": "AwABAAAA...",
    "id_token": "eyJ0eXAiOiJKV1Q..."
}
Mülkiyet Açıklama
token_type Belirteç türü değerini gösterir. Microsoft Entra'nin desteklediği tek tür Bearer'dir.
scopes Erişim belirtecinin geçerli olduğu kapsamların boşlukla ayrılmış listesi.
expires_in Erişim belirtecinin geçerli kaldığı saniye cinsinden süre.
access_token Uygulamanın uç noktadan istediği erişim belirteci /token . Uygulama, web API'leri gibi güvenli kaynaklara erişim istemek için bu erişim belirtecini kullanabilir.
refresh_token OAuth 2.0 yenileme belirteci. Uygulama, geçerli erişim belirtecinin süresi dolduktan sonra diğer erişim belirteçlerini almak için bu belirteci kullanabilir. Yenileme belirteçleri uzun ömürlü. Kaynaklara erişimi uzun süreler boyunca koruyabilirler. Erişim belirtecini yenileme hakkında daha fazla ayrıntı için erişim belirtecini yenileme bölümüne bakın.
Not: Yalnızca offline_access kapsamı istemeniz durumunda verilir.
id_token Kullanıcıyı tanımlamak için kullanılan bir JSON Web Belirteci (Jwt). Uygulama, oturum açan kullanıcı hakkında bilgi istemek için belirtecin kodunu çözebilir. Uygulama, değerleri önbelleğe alıp görüntüleyebilir ve gizli istemciler yetkilendirme için bu belirteci kullanabilir. Kimlik belirteçleri hakkında daha fazla bilgi için bkz. Microsoft kimlik platformundaki kimlik belirteçleri.
Not: Yalnızca openid kapsamı istemeniz durumunda verilir.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_grant", 
    "error_description": "AADSTS901007: Error validating credentials due to invalid username or password.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        50126 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request İstek parametresi doğrulaması başarısız oldu. Ne olduğunu anlamak için hata açıklamasındaki iletiyi kullanın.
invalid_grant İstekte yer alan devamlılık belirteci geçerli değil, istekte yer alan kullanıcı oturum açma kimlik bilgileri geçersiz, kullanıcıdan daha fazla etkileşim gerekiyor veya istekte yer alan izin türü bilinmiyor.
invalid_client İstekte yer alan istemci kimliği genel istemciye yönelik değildir.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.
invalid_scope İstekte yer alan kapsamlardan biri veya daha fazlası geçersiz.
unauthorized_client İstekte yer alan istemci kimliği geçersiz veya yok.
unsupported_grant_type İstekte yer alan verme türü desteklenmiyor veya yanlış.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
invalid_oob_value Uygulamanın gönderdiği tek seferlik geçiş kodunun değeri geçersiz.
mfa_required MFA gereklidir. Yanıt bir devamlılık belirteci içerir. oauth2/v2.0/introspect Kullanıcının kayıtlı güçlü kimlik doğrulama yöntemlerini almak için uç noktayı çağırın. Bu alt ayar yalnızca kullanıcının birincil kimlik doğrulama yöntemi parolalı e-posta olduğunda oluşur. Kullanıcının kayıtlı güçlü kimlik doğrulama yöntemlerini nasıl edineceklerine bakın.

Not: Bazı durumlarda MFA gereklidir, ancak yerel kimlik doğrulaması döndürmez mfa_required. veya örneğin, güçlü bir kimlik doğrulama yöntemi kayıt akışı çağrısından /oauth2/v2.0/token önce gelirse ve bu akış sırasında tek kullanılabilir yöntem (e-posta) zaten doğrulanmıştır.
registration_required Kullanıcının bir MFA sınamasını tamamlaması gerekir, ancak kayıtlı güçlü kimlik doğrulama yöntemi yoktur. Kullanıcıdan bir tane kaydetmesini iste. Bu hata, kullanıcının birincil kimlik doğrulama yöntemi parola ile e-posta olduğunda oluşur. Güçlü bir kimlik doğrulama yöntemini kaydetmeyi öğrenin.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliğini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra, yanıtında bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
    "challenge_type": "redirect",
    "redirect_reason": "Client is missing registration_required capability"
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.
redirect_reason Yeniden yönlendirmenin gerekli olmasının nedeni. Örneğin, Microsoft Entra güçlü bir kimlik doğrulama yöntemi için MFA veya kayıt gerekli olduğunu algılar, ancak uygulama isteğine bu özellikleri eklememiştir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Kullanıcı kayıtlı güçlü kimlik doğrulama yöntemlerini alma

oauth2/v2.0/introspect Kullanıcının kayıtlı güçlü kimlik doğrulama yöntemlerinin listesini istemek için uç noktayı kullanın.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/introspect
Content-Type: application/x-www-form-urlencoded
continuation_token=uY29tL2F1dGhlbnRpY...
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "methods":[
        {
            "id":"0a0a0a0a-1111-bbbb-2222-3c3c3c3c3c3c",
            "challenge_type":"oob",
            "challenge_channel":"email",
            "login_hint":"c***r@co**o**o.com"
        },
        {   
          "id": "1b1b1b1b-2222-cccc-3333-4d4d4d4d4d4d",   
          "challenge_type": "oob",   
          "challenge_channel": "sms",   
          "login_hint": "+1********6"
        }
    ]
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
methods Kullanıcı tarafından kaydedilen güçlü kimlik doğrulama yöntemlerinin listesi (nesne listesi).

MFA yöntemi nesnesi aşağıdaki özelliklere sahiptir:

Mülkiyet Açıklama
id MFA yöntemi için otomatik olarak oluşturulan benzersiz dize tanımlayıcısı. Uygulama, uç noktayı çağırdığında olduğu gibi id bu dizeyi /oauth2/v2.0/challenge kullanır.
challenge_type Kullanıcının MFA yöntemi olarak kullanması için seçilen sınama türü. Desteklenen geçerli sınama türü oob.
challenge_channel MFA yönteminin gönderildiği kanalın türü. Desteklenen geçerli sınama kanalı e-postadır.
login_hint Belirsiz bir e-posta gibi güçlü kimlik doğrulama yöntemine yönelik ipucu.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The continuation_token provided is not valid for this endpoint.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        50126 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request İstek parametresi doğrulaması başarısız oldu. Ne olduğunu anlamak için hata açıklamasındaki iletiyi kullanın.
invalid_client İstekte yer alan istemci kimliği genel istemciye yönelik değildir.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.
server_error İstekte bir sorun oluştu.

İstemci uygulaması kullanıcı için kaydedilen güçlü kimlik doğrulama yöntemlerinin listesini başarıyla aldıktan sonra, kullanıcı MFA sınamasını tamamlamak için kullanmak istediği bir yöntemi seçer. Ardından akış aşağıdaki gibi devam eder:

  1. İstemci uygulaması öğesini /oauth2/v2.0/challenge çağırır ve tercih edilen MFA yönteminden /oauth2/v2.0/introspectid alınan devamlılık belirtecini içerir:

    POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/challenge
    Content-Type: application/x-www-form-urlencoded    
    client_id=00001111-aaaa-2222-bbbb-3333cccc4444
    &id=0a0a0a0a-1111-bbbb-2222-3c3c3c3c3c3c 
    &continuation_token=uY29tL2F1dGhlbnRpY... 
    
  2. Microsoft Entra kullanıcının sınama kanalına e-posta gibi bir sınama kodu gönderir ve ardından istemci uygulamasına bir devamlılık belirteci ve MFA sınama ayrıntılarıyla yanıt verir:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "continuation_token": "uY29tL2F1dGhlbnRpY...",
        "challenge_type": "oob",
        "binding_method": "prompt ", 
        "challenge_channel": "email",
        "challenge_target_label ": "c***r@co**o**o.com ",
        "code_length": 8
    } 
    
  3. Uygulama artık uç noktaya bir POST isteği gönderebilir ve güvenlik belirteçlerini almak için /oauth2/v2.0/token bir devamlılık belirteci, doğru verme türü ve karşılık gelen verme türü değerlerini içerir. Güvenlik belirteçleri isteği bölümünde beklenen yanıta bakın:

    POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/oauth2/v2.0/token
    Content-Type: application/x-www-form-urlencoded    
    client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
    &continuation_token=uY29tL2F1dGhlbnRpY...   
    &grant_type=mfa_oob  
    &oob={otp_code}
    &scope=openid offline_access
    

Güçlü bir kimlik doğrulama yöntemi API başvurusu kaydetme

Yerel kimlik doğrulaması, güçlü kimlik doğrulama yönteminin kaydını destekler. Uygulama /oauth2/v2.0/token uç noktasını çağırdığında ve MFA gerekli olduğunda ancak kullanıcının kayıtlı güçlü bir yöntemi yoksa yanıt registeration_required, belirteçler verilmeden önce uygulamaya kullanıcının bir tane kaydetmesini söyler.

İstemci uygulaması güçlü bir kimlik doğrulama yöntemini kaydetmek için akışı tamamladıktan sonra güvenlik belirteçleri istemek için uç noktayı çağırır /oauth2/v2.0/token .

Güçlü kimlik doğrulama yöntemi kayıt uç noktaları

Güçlü kimlik doğrulama yöntemi kayıt API'sini kullanmak için uygulama aşağıdaki tabloda gösterilen uç noktayı kullanır:

Uç nokta Açıklama
/register/v1.0/introspect Kullanıcının kaydedebileceği güçlü kimlik doğrulama yöntemlerinin listesini getirmek için bu uç noktayı çağırın.
/register/v1.0/challenge Sınamayı kullanıcıya göndermek için tek seferlik e-posta geçiş kodu gibi bu uç noktayı çağırın.
/register/v1.0/continue Güçlü bir kimlik doğrulama yöntemi kaydetmek için bir akışı tamamlamak üzere uygulamanın kullanıcıdan topladığı tek seferlik geçiş kodu gibi sınamayı göndermek için bu uç noktayı çağırın. Çağrı başarılı olduktan ve bir devamlılık belirteci aldıktan sonra güvenlik belirteçleri istemek için uç nokta uç noktasını çağırın /oauth2/v2.0/token . Belirteç uç noktasını çağırmayı öğrenin.

1. Adım: Güçlü kimlik doğrulama yöntemlerinin listesini alma

Kayıt akışı, uygulama kullanıcının kaydetmesine izin verilen güçlü kimlik doğrulama yöntemlerinin listesini istediğinde başlar.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/register/v1.0/introspect
Content-Type: application/x-www-form-urlencoded
?continuation_token=uY29tL2F1dGhlbnRpY... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444  
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.

Başarılı yanıt

Başarılı bir yanıt örneği aşağıda verilmişti:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "methods":[
        {
            "id":"email",
            "challenge_type":"oob",
            "challenge_channel":"email",
            "login_hint":"caseyjensen@contoso.com"
        },
        {   
          "id": "sms",   
          "challenge_type": "oob",   
          "challenge_channel": "sms"
        }
    ]
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
methods Kullanıcının kaydedebilmek için kullanabileceği güçlü kimlik doğrulama yöntemlerinin listesi (nesne listesi).

Güçlü kimlik doğrulama yöntemleri nesnesi aşağıdaki özelliklere sahiptir:

Mülkiyet Açıklama
id yönteminin dize anahtarı. Desteklenen değerler e-postası, sms.
challenge_type Kullanıcının MFA yöntemi olarak kullanması için seçilen sınama türü. Desteklenen geçerli sınama türü oob.
challenge_channel MFA yönteminin gönderildiği kanalın türü. Desteklenen değerler e-postası, sms.
login_hint E-posta gibi güçlü kimlik doğrulama yöntemi için ipucu. Bu değer, istemci uygulaması tarafından e-posta metin kutusunu önceden doldurma amacıyla kullanılır.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The continuation_token provided is not valid for this endpoint.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        50126 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Devamlılık belirtecinin doğrulanması başarısız oldu veya istek parametre eklemedi client_id istemci kimliği değeri boş veya geçersiz ya da dış kiracı yöneticisi tüm kiracı kullanıcıları için e-posta OTP'sini etkinleştirmemiş gibi istek parametresi doğrulaması başarısız oldu.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.

2. Adım: Güçlü kimlik doğrulama yöntemini seçin

Bu adımda, kullanıcının kaydetmek istediği güçlü kimlik doğrulama yöntemini gönderin. Microsoft Entra kullanıcıya e-posta tek seferlik geçiş kodu gibi bir sınama gönderir.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/register/v1.0/challenge 

?continuation_token=uY29tL2F1dGhlbnRpY... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444  
&challenge_type=oob  
&challenge_channel=email 
&challenge_target=contoso-consumer@contoso.com 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
continuation_token Evet Microsoft Entra uç noktasından döndüren /register/v1.0/introspect
challenge_type Evet Kimlik doğrulama yönteminin sınama türü. Geçerli tür oob.
challenge_target Evet Kullanıcının kaydetmek istediği e-posta veya telefon numarası.
challenge_channel Hayır Sınamayı göndermek için kanal. Desteklenen sınama kanalı değerleri: e-posta, sms.

Başarılı yanıt

İşte başarılı bir yanıt örneği.

Örnek 1:

HTTP/1.1 200 OK
Content-Type: application/json
{ 
  "continuation_token": "uY29tL2F1dGhlbnRpY...", 
  "challenge_type": "oob", 
  "binding_method": "prompt", 
  "challenge_target": "contoso-consumer@contoso.com", 
  "challenge_channel": "email", 
  "code_length": 8 
} 

Örnek 2:

Kaydolma akışı güçlü kimlik doğrulama yöntemi kayıt akışından önceyse ve uç noktaya gönderilen /register/v1.0/challenge e-posta kayıt akışında doğrulananla eşleşiyorsa, yerel kimlik doğrulama API'si kullanıcıya bir sınama göndermeden yöntemi kaydeder. Bu durumda yanıt aşağıdaki kod parçacığına benzer olacaktır:

HTTP/1.1 200 OK
Content-Type: application/json
{ 
  "continuation_token": "uY29tL2F1dGhlbnRpY...",
  "challenge_type": "preverified" 
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
challenge_type Güçlü kimlik doğrulama yöntemi önceden doğrulanırsa kullanıcının kimlik doğrulaması için oob veya önceden doğrulanmış gibi sınama türü seçildi.
binding_method Tek geçerli değer istemdir. Bu parametre gelecekte kullanıcıya tek seferlik geçiş kodunu girmenin daha fazla yolunu sunmak için kullanılabilir. Oob ise ve güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa challenge_type verilir.
challenge_channel Tek seferlik geçiş kodunun gönderildiği kanalın türü. Desteklenen değerler e-postası, sms. Güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa döndürülür.
code_length İstenirse binding_method tek seferlik geçiş kodunun uzunluğu. Güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa döndürülür.
challenge_target Sınamanın gönderildiği hedef. Bu, istekte sağlanan girişle aynıdır. Güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa döndürülür.
interval İstemcinin /register/continue yoklaması arasında beklemesi gereken aralık (saniye cinsinden). Yalnızca ve güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa prompt=none döndürülür. İstemciler yerel kimlik doğrulama API'sinden her aldığında HTTP 429 aralığı iki katına çıkarmalıdır.

Hata yanıtı

Buradaki hatalar, uç noktayı çağırdığınızda karşılaşabileceğiniz hatalara /register/v1.0/introspect benzer. Ancak, telefon numarası kaydedilirken, telefon numarası yüksek riskli olarak kabul edilirse, istek engellenebilir.

İstek engellenirse karşılaşabileceğiniz olası hatalar şunlardır:

Hata değeri Açıklama
access_denied SMS engellendi.

Hata parametresi access_denied değerine sahipse, Microsoft Entra yanıtında bir alt özellik içerir. invalid_grant hatası için alt özelliğin olası değerleri şunlardır:

Alt değer Açıklama
provider_blocked_by_admin Kiracı yöneticisi telefon bölgesini engelledi.
provider_blocked_by_rep Çok faktörlü kimlik doğrulama yöntemi engellendi (telefon numarası RepMap tarafından engellendi).

3. Adım: Sınama gönderme

Bu adımda, güçlü kimlik doğrulama yönteminin /register/v1.0/continue kaydını tamamlamak için uç noktaya bir çağrı yapın.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/register/v1.0/continue 

?continuation_token=uY29tL2F1dGhlbnRpY... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444  
&grant_type=oob  
&oob={otp_code}
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
grant_type Evet Verme türü. Desteklenen geçerli değer oob veya güçlü kimlik doğrulama yöntemi uç noktada önceden doğrulanırsa /register/v1.0/challenge.
oob Hayır Müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş kodu. değerini, müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş kodu değerleriyle değiştirin {otp_code} . Tek seferlik geçiş kodunu yeniden göndermek için uygulamanın uç noktaya yeniden istekte /register/v1.0/challenge bulunması gerekir. Uç noktada güçlü kimlik doğrulama yöntemi önceden doğrulanmamışsa /register/v1.0/challenge gereklidir.

Başarılı yanıt

Başarılı bir yanıt örneği aşağıda verilmişti:

HTTP/1.1 200 OK
Content-Type: application/json
{ 
  "continuation_token": "uY29tL2F1dGhlbnRpY..."
} 
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren continuation belirteci. Güvenlik belirteçleri istemek üzere uç noktayı çağırmak /oauth2/v2.0/token için bu devamlılık belirtecini kullanın. Belirteç uç noktasını çağırmayı öğrenin.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS55200: The continuation_token is invalid.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        55200 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
}
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Devamlılık belirtecinin doğrulanması başarısız oldu veya istek parametre eklemedi client_id istemci kimliği değeri boş veya geçersiz ya da dış kiracı yöneticisi tüm kiracı kullanıcıları için e-posta OTP'sini etkinleştirmemiş gibi istek parametresi doğrulaması başarısız oldu.
invalid_grant İstekte yer alan verme türü geçerli veya desteklenmiyor ya da OTP değeri yanlış.
expired_token İstekte yer alan devamlılık belirtecinin süresi doldu.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
invalid_oob_value Tek seferlik geçiş kodu değeri geçersiz.

Self servis parola sıfırlama (SSPR)

Birincil kimlik doğrulama yöntemi parolalı e-posta olan kullanıcılar için, müşteri kullanıcılarının parolalarını sıfırlamasını sağlamak için self servis parola sıfırlama (SSPR) API'sini kullanın. Parolayı unuttum veya parola senaryolarını değiştirmek için bu API'i kullanabilirsiniz.

Kendi kendine hizmet şifre sıfırlama için API uç noktaları

Bu API'yi kullanmak için uygulama aşağıdaki tabloda gösterilen uç noktayı kullanır:

Uç nokta Açıklama
/resetpassword/v1.0/start Müşteri kullanıcı uygulamada Parolayı unuttum veya Parolayı değiştir bağlantısını veya düğmesini seçtiğinde uygulamanız bu uç noktayı çağırır. Bu uç nokta kullanıcının kullanıcı adını (e-posta) doğrular, ardından parola sıfırlama akışında kullanmak üzere bir devamlılık belirteci döndürür. Uygulamanız Microsoft Entra tarafından desteklenmeyen kimlik doğrulama yöntemlerini kullanmayı isterse, bu uç nokta yanıtı uygulamanıza tarayıcı tabanlı bir kimlik doğrulama akışı kullanması gerektiğini gösterebilir.
/resetpassword/v1.0/challenge İstemci ve devamlılık belirteci tarafından desteklenen sınama türlerinin listesini kabul eder. Tercih edilen kurtarma kimlik bilgilerine bir sınama verilir. Örneğin, oob sınaması müşteri kullanıcı hesabıyla ilişkili e-postaya bant dışı bir tek seferlik geçiş kodu oluşturur. Uygulamanız Microsoft Entra tarafından desteklenmeyen kimlik doğrulama yöntemlerini kullanmayı isterse, bu uç nokta yanıtı uygulamanıza tarayıcı tabanlı bir kimlik doğrulama akışı kullanması gerektiğini gösterebilir.
/resetpassword/v1.0/continue Uç nokta tarafından verilen sınamayı /resetpassword/v1.0/challenge doğrular, ardından uç nokta için bir /resetpassword/v1.0/submit döndürür veya kullanıcıya başka bir sınama verir.
/resetpassword/v1.0/submit Parola sıfırlama akışını tamamlamak için devamlılık belirteciyle birlikte kullanıcı tarafından yeni bir parola girişi kabul eder. Bu uç nokta başka bir devamlılık belirteci oluşturur.
/resetpassword/v1.0/poll_completion Uygulama, parola sıfırlama isteğinin durumunu denetlemek için uç nokta tarafından verilen /resetpassword/v1.0/submit kullanabilir.
oauth2/v2.0/token Parola sıfırlama başarılı olursa, uygulama uç noktadan güvenlik belirteçleri /resetpassword/v1.0/poll_completion almak için uç noktadan aldığı devamlılık belirtecini oauth2/v2.0/token kullanabilir.

Self servis parola sıfırlama sınama türleri

API, uygulamanın Microsoft Entra çağrısı yaptığında desteklediği kimlik doğrulama yöntemlerini tanıtmasını sağlar. Bunu yapmak için uygulama isteklerinde parametresini challenge_type kullanır. Bu parametre, farklı kimlik doğrulama yöntemlerini temsil eden önceden tanımlanmış değerleri tutar.

SSPR akışı için sınama türü değerleri oob ve yeniden yönlendirmedir.

Yerel kimlik doğrulama sınaması türlerindeki sınama türleri hakkında daha fazla bilgi edinin.

Self servis parola sıfırlama akışı protokolü ayrıntıları

Sıralı diyagramda parola sıfırlama işleminin akışı gösterilir.

Yerel kimlik doğrulaması self servis parola sıfırlama akışının diyagramı.

Bu diyagram, uygulamanın kullanıcıdan farklı zamanlarda (ve muhtemelen ayrı ekranlarda) kullanıcı adı (e-posta) ve parola topladığını gösterir. Ancak, uygulamanızı aynı ekranda kullanıcı adını (e-posta) ve yeni parolayı toplayacak şekilde tasarlayabilirsiniz. Bu durumda uygulama parolayı tutar ve ardından gerekli olduğu uç nokta üzerinden /resetpassword/v1.0/submit gönderir.

1. Adım: Self servis parola sıfırlama akışını başlatma isteği

Parola sıfırlama akışı, uygulamanın self servis parola sıfırlama akışını başlatmak için /resetpassword/v1.0/start uç noktaya bir POST isteği göndermesiyle başlar.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/start
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&challenge_type=oob redirect 
&username=contoso-consumer@contoso.com 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
username Evet Gibi contoso-consumer@contoso.commüşteri kullanıcısının e-postası.
challenge_type Evet Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob password redirect Liste her zaman sınama türünü içermelidir redirect . Bu istek için değerinin içermesi oob redirectbeklenir.
capabilities Hayır İstemci uygulamasının "nasıl" hazır olduğunu açıklayan boşlukla ayrılmış bayraklar. Hangi yöntemlerin zorlanabileceğini tanımlarken challenge_type , capabilities yerel kimlik doğrulama API'sine istemci uygulamasının hangi ek akışları işleyebileceğini ve hangi URI'leri gösterebileceğini söyleyin. Örneğin, mfa_required başka bir /challenge ve /token döngüsü anlamına gelir; registration_required istemci uygulaması kayıt API'lerini çağırır ve kayıt kullanıcı arabirimini gösterir. Gerekli bir özellik istemci uygulaması tarafından tanıtılmıyorsa, API yeniden yönlendirme döndürür. Desteklenen değerler mfa_required ve registration_required. Özellikler hakkında daha fazla bilgi edinin.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY..."
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request parametre geçersiz bir sınama türü içerdiğinde veya istek parametre içermediğinde challenge_typeclient_id istemci kimliği değerinin boş veya geçersiz olması gibi istek parametresi doğrulaması başarısız oldu. Hatanın error_description tam nedenini öğrenmek için parametresini kullanın.
user_not_found Kullanıcı adı yok.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.
invalid_client Uygulamanın istekte içerdiği istemci kimliği, genel istemci olmadığı veya yerel kimlik doğrulaması için etkinleştirilmediği gibi yerel kimlik doğrulama yapılandırması olmayan bir uygulamaya yöneliktir. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
unauthorized_client İstekte kullanılan istemci kimliği geçerli bir istemci kimliği biçimine sahip, ancak dış kiracıda yok veya yanlış.

Hata parametresi invalid_client değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
nativeauthapi_disabled Yerel kimlik doğrulaması için etkinleştirilmemiş bir uygulamanın istemci kimliği.

2. Adım: Bir kimlik doğrulama yöntemi seçin

Akışa devam etmek için uygulama, kullanıcının kimlik doğrulaması için desteklenen sınama türlerinden birini seçmesini Microsoft Entra istemek üzere önceki adımdan alınan devamlılık belirtecini kullanır. Uygulama uç noktaya bir POST isteğinde bulunur /resetpassword/v1.0/challenge . Bu istek başarılı olursa Microsoft Entra kullanıcının hesap e-postasına tek seferlik bir geçiş kodu gönderir. Şu anda yalnızca OTP e-postasını destekliyoruz.

Aşağıda bir örnek verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/challenge
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&challenge_type=oob redirect
&continuation_token=uY29tL2F1dGhlbnRpY... 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
challenge_type Hayır Uygulamanın desteklediği yetkilendirme sınama türü dizelerinin boşlukla ayrılmış listesi.oob redirect Liste her zaman sınama türünü içermelidir redirect . Bu istek için değerinin içermesi oob redirectbeklenir.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "challenge_type": "oob",
    "binding_method": "prompt ", 
    "challenge_channel": "email",
    "challenge_target_label ": "c***r@co**o**o.com ",
    "code_length": 8
} 
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
challenge_type Kullanıcının kimlik doğrulaması için seçilen sınama türü.
binding_method Tek geçerli değer istemdir. Bu parametre gelecekte kullanıcıya tek seferlik geçiş kodunu girmenin daha fazla yolunu sunmak için kullanılabilir. Oob ise challenge_type verilir
challenge_channel Tek seferlik geçiş kodunun gönderildiği kanalın türü. Şu anda e-postayı destekliyoruz.
challenge_target_label Tek seferlik geçiş kodunun gönderildiği belirsiz bir e-posta. Kullanıcı için MFA etkinleştirildiyse, tek seferlik geçiş kodunu içeren e-posta şu adrese gönderilir:
- E-posta adresi hesap e-posta adresinden farklı olduğunda güçlü kimlik doğrulama yöntemi olarak kullanılan e-posta adresi.
- güçlü kimlik doğrulama yöntemi SMS olduğunda hesap e-posta adresi.
code_length Microsoft Entra oluşturduğu tek seferlik geçiş kodunun uzunluğu.

Yeniden yönlendirme yanıtı

İstemci uygulaması Microsoft Entra gereken kimlik doğrulama yöntemini veya özelliklerini desteklemiyorsa web tabanlı kimlik doğrulama akışına geri dönüş gerekir. Bu senaryoda Microsoft Entra yanıtta bir redirect sınama türü döndürerek uygulamayı bilgilendirir:

HTTP/1.1 200 OK
Content-Type: application/json
{     
   "challenge_type": "redirect" 
} 
Mülkiyet Açıklama
challenge_type Microsoft Entra, sınama türüne sahip bir yanıt döndürür. Bu sınama türünün değeri, uygulamanın web tabanlı kimlik doğrulama akışını kullanmasını sağlayan yeniden yönlendirmedir.

Bu yanıt başarılı olarak kabul edilir, ancak uygulamanın web tabanlı kimlik doğrulama akışına geçmesi gerekir. Bu durumda, Microsoft tarafından oluşturulmuş ve desteklenen bir kimlik doğrulama kitaplığı kullanmanızı öneririz.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Parametre geçersiz bir sınama türü içerdiğinde challenge_type veya devam belirteci doğrulaması başarısız olduğunda istek parametresi doğrulaması başarısız oldu.
expired_token Devamlılık belirtecinin süresi doldu.
unsupported_challenge_type challenge_type Parametre değeri sınama türünü içermezredirect.

3. Adım: Tek seferlik geçiş kodu gönderme

Ardından uygulama uç noktaya bir POST isteğinde bulunur /resetpassword/v1.0/continue . İstekte, uygulamanın önceki adımda seçilen kullanıcının kimlik bilgilerini ve uç noktadan verilen devam belirtecini içermesi /resetpassword/v1.0/challenge gerekir.

burada bir istek örneği verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/continue
Content-Type: application/x-www-form-urlencoded
continuation_token=uY29tL2F1dGhlbnRpY... 
&client_id=00001111-aaaa-2222-bbbb-3333cccc4444 
&grant_type=oob 
&oob={otp_code}
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
grant_type Evet Tek geçerli değer oob değeridir.
oob Evet Müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş kodu. değerini, müşteri kullanıcısının e-postasında aldığı tek seferlik geçiş koduyla değiştirin {otp_code} . Tek seferlik geçiş kodunu yeniden göndermek için uygulamanın uç noktaya yeniden istekte /resetpassword/v1.0/challenge bulunması gerekir.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{ 
    "expires_in": 600,
    "continuation_token": "czZCaGRSa3F0MzpnW...",
} 
Mülkiyet Açıklama
expires_in continuation_token süresi dolmadan önceki saniye sayısı. En yüksek değer expires_in 600 saniyedir.
continuation_token Microsoft Entra döndüren Continuation token.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS55200: The continuation_token is invalid.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        55200 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request Devamlılık belirtecinin doğrulanması başarısız olduğu veya isteğin parametre içermediğiclient_id, istemci kimliği değerinin boş veya geçersiz olduğu ya da dış kiracı yöneticisinin tüm kiracı kullanıcıları için SSPR ve e-posta OTP'yi etkinleştirmediği gibi istek parametresi doğrulaması başarısız oldu. Hatanın error_description tam nedenini öğrenmek için parametresini kullanın.
invalid_grant Verme türü bilinmiyor veya beklenen verme türü değeriyle eşleşmiyor. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.
expired_token Devamlılık belirtecinin süresi doldu.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. suberror hatası için özelliğin olası değerleri şunlardır:

Alt değer Açıklama
invalid_oob_value Tek seferlik geçiş kodu değeri geçersiz.

4. Adım: Yeni parola gönderme

Uygulama kullanıcıdan yeni bir parola toplar, ardından uç nokta tarafından verilen devamlılık belirtecini/resetpassword/v1.0/continueuç noktaya bir POST isteği /resetpassword/v1.0/submit göndererek parolayı gönderir.

Aşağıda bir örnek verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/submit
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&continuation_token=czZCaGRSa3F0Mzp...
&new_password={new_password}
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.
new_password Evet Kullanıcının yeni parolası. yerine kullanıcının yeni parolasını yazın {new_password} . Uygulamanın kullanıcı arabiriminde parola onaylama alanını sağlayarak kullanıcının kullanmak istediği parolanın farkında olduğunu onaylamak sizin sorumluluğunuzdadır. Ayrıca, kullanıcının kuruluşunuzun ilkesine göre neyin güçlü bir parola oluşturduğunu anladığınızdan emin olmanız gerekir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "continuation_token": "uY29tL2F1dGhlbnRpY...",
    "poll_interval": 2
}
Mülkiyet Açıklama
continuation_token Microsoft Entra döndüren Continuation token.
poll_interval Uygulamanın, uç nokta üzerinden /resetpassword/v1.0/poll_completion parola sıfırlama isteğinin durumunu denetlemek için yoklama istekleri arasında beklemesi gereken saniye cinsinden minimum süre, bkz . 5. adım

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "invalid_request", 
    "error_description": "AADSTS901007: The challenge_type list parameter does not include the 'redirect' type.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        901007 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.
suberror Hata türlerini daha fazla sınıflandırmak için kullanılabilecek bir hata kodu dizesi.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request İstek parametresi doğrulaması başarısız oldu, örneğin devamlılık belirtecinin doğrulanması başarısız oldu.
expired_token Devamlılık belirtecinin süresi doldu.
invalid_grant Gönderilen izin geçersiz, örneğin gönderilen parola çok kısa. Hatanın suberror tam nedenini öğrenmek için özelliğini kullanın.

Hata parametresi invalid_grant değerine sahipse, Microsoft Entra yanıtında bir suberror özelliği içerir. Özelliğin olası değerleri suberror şunlardır:

Alt değer Açıklama
password_too_weak Karmaşıklık gereksinimlerini karşılamadığından parola çok zayıf. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_too_short Yeni parola 8 karakterden azdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_too_long Yeni parola 256 karakterden uzun. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_recently_used Yeni parola, yakın zamanda kullanılan parolayla aynı olmamalıdır. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_banned Yeni parola, yasaklanmış bir sözcük, tümcecik veya desen içerir. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin.
password_is_invalid Parola geçersiz, örneğin izin verilmeyen karakterler kullandığından. Microsoft Entra parola ilkeleri hakkında daha fazla bilgi edinin. Uygulama bir kullanıcı parolası gönderirse bu yanıt mümkündür.

5. Adım: Parola sıfırlama durumunu yoklama

Son olarak, kullanıcının yapılandırmasının yeni parolayla güncelleştirilmesi biraz gecikmeye neden olduğundan, uygulama parola sıfırlama durumu için Microsoft Entra yoklama yapmak için /resetpassword/v1.0/poll_completion uç noktasını kullanabilir. Uygulamanın yoklama istekleri arasında beklemesi gereken saniye cinsinden minimum süre, parametresindeki /resetpassword/v1.0/submitpoll_interval uç noktadan döndürülür.

Aşağıda bir örnek verilmiştir (örnek isteği okunabilirlik için birden çok satırda sunuyoruz):

POST https://{tenant_subdomain}.ciamlogin.com/{tenant_subdomain}.onmicrosoft.com/resetpassword/v1.0/poll_completion
Content-Type: application/x-www-form-urlencoded
client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&continuation_token=czZCaGRSa3F0... 
Parametre Zorunlu Açıklama
tenant_subdomain Evet Oluşturduğunuz dış kiracının alt etki alanı. URL'de değerini Dizin (kiracı) alt etki alanıyla değiştirin {tenant_subdomain} . Örneğin, kiracınızın birincil etki alanı contoso.onmicrosoft.com ise contoso kullanın. Kiracı alt etki alanınız yoksa kiracınızın ayrıntılarını okumayı öğrenin.
continuation_token Evet önceki istekte döndürülen Microsoft Entra Continuation token.
client_id Evet Microsoft Entra yönetim merkezine kaydettiğiniz uygulamanın Uygulama (istemci) kimliği.

Başarılı yanıt

Örnek:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "status": "succeeded",
    "continuation_token":"czZCaGRSa3F0..."
} 
Mülkiyet Açıklama
status Parola sıfırlama isteğinin durumu. Microsoft Entra failed durumunu döndürürse, uygulama /resetpassword/v1.0/submit uç noktasına başka bir istekte bulunarak yeni parolayı yeniden gönderebilir ve yeni devamlılık belirtecini ekleyebilir.
continuation_token Microsoft Entra döndüren Continuation token. Durum succeeded ise, uygulama Microsoft Entra oauth2/v2.0/token uç noktası aracılığıyla güvenlik belirteçleri isteğinde için istekte bulunan devamlılık belirtecini kullanabilir. Bu, kullanıcı parolasını başarıyla sıfırladıktan sonra yeni bir oturum açma akışı başlatmadan doğrudan uygulamanızda oturum açabileceğiniz anlamına gelir.

Microsoft Entra döndürdüğü olası durumlar (status parametresinin olası değerleri):

Hata değeri Açıklama
succeeded Parola sıfırlama başarıyla tamamlandı.
failed Parola sıfırlama başarısız oldu. Uygulama, uç noktaya başka bir istekte bulunarak yeni parolayı /resetpassword/v1.0/submit yeniden gönderebilir.
not_started Parola sıfırlama başlatılmadı. Uygulama daha sonra durumu yeniden denetleyebiliyor.
in_progress Parola sıfırlama işlemi devam ediyor. Uygulama daha sonra durumu yeniden denetleyebiliyor.

Hata yanıtı

Örnek:

HTTP/1.1 400 Bad Request
Content-Type: application/json
{ 
    "error": "expired_token", 
    "error_description": "AADSTS901007: The continuation_token is expired.\r\nTrace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333\r\nCorrelation ID: aaaa0000-bb11-2222-33cc-444444dddddd\r\nTimestamp: yyyy-...",
    "error_codes": [ 
        552003 
    ], 
    "timestamp": "yyyy-mm-dd 10:15:00Z",
    "trace_id": "0000aaaa-11bb-cccc-dd22-eeeeee333333", 
    "correlation_id": "aaaa0000-bb11-2222-33cc-444444dddddd"
} 
Mülkiyet Açıklama
error Hata türlerini sınıflandırmak ve hatalara tepki vermek için kullanılabilecek bir hata kodu dizesi.
error_description Kimlik doğrulama hatasının nedenini belirlemenize yardımcı olabilecek belirli bir hata iletisi.
error_codes Hataları tanılamanıza yardımcı olabilecek Microsoft Entra özel hata kodlarının listesi.
timestamp Hatanın oluştuğu zaman.
trace_id İstek için hataları tanılamanıza yardımcı olabilecek benzersiz bir tanımlayıcı.
correlation_id bileşenler arasında tanılamada yardımcı olabilecek istek için benzersiz bir tanımlayıcı.

Karşılaşabileceğiniz olası hatalar şunlardır (özelliğin error olası değerleri):

Hata değeri Açıklama
invalid_request İstek parametresi doğrulaması, devam belirtecinin doğrulanması gibi başarısız oldu.
expired_token Devamlılık belirtecinin süresi doldu.

Parola sıfırlama işleminden sonra otomatik olarak oturum açma

Başarılı bir parola sıfırlama işleminden sonra kullanıcının oturum açması gerekiyorsa. Uygulamanın uç noktayı çağırması /oauth2/v2.0/token gerekir. Belirteç uç noktasını çağırmayı öğrenin.