Azure Active Directory B2C'de JavaScript ve sayfa düzeni sürümlerini etkinleştirme
Başlamadan önce, ayarladığınız ilke türünü seçmek için İlke türü seçin seçicisini kullanın. Azure Active Directory B2C, kullanıcıların uygulamalarınızla nasıl etkileşim kurduğunu tanımlamak için iki yöntem sunar: önceden tanımlanmış kullanıcı akışları veya tam olarak yapılandırılabilir özel ilkeler aracılığıyla. Bu makalede gerekli adımlar her yöntem için farklıdır.
Azure Active Directory B2C (Azure AD B2C) HTML şablonlarıyla kullanıcılarınızın kimlik deneyimlerini oluşturabilirsiniz. HTML şablonlarınız yalnızca belirli HTML etiketlerini ve özniteliklerini içerebilir. b, i>, u><, <<h1> ve <sa gibi <temel HTML etiketlerine> izin> verilir. Betik> ve <iframe> gibi <daha gelişmiş etiketler güvenlik nedeniyle kaldırılır, ancak <script>
etiket etikete <head>
eklenmelidir.
Etiketin <script>
etiketine <head>
iki şekilde eklenmesi gerekir:
Betiğin
defer
sayfayı ayrıştırmak için paralel olarak indirildiğini belirten özniteliği eklendikten sonra, sayfa ayrıştırma tamamlandıktan sonra betik yürütülür:<script src="my-script.js" defer></script>
Betiğin sayfayı ayrıştırmak için paralel olarak indirildiğini belirten öznitelik eklendiğinde
async
, betik kullanılabilir olduğu anda yürütülür (ayrıştırma tamamlanmadan önce):<script src="my-script.js" async></script>
JavaScript'i etkinleştirmek ve HTML etiketlerini ve özniteliklerini ilerletmek için:
- Sayfa düzeni seçme
- Azure portalını kullanarak kullanıcı akışında etkinleştirme
- İsteklerinizde b2clogin.com kullanma
- Sayfa düzeni seçme
- Özel ilkenize öğe ekleme
- İsteklerinizde b2clogin.com kullanma
Ön koşullar
- Active Directory B2C'de özel ilkeleri kullanmaya başlama bölümündeki adımları tamamlayın
- Bir web uygulaması kaydedin.
Sayfa düzeni sürümü ayarlamaya başlama
JavaScript istemci tarafı kodunu etkinleştirmeyi planlıyorsanız, JavaScript'inizi temel alan öğeler sabit olmalıdır. Sabit değilse, tüm değişiklikler kullanıcı sayfalarınızda beklenmeyen davranışlara neden olabilir. Bu sorunları önlemek için, JavaScript'inizi temel alan içerik tanımlarının sabit olduğundan emin olmak için sayfa düzeni kullanımını zorunlu kılın ve bir sayfa düzeni sürümü belirtin. JavaScript'i etkinleştirmeyi amaçlamasanız bile, sayfalarınız için bir sayfa düzeni sürümü belirtebilirsiniz.
Kullanıcı akışı sayfalarınız için bir sayfa düzeni sürümü belirtmek için:
- Azure AD B2C kiracınızda Kullanıcı akışları'yı seçin.
- İlkenizi (örneğin, "B2C_1_SignupSignin") seçerek açın.
- Sayfa düzenleri'ni seçin. Bir Düzen adı seçin ve ardından Sayfa Düzeni Sürümü'ne tıklayın.
Farklı sayfa düzeni sürümleri hakkında bilgi için bkz . Sayfa düzeni sürümü değişiklik günlüğü.
Özel ilke sayfalarınız için bir sayfa düzeni sürümü belirtmek için:
- Uygulamanızın kullanıcı arabirimi öğeleri için bir sayfa düzeni seçin.
- Özel ilkenizdeki tüm içerik tanımları için sayfa sürümüyle bir sayfa
contract
düzeni sürümü tanımlayın. Değerin biçimi şu sözcüğücontract
içermelidir: urn:com:microsoft:aad:b2c:elements:contract:p age-name:version.
Aşağıdaki örnek, içerik tanımı tanımlayıcılarını ve sayfa sözleşmesiyle ilgili DataUri'yi gösterir:
<ContentDefinitions>
<ContentDefinition Id="api.error">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:globalexception:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.idpselections.signup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:providerselection:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.signuporsignin">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:unifiedssp:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.selfasserted.profileupdate">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountsignup">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.localaccountpasswordreset">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.2.0</DataUri>
</ContentDefinition>
<ContentDefinition Id="api.phonefactor">
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.0</DataUri>
</ContentDefinition>
</ContentDefinitions>
JavaScript'i etkinleştirme
Kullanıcı akışı Özellikleri'nde JavaScript'i etkinleştirebilirsiniz. JavaScript'in etkinleştirilmesi, sayfa düzeninin kullanılmasını da zorunlu kılmıştır. Ardından, sonraki bölümde açıklandığı gibi kullanıcı akışı için sayfa düzeni sürümünü ayarlayabilirsiniz.
ScriptExecution öğesini RelyingParty öğesine ekleyerek betik yürütmeyi etkinleştirirsiniz.
Özel ilke dosyanızı açın. Örneğin, SignUpOrSignin.xml.
RelyingParty öğesine ScriptExecution öğesini ekleyin:
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <UserJourneyBehaviors> <ScriptExecution>Allow</ScriptExecution> </UserJourneyBehaviors> ... </RelyingParty>
Dosyayı kaydedin ve karşıya yükleyin.
JavaScript kullanma yönergeleri
JavaScript kullanarak uygulamanızın arabirimini özelleştirirken şu yönergeleri izleyin:
- Yapma:
- HTML öğelerine
<a>
bir tıklama olayı bağlayın. - Azure AD B2C koduna veya açıklamalarına bağımlılık alın.
- Azure AD B2C HTML öğelerinin sırasını veya hiyerarşisini değiştirin. Kullanıcı arabirimi öğelerinin sırasını denetlemek için bir Azure AD B2C ilkesi kullanın.
- HTML öğelerine
- Şu noktaları dikkate alarak herhangi bir RESTful hizmetini çağırabilirsiniz:
- İstemci tarafı HTTP çağrılarına izin vermek için RESTful hizmeti CORS'nizi ayarlamanız gerekebilir.
- RESTful hizmetinizin güvenli olduğundan ve yalnızca HTTPS protokolunu kullandığından emin olun.
- Azure AD B2C uç noktalarını çağırmak için javascript'i doğrudan kullanmayın.
- JavaScript'inizi ekleyebilir veya dış JavaScript dosyalarına bağlanabilirsiniz. Dış JavaScript dosyası kullanırken göreli URL'yi değil mutlak URL'yi kullandığınızdan emin olun.
- JavaScript çerçeveleri:
- Azure AD B2C, jQuery'nin belirli bir sürümünü kullanır. jQuery'nin başka bir sürümünü eklemeyin. Aynı sayfada birden fazla sürümün kullanılması sorunlara neden olur.
- RequireJS kullanımı desteklenmez.
- Çoğu JavaScript çerçevesi Azure AD B2C tarafından desteklenmez.
- Azure AD B2C ayarları, geçerli kullanıcı arabirimi dili gibi nesneleri çağrılarak
window.SETTINGS
window.CONTENT
okunabilir. Bu nesnelerin değerini değiştirmeyin. - Azure AD B2C hata iletisini özelleştirmek için bir ilkede yerelleştirmeyi kullanın.
- bir ilke kullanılarak herhangi bir şey elde edilebilirse, genellikle önerilen yoldur.
- Düğmeleri gizlemek ve kendi kullanıcı arabirimi denetimlerinizde tıklama bağlamaları uygulamak yerine mevcut kullanıcı arabirimi denetimlerimizi kullanmanızı öneririz. Bu yaklaşım, yeni sayfa sözleşmesi yükseltmeleri yayımladığımızda bile kullanıcı deneyiminizin düzgün çalışmaya devam etmesini sağlar.
JavaScript örnekleri
Parolayı gösterme veya gizleme
Müşterilerinize kaydolma başarılarında yardımcı olmak için yaygın bir yol, parola olarak girdiklerini görmelerini sağlamaktır. Bu seçenek, kullanıcıların gerekirse parolalarını kolayca görmelerini ve düzeltmelerini sağlayarak kaydolmalarına yardımcı olur. Parola türünde herhangi bir alan, Parolayı göster etiketine sahip bir onay kutusuna sahiptir. Bu, kullanıcının parolayı düz metin olarak görmesini sağlar. Bu kod parçacığını, kendi kendine onaylanan bir sayfa için kaydolma veya oturum açma şablonunuz içine ekleyin:
function makePwdToggler(pwd){
// Create show-password checkbox
var checkbox = document.createElement('input');
checkbox.setAttribute('type', 'checkbox');
var id = pwd.id + 'toggler';
checkbox.setAttribute('id', id);
var label = document.createElement('label');
label.setAttribute('for', id);
label.appendChild(document.createTextNode('show password'));
var div = document.createElement('div');
div.appendChild(checkbox);
div.appendChild(label);
// Add show-password checkbox under password input
pwd.insertAdjacentElement('afterend', div);
// Add toggle password callback
function toggle(){
if(pwd.type === 'password'){
pwd.type = 'text';
} else {
pwd.type = 'password';
}
}
checkbox.onclick = toggle;
// For non-mouse usage
checkbox.onkeydown = toggle;
}
function setupPwdTogglers(){
var pwdInputs = document.querySelectorAll('input[type=password]');
for (var i = 0; i < pwdInputs.length; i++) {
makePwdToggler(pwdInputs[i]);
}
}
setupPwdTogglers();
Kullanım koşulları ekleme
Kullanım Koşulları onay kutusunu eklemek istediğiniz sayfanıza aşağıdaki kodu ekleyin. Bu onay kutusu genellikle yerel hesap kaydolma ve sosyal hesap kayıt sayfalarınızda gereklidir.
function addTermsOfUseLink() {
// find the terms of use label element
var termsOfUseLabel = document.querySelector('#api label[for="termsOfUse"]');
if (!termsOfUseLabel) {
return;
}
// get the label text
var termsLabelText = termsOfUseLabel.innerHTML;
// create a new <a> element with the same inner text
var termsOfUseUrl = 'https://learn.microsoft.com/legal/termsofuse';
var termsOfUseLink = document.createElement('a');
termsOfUseLink.setAttribute('href', termsOfUseUrl);
termsOfUseLink.setAttribute('target', '_blank');
termsOfUseLink.appendChild(document.createTextNode(termsLabelText));
// replace the label text with the new element
termsOfUseLabel.replaceChild(termsOfUseLink, termsOfUseLabel.firstChild);
}
kodunda öğesini kullanım koşulları sözleşmenizin bağlantısıyla değiştirin termsOfUseUrl
. Dizininiz için termsOfUse adlı yeni bir kullanıcı özniteliği oluşturun ve kullanıcı özniteliği olarak termsOfUse ekleyin.
Alternatif olarak, JavaScript kullanmadan kendi kendine onaylanan sayfaların altına bir bağlantı ekleyebilirsiniz. Aşağıdaki yerelleştirmeyi kullanın:
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<!-- The following elements will display a link at the bottom of the page. -->
<LocalizedString ElementType="UxElement" StringId="disclaimer_link_1_text">Terms of use</LocalizedString>
<LocalizedString ElementType="UxElement" StringId="disclaimer_link_1_url">termsOfUseUrl</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
öğesini kuruluşunuzun gizlilik ilkesine ve kullanım koşullarına bağlantıyla değiştirin termsOfUseUrl
.
Sonraki adımlar
Azure Active Directory B2C'de uygulamanızın kullanıcı arabirimini özelleştirme hakkında daha fazla bilgi edinin.