Exchange Placeholder 변경했던 것처럼, 이번에는 ADFS 로그인 페이지의 placeholder 변경해 보도록 하겠습니다.


관련포스팅

2020/08/29 - [Exchange] - Exchange Server 2019. OWA userNameLabel 변경


 

개발은 제가 잘은 모르지만, 아래와 같이 someone@example.com 예시를 드는 영역을 placeholder라고 부릅니다.

그런데 AD login 계정과 email 계정이 불일치 경우에는 사용자들에게 혼선을 있습니다.


Exchange 포스팅 때와 마찬가지로 이번에도 직원 ID 변경해 보겠습니다.

아래의 기술자료를 참고하여 설정을 진행하겠습니다.

AD FS 사용자 로그인 사용자 지정

https://docs.microsoft.com/ko-kr/windows-server/identity/ad-fs/operations/ad-fs-user-sign-in-customization

AD FS 로그인 페이지에 대 한 고급 사용자 지정

https://docs.microsoft.com/ko-kr/windows-server/identity/ad-fs/operations/advanced-customization-of-ad-fs-sign-in-pages

 ADFS USERNAME BEHAVIOR

https://crossan007.dev/blog/identity-management/adfs-username-behavior/


우선 ADFS 2019 버전으로 기본테마는 2가지가 있습니다.


기본테마를 DefaultAdfs2019 활성화 하면 로그인 페이지 디자인이 다음과 같습니다.

Set-AdfsWebConfig -ActiveThemeName DefaultAdfs2019


심플하고 모던한 느낌의 로그인 페이지 입니다.


Default ADFS 2016까지의 기본 테마입니다.



어떠한 베이스로 변경할지를 정한 , 아래의 명령어로 템플릿을 생성합니다.

New-AdfsWebTheme -Name 새테마이름 -SourceName 원본테마



생성확인


테마의 구성 파일을 내보냅니다. (폴더생성 필요)

Export-AdfsWebTheme -Name New1 -DirectoryPath C:\theme


구성파일들을 확인할 있습니다.


작업의 편의를 위해서 script 폴더의 onload.js 파일의 복사본을 생성합니다.


onload.js 파일을 Visual Studio Code 와 같은 편집기로 실행한 뒤, 아래의 내용을 마지막이나 // 로 구분된 영역에 삽입합니다.

(편집기로 진행하는 이유는 메모장에서는 한글로 입력시 올바르게 동작되지 않기 때문입니다.)

//Placeholder Field
function UpdatePlaceholders() {
    var userName;
    if (typeof Login != 'undefined'){
        userName = document.getElementById(Login.userNameInput) 
    }
    if (typeof UpdatePassword != 'undefined'){
        userName = document.getElementById(UpdatePassword.userNameInput);
    }
    if (typeof userName != 'undefined'){
        userName.setAttribute("placeholder","직원ID");
    }
}
 
document.addEventListener("DOMContentLoaded", function(){
  // Handler when the DOM is fully loaded
  UpdatePlaceholders()
});

//SAMAccount Field
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 = 'contoso.kr\\' + 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;
};
}


아래의 명령어로 기존 테마의 onload.js 스크립트 파일을 변경합니다.

그리고 New1  활성 테마로 설정합니다.

Set-AdfsWebTheme -TargetName New1 -OnLoadScriptPath "c:\theme\script\onload.js"
Set-AdfsWebConfig -ActiveThemeName New1


아래와 같이 변경된 것을 확인할 있습니다.


반응형

+ Recent posts