Sharepoint 2013 서버를 CBA(Claims-Based Authentication) 모드로 ADFS와 연동해 놓으면
두 가지 이상한 문제점(?)이 보인다.
하나는 로그아웃을 명시적으로 할 수가 없다는 점.
또 하나는 한 번 로그인 하고 나면 그 다음부터는 의도치 않게 자동으로 로그인이 된다는 점.
로그아웃을 명시적으로 할 수가 없다는 얘기가 무슨 얘기냐면... 일단 로그아웃 링크는 있다.
그런데 그걸 클릭하면 웹 브라우저를 닫으라는 페이지만 표시되고 실제로 로그아웃 처리는 안된다.
웹 브라우저를 다시 열면 저절로 자동 로그인이 되니까 말이다.
>> 참조: Sharepoint Authentication and Session Management (http://blog.robgarrett.com/2013/05/06/sharepoint-authentication-and-session-management/)
이유를 찾아 봤더니 WS-Federation에 정의된 세션(캐시) 유지 시간 때문인 것으로...
즉, Sharepoint 서버 내부에서는 LogonTokenCacheExpirationWindow 값(기본값: 10분)을 가지고
웹 브라우저가 열려 있는지 여부에 관계없이 로그인 세션을 유지하는데
이 시간 이내에는 웹 브라우저를 닫았다 다시 열어도 인증된 상태를 유지하는 것.
그런데, 이것이 끝이 아니고,
ADFS 서버에서 유지하는 TokenLifetime 값(기본값: 0 = 10시간)도 중요한 역할을 하는데
이 시간 동안은 사용자 세션이 유지된다. 즉, 위 LogonTokenCacheExpirationWindow 값에 정의된 시간이 지나면
ADFS 서버로 재 인증 요청이 가게 되는데 ADFS 서버에서 TokenLifetime 시간 이내에는 자동으로 새로운 인증 토큰을 발급해주기 때문에 여전히 인증된 상태가 유지되는 것이다. 단, 웹 브라우저가 닫혀 있지 않을 때만.
이것이 의미하는 것은, 어지간해서는 하루가 지나기 전에는 한번 로그인 하면 다시 로그인할 필요가 없다는 것.
으잉??? 이거 보안적으로 살짝 문제가 있는 것은 아닌가? 10분 정도는 짧으니까 별 상관없을까?
이를 해결(?)하기 위해
첫 번째로는 위 그림처럼 ADFS 서버의 TokenLifetime 값을 15~20분까지 줄이는 방법이 있고,
(그러면 웹 브라우저를 닫고 15~20분 뒤에는 반드시 재로그인 해야 한다.)
두 번째로는 Sharepoint의 LogonTokenCacheExpirationWindow 값을 1~2분까지 줄이는 방법이 있고,
(그러면 웹 브라우저를 닫고 1~2분 뒤에는 반드시 재로그인 해야 한다.)
그 다음으로는 명시적으로 로그아웃을 하면 그 다음부터는 자동 로그인이 되지 않도록 하게 하기 위해
WS-Federation에서 정의된 Signout 기능을 구현할 방법을 찾아 봤다.
>> 참조: WS-Federation Signout 구현(http://social.technet.microsoft.com/wiki/contents/articles/1439.ad-fs-how-to-invoke-a-ws-federation-sign-out.aspx)
여기에서 signout.aspx를 찾아서 메모장으로 열고,
위 그림처럼 ADFS 페이지의 signout 기능 페이지로 바로 Redirection 시킨다.
ADFS 2.0은 로그인/로그아웃 페이지가 일반 ASPX 페이지로 만들어져 있어 쉽게 커스터마이징이 가능하다.
ADFS 서버의 /adfs/ls 폴더에서 SignOut.aspx 페이지를 찾아,
위 그림처럼 넘어온 URL 값을 보고 판단하는 로직을 살짝 하나 넣어주면 끝.
'Tech: > Server·IIS' 카테고리의 다른 글
IIS에 SSL 인증서 설치 후 사라지는 문제 (4) | 2015.04.30 |
---|---|
Sharepoint 2013 CBA 세션 수명(Session Lifetime) (0) | 2015.03.31 |
Sharepoint 2013 오피스 문서 인증창 나타나지 않게 하기 (0) | 2015.03.27 |
Exchange Remote PowerShell 실행하기 (0) | 2014.12.30 |
오류: 사용자 프로필을 로드할 수 없습니다. (7) | 2014.09.30 |