Aracılığıyla paylaş


Azure Active Directory B2C'de kullanıcı erişimini yönetme

Bu makalede, Azure Active Directory B2C (Azure AD B2C) kullanarak uygulamalarınıza kullanıcı erişiminin nasıl yönetileceğini açıklar. Uygulamanızdaki erişim yönetimi şunları içerir:

  • Reşit olmayanları belirleme ve uygulamanıza kullanıcı erişimini denetleme.
  • Reşit olmayanların uygulamalarınızı kullanması için ebeveyn izni gerektirme.
  • Kullanıcılardan doğum ve ülke/bölge verilerini toplama.
  • Kullanım koşulları sözleşmesini yakalama ve erişimi ayırma.

Not

Azure Active Directory B2C'de özel ilkeler öncelikli olarak karmaşık senaryoları ele almak için tasarlanmıştır. Çoğu senaryoda, yerleşik kullanıcı akışlarını kullanmanızı öneririz. Bunu yapmadıysanız, Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümünde özel ilke başlangıç paketi hakkında bilgi edinin.

İkincil erişimi denetleme

Uygulamalar ve kuruluşlar, reşit olmayanların bu hedef kitleye hedeflenmemiş uygulamaları ve hizmetleri kullanmasını engellemeye karar verebilir. Alternatif olarak, uygulamalar ve kuruluşlar reşit olmayanları kabul etmeye ve daha sonra ebeveyn onayını yönetmeye ve reşit olmayanlar için iş kuralları tarafından dikte edilen ve yönetmelik tarafından izin verilen izin verilen deneyimler sunmaya karar verebilir.

Bir kullanıcı reşit değil olarak tanımlanırsa, B2C Azure AD kullanıcı akışını üç seçenek arasında ayarlayabilirsiniz:

  • İmzalı bir JWT id_token uygulamaya geri gönderin: Kullanıcı dizine kaydedilir ve uygulamaya bir belirteç döndürülür. Uygulama daha sonra iş kuralları uygulayarak devam eder. Örneğin, uygulama bir ebeveyn onayı işlemiyle devam edebilir. Bu yöntemi kullanmak için uygulamadan ageGroup ve consentProvidedForMinor taleplerini almayı seçin.

  • Uygulamaya imzalanmamış bir JSON belirteci gönderin: Azure AD B2C, uygulamaya kullanıcının reşit olmadığını bildirir ve kullanıcının ebeveyn izni durumunu sağlar. Uygulama daha sonra iş kuralları uygulayarak devam eder. JSON belirteci, uygulamayla başarılı bir kimlik doğrulamasını tamamlamaz. Uygulamanın kimliği doğrulanmamış kullanıcıyı JSON belirtecinde yer alan taleplere göre işlemesi gerekir. Bu talepler ad, e-posta, ageGroup ve consentProvidedForMinor olabilir.

  • Kullanıcıyı engelleme: Bir kullanıcı reşit değilse ve ebeveyn izni sağlanmamışsa, Azure AD B2C kullanıcıya engellendiğini bildirebilir. Belirteç verilmedi, erişim engellendi ve kayıt yolculuğu sırasında kullanıcı hesabı oluşturulmadı. Bu bildirimi uygulamak için kullanıcıyı bilgilendirmek ve uygun seçenekleri sunmak için uygun bir HTML/CSS içerik sayfası sağlarsınız. Yeni kayıtlar için uygulama tarafından başka bir eylem gerekmez.

Uygulama düzenlemesine bağlı olarak ebeveyn izninin yetişkin olarak doğrulanmış bir kullanıcı tarafından verilmesi gerekebilir. Azure AD B2C, bir kişinin yaşını doğrulamak ve ardından doğrulanmış bir yetişkinin reşit olmayan bir kişiye ebeveyn izni vermesine izin vermek için bir deneyim sağlamaz. Bu deneyimin uygulama veya başka bir hizmet sağlayıcısı tarafından sağlanması gerekir.

