먼저, Sharepoint 2013의 최초 설치 시 기본 인증 모드인 NTLM이 적용된 상태에서는

문서를 편집하려고 문서 라이브러리에서 편집 모드로 열면(IE에서)

오피스에서 문서가 열리는데 그 때 마다 인증 창이 나타나서 다시 로그인해야 하기 때문에 몹시 귀찮다.


그냥 읽기 전용 모드로 보기만 할 때는

오피스로 열 필요 없이 오피스 웹 앱 서버를 설치해서 웹 브라우저로 바로 열면 되긴 한다.


>> 참고:

- 오피스 웹 앱 서버 설치(https://technet.microsoft.com/en-us/library/jj219455.aspx)

- 오피스 웹 앱 사용 설정(https://technet.microsoft.com/en-us/library/ff431687.aspx)



아무튼,

오피스에서 인증창이 매번 나타나는 것을 어떻게든 피해보려고 여러가지 방법을 알아보다가

Sharepoint 2013에 있는 CBA(Claims Based Authentication) 기능 중 SAML 토큰을 사용하는 방식,

즉, ADFS를 통한 WS-Federation 인증(원래는 이걸 CBA라고 불렀었다)을 이용하는 방법을 썼더니

최초 1회 인증창이 나타난 후로는 더 이상 인증창이 나타나지 않는다는 사실을 발견했다.


오~ 신기신기!


사실, Sharepoint 인증을 FBA(Forms-Based Authentication)로 바꾸고

로그인할 때 암호 입력상자 아래에 있는 "자동으로 로그인" 체크박스에 체크를 하면 똑같이 되긴 한다.

그런데, 그 방법은 명시적으로 사용자가 체크를 해야 가능한 것인데다

현재 내가 참여하고 있는 프로젝트에서 도입한 SSO 솔루션이 FBA 모드를 지원하지 않아 사용할 수 없는 관계로

어쨌거나 CBA SAML 토큰 방식 인증을 써야 하는 상황인데,

대체 왜 인증창이 나타나지 않고 잘 되는 것인지 알 수가 없었다.

웹 브라우저를 완전히 껐다 켜봐도 여전히 인증창 없이 잘 되고

심지어 컴퓨터를 껐다 켜봐도 잘 되는 것이 아닌가?


한 가지 특이한 현상은,

한번 로그인을 하고 나면 Sharepoint에 접속할 때 역시 따로 로그인할 필요 없이 자동 로그인이 된다는 점.


그래서 면밀히 조사를 해봤더니

이런, 웹 브라우저, 아니 컴퓨터에 영구 쿠키(Permanent Cookies)가 저장되는 것이었다.

그러니 로그인 하라고 다시 안 물어보지.


또, "InPrivate 브라우징 시작"으로 IE 웹 브라우저를 실행해서 Sharepoint에 접속하면 로그인 화면이 나오는데

문서를 클릭해서 오피스에서 열 때는 다시 로그인 창이 나타나지 않는 것도 역시 이 영구 쿠키 때문이었다.

오피스에서 문서 열 때 사용하는 웹 접속은 InPrivate 모드가 아니니까.






그런데 특이한 점은,

쿠키의 내용을 보니 FedAuth로 시작하는 것으로 보아 WS-Federation 관련 쿠키임은 알겠는데,

이 영구 쿠키가 딱 5일 후 만료되는 설정으로 생성된다는 점이었다.

(위 화면에서 로그인한 날짜, 즉 쿠키가 생성된 날짜가 "2015-03-27 오후 5:03"이었다.)




그러니까, 5일 동안은 인증창 없이 문서를 편집할 수 있지만

5일이 지나면 다시 인증창이 나타난다는 것이 아닌가? (5일 후 Sharepoint에 다시 로그인하면 갱신되긴 한다) 


대체 이 5일이라는 설정은 어디에 있는 것일까?



찾고,

또 찾고,

또 찾아봤다.



>> 참조: ADFS 2.0 Powershell 사용(https://technet.microsoft.com/en-us/library/adfs2-powershell-basics%28v=ws.10%29.aspx)


>> 참조: 기타 Sharepoint 세션-쿠키 관련 링크들

  - http://blog.robgarrett.com/2013/05/06/sharepoint-authentication-and-session-management/

  - https://msdn.microsoft.com/en-us/library/ee895366.aspx

  - https://msdn.microsoft.com/en-us/library/office/hh147183(v=office.14).aspx



결국, 찾았다.
바로 Sharepoint 2013 서버의 보안 토큰 서비스 설정에 있었다.

Get-SPSecurityTokenServiceConfig



바로 위 그림에서 보듯.

이 설정을 바꾸면 진짜로 영구 쿠키 만료 날짜가 바뀔까?




영구 쿠키 파일을 삭제하고 다시 시도해 보니... 바뀌었다!

ㅎㅎㅎ



그런데, 희한하게도 위 영구 쿠키는 웹 브라우저(IE)와는 관계없고, 오피스 실행 시 나타나는 인증창에서 로그인을 해야 영구 쿠키 파일이 생긴다. 왜 그럴까?

==> 아이쿠! 실수. IE 인터넷 옵션의 [개인 정보] 탭에 있는 인터넷 영역 쿠키 설정이 "보통"으로 되어 있어서 영구 쿠키 파일이 저장되지 않았기 때문이었다. 해당 사이트를 "로컬 인트라넷" 또는 "신뢰할 수 있는 사이트"에 추가하거나 "관리되는 웹 사이트" 목록에 추가하면 영구 쿠키가 생긴다. 오피스에서 실행하는 내장 IE에서는 영구 쿠키가 저장되었던 이유는 그런 설정이 무시되기 때문인 듯.

 



정리하면,

설정이나 인터넷 영역 보안 등 상황에 따라 차이가 있어서 세부 내용을 정리하는 데는 시간이 좀 걸리겠지만

일단 간략히 정리하면 아래와 같다.


1. 인터넷 영역 기본 설정(영구 쿠키 차단) 환경

A. Sharepoint에 로그인해도 인증 토큰(영구 쿠키)가 생기지 않음

B. 문서 라이브러리에서 오피스로 편집하려고 문서를 열 때 인증 창이 나타남

C. 오피스 인증 창에서 인증하면 인증 토큰(영구 쿠키)가 생성됨 --> IE 인터넷 영역 설정 무시

D. 이후부터는 오피스에서 다시 인증 창이 나타나지 않음 --> 인증 토큰(영구 쿠키) 만료: 기본 5일


2. 로컬 인트라넷(또는 신뢰할 수 있는 사이트) 영역 설정 환경

A. Sharepoint에 로그인하면 인증 토큰(영구 쿠키)가 생성됨

B. 문서 라이브러리에서 오피스로 편집하려고 문서를 열 때 인증 창이 나타나지 않고 자동 인증됨


즉, IE 보안 영역에 따라 "인터넷 영역"이면 최초 1회 인증 창이 나타나게 되고, 이후부터는 나타나지 않게 된다.

(IE 보안 영역에서 해당 사이트를 로컬 인트라넷으로 지정하면 인증 창이 한번도 나타나지 않는다.)







Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]