반응형

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