Ebeveyn onayı almaya yönelik bir kullanıcı akışı örneği aşağıda verilmiştir:

  1. Microsoft Graph API işlemi kullanıcıyı ikincil olarak tanımlar ve kullanıcı verilerini imzalanmamış JSON belirteci biçiminde uygulamaya döndürür.

  2. Uygulama, JSON belirtecini işler ve reşit olmayana ebeveyn izni gerektiğini bildiren ve çevrimiçi bir ebeveynin onayını isteyen bir ekran gösterir.

  3. Azure AD B2C, kullanıcının normal olarak oturum açabileceği bir oturum açma yolculuğu gösterir ve uygulamaya legalAgeGroupClassification = "minorWithParentalConsent" içerecek şekilde ayarlanmış bir belirteç oluşturur. Uygulama ebeveynin e-posta adresini toplar ve ebeveynin yetişkin olduğunu doğrular. Bunu yapmak için ulusal/bölgesel kimlik ofisi, lisans doğrulaması veya kredi kartı kanıtı gibi güvenilir bir kaynak kullanır. Doğrulama başarılı olursa uygulama, ikincil kullanıcıdan Azure AD B2C kullanıcı akışını kullanarak oturum açmasını ister. Onay reddedilirse (örneğin, legalAgeGroupClassification = "minorWithoutParentalConsent" ise), Azure AD B2C, onay işlemini yeniden başlatmak için uygulamaya bir JSON belirteci (oturum açma değil) döndürür. İsteğe bağlı olarak, reşit olmayan bir veya yetişkinin, reşit olmayanın e-posta adresine veya yetişkinin kayıtlı e-posta adresine bir kayıt kodu göndererek reşit olmayanın hesabına yeniden erişim elde edebilmesi için kullanıcı akışını özelleştirmek mümkündür.

  4. Uygulama, reşit olmayana onayı iptal etme seçeneği sunar.

  5. Reşit olmayan veya yetişkin onayı iptal ettiğinde Microsoft Graph API, consentProvidedForMinor'ıreddedilecek şekilde değiştirmek için kullanılabilir. Alternatif olarak, uygulama izni iptal edilmiş bir reşit olmayanı silmeyi seçebilir. İsteğe bağlı olarak, kimliği doğrulanmış reşit olmayanın (veya reşit olmayanın hesabını kullanan üst öğenin) onayı iptal edebilmesi için kullanıcı akışını özelleştirmek mümkündür. Azure AD B2C, consentProvidedForMinor dosyasını reddedildi olarak kaydeder.

legalAgeGroupClassification, consentProvidedForMinor ve ageGroup hakkında daha fazla bilgi için bkz. Kullanıcı kaynak türü. Özel öznitelikler hakkında daha fazla bilgi için bkz. Tüketicileriniz hakkında bilgi toplamak için özel öznitelikleri kullanma. Microsoft Graph API kullanarak genişletilmiş öznitelikleri ele alırken özniteliğin uzun sürümünü kullanmanız gerekir; örneğin, extension_18b70cf9bb834edd8f38521c2583cd86_dateOfBirth: 2011-01-01T00:00:00Z.

Doğum tarihi ve ülke/bölge verilerini toplama

Uygulamalar, kayıt sırasında tüm kullanıcılardan doğum tarihi (DOB) ve ülke/bölge bilgilerini toplamak için Azure AD B2C'yi temel alabilir. Bu bilgiler henüz yoksa, uygulama sonraki kimlik doğrulama (oturum açma) yolculuğu sırasında kullanıcıdan bunu isteyebilir. Kullanıcılar DOB ve ülke/bölge bilgilerini sağlamadan devam edemez. Azure AD B2C, söz konusu kişinin ilgili ülkenin/bölgenin mevzuat standartlarına göre reşit olup olmadığını belirlemek için bu bilgileri kullanır.

Özelleştirilmiş bir kullanıcı akışı DOB ve ülke/bölge bilgilerini toplayabilir ve Azure AD B2C talep dönüştürmesini kullanarak ageGroup'un belirlenmesini ve sonucun dizinde kalıcı olmasını (veya DOB ile ülke/bölge bilgilerinin doğrudan kalıcı olmasını) sağlayabilir.

Aşağıdaki adımlar, kullanıcının doğum tarihinden ageGroup hesaplamak için kullanılan mantığı gösterir:

  1. Listedeki ülke/bölge koduna göre ülkeyi/bölgeyi bulmayı deneyin. Ülke/bölge bulunamazsa Varsayılan'a geri dönün.

  2. MinorConsent düğümü ülke/bölge öğesinde mevcutsa:

    a. Yetişkin olarak kabul edilmesi için kullanıcının doğduğu tarihi hesaplayın. Örneğin, geçerli tarih 14 Mart 2015 ve MinorConsent 18 ise, doğum tarihi en geç 14 Mart 2000 olmalıdır.

    b. En düşük doğum tarihini gerçek doğum tarihiyle karşılaştırın. Minimum doğum tarihi kullanıcının doğum tarihinden önceyse, hesaplama yaş grubu hesaplaması olarak Küçük değerini döndürür.

  3. Ülke/bölge öğesinde MinorNoConsentRequired düğümü varsa MinorNoConsentRequired değerini kullanarak 2a ve 2b adımlarını yineleyin. Minimum doğum tarihi kullanıcının doğum tarihinden önceyse 2b çıkışı MinorNoConsentRequired değerini döndürür.

  4. Hiçbir hesaplama doğru döndürmezse, hesaplama Yetişkin değerini döndürür.

