WebSEAL내 junction에 등록되어 있는 주소에 접속하게 되면 이렇게 인증을 하도록 기본으로 만들어져있는 로그인 창이 뜬다.


우리가 접속하고 싶은 시스템이나 애플리케이션 등이 있다면 원래라면 위와 같이 바로 접속 요청을 보내는 것이 맞다.

하지만 WebSEAL의 junction에 등록되어 있다면, 요청은 Reverse Proxy Server인 WebSEAL로 들어가게 된다.
이유는 SAM에 시스템을 등록하게 되면서 Proxy Server가 시스템 앞에 위치함으로써 시스템을 보호하고 있기 때문이다.
그래서 지금은 그 WebSEAL로 들어갔을 때의 인증화면을 바꿔보려는 것인데 로그인 기본화면을 그냥 띄워놓는것도 좋지만 나중에 커스텀마이징 할 기회를 위해 연습해보겠다.

- 우선 LMI에 접속해준다.

Web-Reverse Proxy탭에 들어간다.

- 설정할 WebSEAL을 선택해주고,
Manage의Management Root를 눌러준다.

탭을 눌러주면 아래와 같이 에러에 따라 보여줄 페이지를 세팅하는 eroors 탭도 있고,

Management폴더를 열면 영어들이 나오는데 이것은 다 언어를 말하는 것이다.
영어는 보통 C인데, 이번에 ko로 작업해주겠다. (평소에는 안쓰는 언어 폴더들은 다 삭제해준다고 한다.)

ko를 열면, 각 상황에 따른 페이지들이 등록되어있는 것을 볼 수 있는데, 전부 사용하고 있는 것은 아니고, junction에 등록되어있는 시스템의 존재하는 페이지에 따라 사용하지 않는 것들도 있다.
우리는 이 중 초기화면인 login.html파일을 오픈하여 수정해볼 것이다.
- Management 폴더의 login.html 을 open 하여 html 파일 수정하기

더블클릭해서 열게되면 위와같이 html 문서가 보일 것이다.
여기서 html 파일을 수정하면 되는데 CSS도 다 바꿔도 상관은 없지만 그냥 간단하게만 변경해보겠다.

한글로 적혀 있었던 '사용자이름' 을 영어인 Username으로 입력하고, '비밀번호'도 Password로 바꿔보겠다.
그리고 나서 하단의 Save 버튼을 눌러준다.

성공했다는 메시지가 뜬다.
창을 닫고 Deploy까지 해준다.



결과

위와같이 페이지가 변경된 것을 확인할 수 있다.
결론부터 말하자면 SAM 안의 ACL을 이용해서 하는 방법이다.
- Login Page에 사용할 폼을 VSC를 이용하여 하나 간단하게 만들어준다.
데이터를 넘기려면 name값 등이 같아야 하므로, 위의 root-management 경로에있는 html을 참고하여 코드를 짰다.

- 리눅스에 Tomcat을 설치한 후,
/opt/tomcat/apache-tomcat-버전/webapps/ROOT경로의 index.jsp 파일 수정하기

vi 편집기를 이용하여 열어준다.

만들어놓은 form을 복사붙여넣기 해준다.

로그인 페이지의 한글이 모두 깨지는 것을 확인했다.
사실 한글을 사용하지 않고 영어로 바꿔주기만 해도 되지만, 공부를 위해 한번 해결해보도록 하겠다.
1. 파일 인코딩 확인

음 file 명령어를 통해 우선 파일 자체는 UTF-8로 인코딩 되어있는 것을 확인했다.
2. Tomcat의 server.xml 확인
경로는/opt/tomcat/apache-tomcat-8.5.20/conf이다.

이것도 vi 편집기를 통해 열어보자.
vi server.xml

이렇게 Connection 부분에 Encoding 부분을 추가해준 후 저장하고 나간다. (ESC - :wq)
3. Tomcat의 web.xml 확인
경로는/opt/tomcat/apache-tomcat-8.5.20/conf이다.

xml 파일을 열어주자.
vi web.xml

UTF-8 항목이 주석처리 되어있는 것이 있는데 주석을 지워주어 활성화 시킨..

음.. 그냥 영어로바꿔주자. ㅎ

다시 index.jsp 문서를 열어 편집해 주었다 ㅎㅎㅋㅋㅋ
저장하고 나온 후,

음~ 깔끔하구만!
음 이제 남은 것은 ACL을 만들어 WebSEAL을 거치지 않고 이 페이지로 오도록 하는 것만 구현하면 된다.

위를 구현하기 위하여 ACL(Access Control List)를 사용할 것이다.
- LMI 접속 후,
Web-Policy Administration탭에 접속한다.

- 로그인을 해준다.

관리자 계정으로 로그인 해줬다.
- ACL을 만들어준다.
ACL(Access Control List)이란 사용자 또는 그룹이 자원에 대한 조작을 수행하는데 필요한 조건을 지정한다.
(즉, 사용자나 그룹에게 특정 시스템에 관해 접근할 수 있는 권한을 주는 것이다.)
Create ACL 탭으로 가서 ACL이름을 지어주고, Create 버튼을 눌러 하나 생성해준다.


- 만들어진 ACL을 확인하고, 해당 그룹에 대한 권한을 설정해준다.


Entry Type은 권한을 줄 그룹의 타입을 의미한다.
User : 특정 사용자를 의미한다.
Group : 특정 그룹을 의미한다.
Any-other : 사용자로 지정된(인증된) 모든 사람을 의미한다.
Unauthenticated : 인증되지 않은 사용자까지 모두를 의미한다.
그리고 나서,
T 접근 권한과, r 읽는 권한, 로그인을 위해 x 실행 권한을 준다.
다 체크하고나서, 하단의 Apply를 눌러준다.

- Object Space탭에 들어가서 적용할 junction을 클릭한다. ACL을 적용시켜준다.

junction을 눌러서 들어간다.

만든 ACL을 적용하기 위해 ACL Attached를 눌러주고,'

적용할 ACL을 선택한 후 Apply를 눌러준다.

적용해준다.

다시 Browse Object Space로 돌아가서 Refresh 버튼을 누르면 ACL이 적용된것을 확인할 수 있다.


이제 주소를 치면 기본화면(파란화면)이 아닌 내가 만든 LOGIN 페이지로 곧바로 이동하는 것을 알 수 있다.
이제 이어 여기서 로그인을 하면 WebSEAL로 인증요청을 보내는 것을 확인해보자.

먼저, config 파일을 수정하여 redirect 할 경로를 설정해주어야 하므로 Web - Reverse Proxy에 들어간다.

설정할 WebSEAL을 선택하고, Manage - Configuration - Edit Configuration File 파일을 열어준다.

ctrl + f 를 누르고, login-redirect-page를 검색하여 찾은 후, 아무거나 하나를 주석을 해제해준다.
저기에 네이버 URL을 입력하면 네이버로 이동하더라..ㅋㅋㅋㅋㅋㅋㅋ 무튼 인증 후에 어디로 이동할지 설정하는 부분이다.
그 이후 꼭 Deploy와 WebSEAL Restart를 해준다.


로그인을 수행하면 header.jsp로 이동하는 것을 볼 수 있다.