×

ADFS Domain Yazmadan Login Ayarı

1. Varsayılan Temadan Yeni Bir Tema Oluşturma

İlk olarak, varsayılan ADFS temasını baz alarak yeni bir tema oluşturulur.

New-AdfsWebTheme –Name DoktorCRMcustom –SourceName default

Bu komut ile default tema kopyalanarak DoktorCRMcustom isimli yeni bir tema oluşturulur.


2. Varsayılan Temanın Dosya Yapısını Dışarı Aktarma

Tema üzerinde değişiklik yapabilmek için varsayılan tema dosyaları export edilir.

  1. Sunucu üzerinde aşağıdaki klasör oluşturulur:
c:\ADFSTheme
  1. Varsayılan tema dosyaları bu klasöre aktarılır:
Export-AdfsWebTheme –Name default –DirectoryPath c:\ADFSTheme

Bu işlem sonucunda CSS, JavaScript ve görsel dosyalar ilgili klasör yapısı altında oluşacaktır.


3. onload.js Dosyasının Düzenlenmesi

Aşağıdaki dosya açılır:

C:\ADFSTheme\script\onload.js

Dosyanın en altına aşağıdaki JavaScript kodu eklenir.

3.1 Giriş Metninin Değiştirilmesi

// code to change “Sign in with organizational account” string.  
var loginMessage = document.getElementById('loginMessage');  
if (loginMessage)  
{  
    loginMessage.innerHTML = 'Sign in with your DoktorCRMcustom account';  
}

Bu kod, giriş ekranında görünen varsayılan metni özelleştirilmiş bir mesaj ile değiştirir.


3.2 Kullanıcı Adına Otomatik Domain Ekleme

Aşağıdaki kod bloğu içerisinde ‘doktorcrm\\’ kısmını düzenleme yapacağınız domain ile değiştirmelisiniz!

// code to change domain name entry.  
if (typeof Login != 'undefined'){  
    Login.submitLoginRequest = function () {   
        var u = new InputUtil();  
        var e = new LoginErrors();  
        var userName = document.getElementById(Login.userNameInput);  
        var password = document.getElementById(Login.passwordInput);  

        if (userName.value && !userName.value.match('[@\\\\]'))   
        {  
            var userNameValue = 'doktorcrm\\' + userName.value;  
            document.forms['loginForm'].UserName.value = userNameValue;  
        }  

        if (!userName.value) {  
            u.setError(userName, e.userNameFormatError);  
            return false;  
        }  

        if (!password.value)   
        {  
            u.setError(password, e.passwordEmpty);  
            return false;  
        }  

        document.forms['loginForm'].submit();  
        return false;  
    };  
}

Bu kod sayesinde:

  • Kullanıcı domain girmeden sadece kullanıcı adını yazabilir
  • Sistem otomatik olarak doktorcrm\kullaniciadi formatına çevirir
  • Hatalı veya boş girişlerde ADFS’in standart hata kontrolleri korunur

4. Güncellenen JavaScript Dosyasının Temaya Eklenmesi

Son adımda, düzenlenen onload.js dosyası yeni oluşturulan temaya eklenir:

Set-AdfsWebTheme -TargetName DoktorCRMcustom -AdditionalFileResource @{
    Uri='/adfs/portal/script/onload.js';
    path="c:\ADFSTheme\script\onload.js"
}

Bu komut ile:

  • Özelleştirilmiş JavaScript dosyası ADFS portalına eklenir
  • DoktorCRMcustom teması üzerinden aktif olarak çalıştırılır

Referans: https://learn.microsoft.com/tr-tr/windows-server/identity/ad-fs/operations/advanced-customization-of-ad-fs-sign-in-pages

Yorum gönder