Caution
Referer를 이용한 웹액세스 인증은 구현이 매우 간단한 이점이 있지만 보안상 취약점이 있으므로 폐쇄된 인트라넷과 같은 환경에서 연동하는 경우에 사용하는 것을 권장합니다. 인터넷에 오픈된 환경에서는 향상된 보안을 위해 보안 토큰을 사용한 안전한 자동 로그인 방법을 사용 바랍니다.
다른 웹사이트에서 메일캐리어 웹액세스로 이동 시 사용자 인증(메일 계정과 암호 입력) 없이 자동으로 로그인 시킬 수 있습니다. 예를 들어 사내 인트라넷 시스템에 로그인해서 사용하다가 웹액세스 시스템으로 이동한다면 일반적으로 웹액세스에 다시 로그인해야 하는 번거로움이 있습니다. 이미 인트라넷에서 인증되었기 때문에 웹액세스 인증 없이 바로 웹액세스의 로그인 상태가 된다면 매우 편리한 환경을 제공할 수 있습니다.
메일캐리어 웹액세스/웹클래식/웹모바일은 이를 위해 HTTP referer를 검사해 인증시키는 방법을 제공합니다. 인트라넷의 도메인을 웹액세스의 허용 referer 목록에 추가하고 인트라넷 페이지에서 웹액세스로의 자동 로그인 링크를 작성합니다. 사용자가 해당 링크 클릭 시 웹액세스는 인트라넷이 referer 목록에 있으므로 인증을 통과시켜 로그인된 상태로 만듭니다.
기능을 사용하기 위해서는 웹액세스 루트 폴더에 있는 Web.config 파일에서 EnableSsoUsingReferer 키에 true를 지정합니다.
<appSettings>
<add key="EnableSsoUsingReferer" value="true" />
</appSettings>
웹액세스 파일 중 App_Data/referer.xml을 notepad에서 엽니다.
로그인 링크가 게시될 사이트 URL을 다음과 같은 형식으로 추가합니다.
<allowed>
<site>http://your_referer_domain1/</site>
<site>http://your_referer_domain2/application/index.htm</site>
</allowed>
Referer가 여러 개일 경우 <site /> 태그를 여러 개 지정할 수 있습니다. 도메인 형태로 http://your_referer_domain1/ 과 같이 입력하면 해당 도메인에서의 링크는 인증을 허용하겠다는 의미입니다. 페이지 URL 형태로 입력하면 해당 페이지에서의 링크만 인증을 허용하겠다는 의미입니다.
로그인 링크는 다음과 같이 생성해서 저장합니다.
<a href="http://webaccess_domain/External/Logon.ashx?User=user@domain&ReturnUrl=%2fDefault.aspx">웹액세스로 이동</a>
user@domain에는 로그인할 메일 계정을 지정하고, %2fDefault.aspx에서는 로그인 성공 후 시작될 페이지를 지정합니다.
iframe에 웹액세스를 로딩하는 방법입니다.
Lang 파라미터는 기본 언어를 지정하며 ko 또는 en을 지정할 수 있습니다.
function gotoWebaccess()
{
document.getElementById('ifrm').src = "http://webaccess_domain/External/Logon.ashx?User=user@domain&Lang=ko";
}
새 창으로 웹액세스 페이지를 로딩하는 방법입니다.
window.open() 호출 후 생성된 window 객체에 url을 지정해야 IE에서 정상 동작합니다.
function gotoWebaccess()
{
var url = "http://webaccess_domain/External/Logon.ashx?User=user@domain";
var win = window.open('', "_blank", "width=900,height=650,scrollbars=yes,resizable=yes");
win.location.href = url;
}
웹메일의 주소록 페이지로 이동 방법
기본 페이지(메일)가 아닌 주소록 페이지로 이동하는 방법입니다.
function gotoWebaccessContact()
{
var retUrl = "/Contact/Default.aspx";
document.getElementById('ifrm').src = "http://webaccess_domain/External/Logon.ashx?User=user@domain&Lang=ko&ReturnUrl=" + encodeURIComponent(retUrl);
}
웹메일의 메일 쓰기 페이지로 이동 방법
메일 수신자를 지정해 메일 쓰기 페이지를 띄우는 방법입니다.
function newMailForm(toName, toAddr)
{
var retUrl = "/Mail/NewQ.aspx?action=new&to=" + toName + "|" + toAddr;
var url = "http://webaccess_domain/External/Logon.ashx?Logon.ashx?User=user@domain&Lang=ko&ReturnUrl=" + encodeURIComponent(retUrl);
var win = window.open('', "NewMail", "width=900,height=650,scrollbars=yes,resizable=yes");
win.location.href = url;
}
최근 크로스 도메인에 대한 웹브라우저의 보안이 강화됨에 따라 iframe 내의 웹사이트에서는 쿠키 생성이 제한됩니다. 따라서 웹메일 로그인 자체가 불가능해집니다. 반드시 iframe 사이트와 iframe을 감싸는 사이트의 도메인을 동일하게 구성하기 바랍니다.
보다 상세한 내용은 웹메일 사이트를 그룹웨어 사이트의 프레임에 넣을 경우 로그인이 되지 않는 경우을 참고 바랍니다.