Bir uygulama dob veya ülke/bölge verilerini başka yöntemlerle güvenilir bir şekilde toplarsa, uygulama kullanıcı kaydını bu bilgilerle güncelleştirmek için Graph API kullanabilir. Örnek:

  • Bir kullanıcının yetişkin olduğu biliniyorsa, ageGroup dizin özniteliğini Adult değeriyle güncelleştirin.
  • Bir kullanıcının ikincil olduğu biliniyorsa, ageGroup dizin özniteliğini Minor değeriyle güncelleştirin ve uygun şekilde consentProvidedForMinor değerini ayarlayın.

Küçük hesaplama kuralları

Yaş gating iki yaş değeri içerir: birinin artık reşit olmadığı yaş ve reşit olmayan birinin ebeveyn iznine sahip olması gereken yaş. Aşağıdaki tabloda reşit olmayan ve izin gerektiren bir ikincil tanımlama için kullanılan yaş kuralları listelenir.

Ülke/Bölge Ülke/Bölge adı Küçük onay yaşı Küçük yaş
Varsayılan Hiçbiri Hiçbiri 18
AE Birleşik Arap Emirlikleri Hiçbiri 21
AT Avusturya 14 18
BE Belçika 14 18
BG Bulgaristan 16 18
BH Bahreyn Hiçbiri 21
CM Kamerun Hiçbiri 21
CY Kıbrıs 16 18
CZ Çek Cumhuriyeti 16 18
DE Almanya 16 18
DK Danimarka 16 18
EE Estonya 16 18
EG Mısır Hiçbiri 21
ES İspanya 13 18
GS Fransa 16 18
GB Birleşik Krallık 13 18
GR Yunanistan 16 18
HR Hırvatistan 16 18
HU Macaristan 16 18
IE İrlanda 13 18
BT İtalya 16 18
KR Kore Cumhuriyeti 14 18
LT Litvanya 16 18
LU Lüksemburg 16 18
LV Letonya 16 18
MT Malta 16 18
NA Namibya Hiçbiri 21
NL Hollanda 16 18
PL Polonya 13 18
PT Portekiz 16 18
RO Romanya 16 18
SE İsveç 13 18
SG Singapur Hiçbiri 21
SI Slovenya 16 18
SK Slovakya 16 18
TD Çad Hiçbiri 21
TH Tayland Hiçbiri 20
TW Tayvan Hiçbiri 20
ABD Birleşik Devletler 13 18

Kullanım koşulları sözleşmesini yakalama

Uygulamanızı geliştirirken, normalde kullanıcı dizininden katılım olmadan veya yalnızca küçük bir katılımla kullanıcıların kendi uygulamalarında kullanım koşullarını kabul etmelerini yakalarsınız. Ancak, bir kullanıcının kullanım koşullarını kabul etme durumunu toplamak, kabul edilmemesi durumunda erişimi kısıtlamak ve kullanım koşullarının en son kabul tarihi ve en son sürümünün tarihi temelinde kullanım koşullarında gelecekteki değişikliklerin kabul edilmesini zorunlu kılmak için Azure AD B2C kullanıcı akışı kullanmak mümkündür.

Kullanım Koşulları ayrıca "Verileri üçüncü taraflarla paylaşma onayı" içerebilir. Yerel düzenlemelere ve iş kurallarına bağlı olarak, bir kullanıcının birleştirilmiş her iki koşulu da kabul etme durumunu toplayabilir veya kullanıcının diğerini değil, bir koşulu kabul etmesine izin vekleyebilirsiniz.

Aşağıdaki adımlarda kullanım koşullarını nasıl yönetebileceğiniz açıklanmaktadır:

  1. Graph API ve genişletilmiş öznitelikleri kullanarak kullanım koşullarının kabul edilmesini ve kabul tarihini kaydedin. Bunu hem yerleşik kullanıcı akışlarını hem de özel ilkeleri kullanarak yapabilirsiniz. extension_termsOfUseConsentDateTime ve extension_termsOfUseConsentVersion özniteliklerini oluşturmanızı ve kullanmanızı öneririz.

  2. "Kullanım Koşullarını Kabul Et" etiketli gerekli bir onay kutusu oluşturun ve kayıt sırasında sonucu kaydedin. Bunu hem yerleşik kullanıcı akışlarını hem de özel ilkeleri kullanarak yapabilirsiniz.

  3. Azure AD B2C, kullanım koşulları sözleşmesini ve kullanıcının kabul edilmesini depolar. Yanıtı kaydetmek için kullanılan uzantı özniteliğini okuyarak herhangi bir kullanıcının durumunu sorgulamak için Graph API kullanabilirsiniz (örneğin, termsOfUseTestUpdateDateTime'ı okuyun). Bunu hem yerleşik kullanıcı akışlarını hem de özel ilkeleri kullanarak yapabilirsiniz.

  4. Kabul tarihini kullanım koşullarının en son sürümünün tarihiyle karşılaştırarak güncelleştirilmiş kullanım koşullarının kabul edilmesini zorunlu kılabilir. Tarihleri yalnızca özel bir kullanıcı akışı kullanarak karşılaştırabilirsiniz. genişletilmiş özniteliği extension_termsOfUseConsentDateTime kullanın ve değeri termsOfUseTextUpdateDateTime talebiyle karşılaştırın. Kabul eskiyse, kendi kendini onaylayan bir ekran görüntüleyerek yeni bir kabule zorlayabilirsiniz. Aksi takdirde, ilke mantığını kullanarak erişimi engelleyin.

  5. Kabul edilen sürüm numarasını en son kabul edilen sürüm numarasıyla karşılaştırarak güncelleştirilmiş kullanım koşullarının kabul edilmesini zorunlu kılar. Sürüm numaralarını yalnızca özel bir kullanıcı akışı kullanarak karşılaştırabilirsiniz. genişletilmiş öznitelik extension_termsOfUseConsentDateTime kullanın ve değeri extension_termsOfUseConsentVersion talebiyle karşılaştırın. Kabul eskiyse, kendi kendini onaylayan bir ekran görüntüleyerek yeni bir kabule zorlayabilirsiniz. Aksi takdirde, ilke mantığını kullanarak erişimi engelleyin.

Kullanım kabul koşullarını aşağıdaki senaryolarda yakalayabilirsiniz:

  • Yeni bir kullanıcı kaydoluveriliyor. Kullanım koşulları görüntülenir ve kabul sonucu depolanır.
  • Daha önce en son veya etkin kullanım koşullarını kabul eden bir kullanıcı oturum açıyor. Kullanım koşulları görüntülenmez.
  • En son veya etkin kullanım koşullarını henüz kabul etmemiş bir kullanıcı oturum açıyor. Kullanım koşulları görüntülenir ve kabul sonucu depolanır.
  • Kullanım koşullarının eski bir sürümünü zaten kabul etmiş olan ve artık en son sürüme güncelleştirilen bir kullanıcı oturum açıyor. Kullanım koşulları görüntülenir ve kabul sonucu depolanır.

Aşağıdaki görüntüde önerilen kullanıcı akışı gösterilmektedir:

Önerilen kabul kullanıcı akışını gösteren akış çizelgesi diyagramı

Aşağıda, bir talepteki tarihe dayalı kullanım koşulları onayı örneği verilmiştir. Talep değerinden extension_termsOfUseConsentDateTime2025-01-15T00:00:00eskiyse Boole talebine bakarak termsOfUseConsentRequired ve kendi kendine onaylanan bir ekran görüntüleyerek yeni bir kabule zorlar.

<ClaimsTransformations>
  <ClaimsTransformation Id="GetNewUserAgreeToTermsOfUseConsentDateTime" TransformationMethod="GetCurrentDateTime">
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="currentDateTime" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="IsTermsOfUseConsentRequired" TransformationMethod="IsTermsOfUseConsentRequired">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="termsOfUseConsentDateTime" />
    </InputClaims>
    <InputParameters>
      <InputParameter Id="termsOfUseTextUpdateDateTime" DataType="dateTime" Value="2025-01-15T00:00:00" />
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="result" />
    </OutputClaims>
  </ClaimsTransformation>
</ClaimsTransformations>

Aşağıda, bir talepteki sürüm tabanlı kullanım koşulları onayı örneği verilmiştir. extension_termsOfUseConsentVersion Talep ile eşit V1değilse, Boole talebine bakarak termsOfUseConsentRequired ve kendi kendine onaylanan bir ekran görüntüleyerek yeni bir kabule zorlar.

<ClaimsTransformations>
  <ClaimsTransformation Id="GetEmptyTermsOfUseConsentVersionForNewUser" TransformationMethod="CreateStringClaim">
    <InputParameters>
      <InputParameter Id="value" DataType="string" Value=""/>
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="createdClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="GetNewUserAgreeToTermsOfUseConsentVersion" TransformationMethod="CreateStringClaim">
    <InputParameters>
      <InputParameter Id="value" DataType="string" Value="V1"/>
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="createdClaim" />
    </OutputClaims>
  </ClaimsTransformation>
  <ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
    </InputClaims>
    <InputParameters>
      <InputParameter Id="compareTo" DataType="string" Value="V1" />
      <InputParameter Id="operator" DataType="string" Value="not equal" />
      <InputParameter Id="ignoreCase" DataType="string" Value="true" />
    </InputParameters>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
    </OutputClaims>
  </ClaimsTransformation>
</ClaimsTransformations>

Sonraki adımlar