Sun Java System Messaging Server 6 2005Q4 관리 설명서

6장 단일 사인 온(SSO) 사용

단일 사인 온(SSO)은 최종 사용자가 한 번의 인증(사용자 아이디와 비밀번호를 사용하여 로그온)으로 여러 응용 프로그램에 액세스할 수 있는 기능입니다. Sun Java System Access Manager(이전 명칭은 Identity Server임)는 Sun Java System 서버에 대한 SSO에 사용되는 공식적인 게이트웨이입니다. 즉, 사용자가 다른 SSO 구성 서버에 액세스하려면 Access Manager에 로그인해야 합니다.

예를 들어, 제대로 구성된 경우 사용자는 Sun Java System Access Manager 로그인 화면에서 서명한 후 다른 창에서 다시 서명하지 않고도 Messenger Express에 액세스할 수 있습니다. 마찬가지로 Sun Java System Calendar Server를 제대로 구성한 경우 사용자는 Sun Java System Access Manager 로그인 화면에서 서명한 후 다른 창에서 다시 서명하지 않고도 해당 Calendar에 액세스할 수 있습니다.

Messaging Server에서는 SSO를 배포하는 두 가지 방법을 제공합니다. 첫 번째 방법은 Sun Java System Access Manager를 통한 방법이고 두 번째 방법은 통신 서버의 신뢰할 수 있는 원 기술을 통한 방법입니다. 신뢰할 수 있는 원을 사용하는 것은 레거시 SSO 구현 방법입니다. 이 방법은 Access Manager SSO에서는 사용할 수 없는 여러 기능을 제공하지만 이후의 모든 개발에서 Access Manager를 사용하게 될 것이므로 사용하지 않는 것이 좋습니다. 하지만 다음 절에서는 두 가지 방법을 모두 설명합니다.

Sun Java System 서버에 대한 Access Manager SSO

이 절에서는 Access Manager를 사용하는 SSO에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.

SSO 제한 사항 및 알림

SSO를 지원하도록 Messaging Server 구성

네 개의 configutil 매개 변수가 Messaging Server SSO를 지원합니다. 이 네 개 중 local.webmail.sso.amnamingurl 하나만 Messaging Server에서 SSO를 사용하는 데 필요합니다. SSO를 사용하려면 이 매개 변수를 Access Manager에서 이름 지정 서비스를 실행하는 URL로 설정합니다. 일반적으로 이 URL은 http://server/amserver/namingservice입니다. 예:


configutil -o local.webmail.sso.amnamingurl -v 
http://sca-walnut:88/amserver/namingservice

주 –

Access Manager SSO는 이전 SSO 기법을 사용하는 local.webmail.sso.enable을 확인하지 않습니다. local.webmail.sso.enableoff 또는 설정되지 않은 상태로 두어야 합니다. 그렇지 않으면 이전 SSO 기법에 필요한 구성 매개 변수가 없다는 경고 메일이 기록됩니다.


configutil 명령을 사용하여 표 6–3에 표시된 SSO 구성 매개 변수를 수정할 수 있습니다.

표 6–1 Access Manager 단일 사인 온 매개 변수

매개 변수 

설명 

local.webmail.sso.amnamingurl

Access Manager가 이름 지정 서비스를 실행하는 URL입니다. Access Manager를 통해 단일 사인 온(SSO)하기 위해 필수적인 변수입니다. 일반적으로 이 URL은 http://server/amserver/namingservice입니다.

기본값: 설정 안 함 

local.webmail.sso.amcookiename

Access Manager 쿠키 이름입니다. 기본적으로 Access Manager는 iPlanetDirectoryPro라는 쿠키에 세션 핸들을 저장합니다. Access Manager가 다른 쿠키 이름을 사용하도록 구성된 경우 Messaging Server에서 단일 사인 온(SSO) 수행 시 확인할 대상을 알 수 있도록 Messaging Server에서 해당 이름을 이 매개 변수로 구성해야 합니다. IS가 기본 구성으로 구성된 경우 기본값을 변경할 수 없습니다.

기본값: iPlanetDirectoryPro

local.webmail.sso.amloglevel

AMSDK 로깅 수준입니다. Messaging Server에 사용되는 SSO 라이브러리에는 Messaging Server와는 별도로 자체 로깅 기법이 있습니다. msg_svr_base/loghttp_sso라는 파일에 메일이 기록됩니다. 기본적으로 info 이상의 로깅 수준을 가진 메일만 기록되지만 로깅 수준을 1부터 5까지의 값(1 = errors, 2 = warnings, 3 = info, 4 = debug, 5 = maxdebug)으로 설정하여 로깅 수준을 높일 수 있습니다. 이 라이브러리에는 Messaging Server와 동일한 메일 중요도 개념이 없으므로 수준을 debug로 설정하면 많은 의미 없는 데이터가 생성될 수 있습니다. 또한 http_sso 로그 파일이 일반 Messaging Server 로깅 코드에 의해 관리되지 않으며 정리 또는 롤오버되지 않습니다. 로그 수준을 기본값보다 높게 설정하는 경우 정리 작업은 시스템 관리자의 책임입니다.

기본값: 3 

local.webmail.sso.singlesignoff

Messaging Server에서 Access Manager로의 단일 사인 오프입니다. Access Manager는 중앙 인증 기관이며 단일 사인 오프는 항상 Access Manager로부터 Messaging Server로 사용됩니다. 이 옵션을 사용하면 사이트에서 사용자가 웹 메일의 로그아웃 버튼을 눌러 Access Manager에서도 로그아웃할지 여부를 구성할 수 있습니다(일부 사용자 정의 작업 생략). 이 옵션은 기본적으로 사용됩니다. 이 옵션을 사용하지 않는 경우에는 로그아웃이 루트 문서를 참조하고 해당 루트 문서는 쿠키가 존재하고 유효한 이상 받은 메일함 디스플레이를 참조하기 때문에 사용자가 기본 웹 메일 클라이언트에서 로그아웃하면 자동으로 다시 로그인됩니다. 따라서, 사이트에서 이 옵션을 사용하지 않도록 선택하면 웹 메일 로그아웃시 발생되는 내용을 사용자 정의해야 합니다.

기본값: 예 

SSO 문제 해결

SSO에 문제가 있는 경우 처음 수행할 작업은 오류에 대한 웹 메일 로그 파일 msg_svr_base/log/http를 검사하는 것입니다. 로깅 수준을 높이는 것도 유용할 수 있습니다(configutil -o logfile.http.loglevel -v debug). 이 작업이 도움이 되지 않는 경우 msg_svr_base/log/http_sso에서 amsdk 메일을 검사한 다음 amsdk 로깅 수준을 높입니다(configutil -o local.webmail.sso.amloglevel -v 5). 새 로깅 수준을 적용하려면 서버를 다시 시작해야 합니다.

SSO에 여전히 문제가 있을 경우 로그인하는 동안 Access Manager와 Messaging Server 모두에서 정규화된 호스트 이름을 사용하는지 확인합니다. 쿠키는 동일한 도메인의 서버 간에만 공유되며 브라우저는 로컬 서버 이름에 대한 도메인이 무엇인지 알지 못하므로 브라우저에서 정규화된 이름을 사용해야 SSO가 작동합니다.

신뢰할 수 있는 원 SSO(레거시)

이 절에서는 신뢰할 수 있는 원 SSO에 대해 설명합니다. 이후의 모든 개발에서 Access Manager를 사용하게 될 것이므로 이 SSO 방법을 사용하지 않는 것이 좋습니다. 그러나 신뢰할 수 있는 원 SSO에서 사용할 수 있는 기능 중 일부는 현재 Access Manager SSO에서 사용할 수 없습니다. 이 절은 다음과 같은 하위 절로 구성되어 있습니다.

신뢰할 수 있는 원 SSO 개요 및 정의

SSO를 배포하기 전에 다음 용어에 대해 잘 알고 있어야 합니다.

신뢰할 수 있는 원 SSO 응용 프로그램

SSO를 구현하기 전에 먼저 이 신뢰할 수 있는 원에 속하는 응용 프로그램을 고려해야 합니다. 이 신뢰할 수 있는 원에 포함될 수 있는 응용 프로그램은 Messenger Express (Messenger Express Multiplexor 사용 또는 사용 안 함), Calendar Express 및 이전 iPlanet Delegated Administrator for Messaging(Sun LDAP Schema 1만 지원하므로 권장되지 않음)입니다.

표 6–2에서는 SSO를 통해 서로 액세스할 수 있는 응용 프로그램을 보여 줍니다. 사용자의 관점에서 첫 번째 열의 응용 프로그램 중 하나에 로그인한 다음 사용자 아이디와 비밀번호를 다시 입력하지 않고 맨 위의 행에 있는 응용 프로그램에 액세스할 수 있다면 SSO가 적용되는 것입니다.

표 6–2 SSO 상호 운용성

                                    대상:  

 

시작:  

Calendar Express 

Messenger Express 

Messenger Express Multiplexor 

Delegated Administrator 

Calendar Express 

SSO 

SSO 

SSO 

SSO 

Messenger Express 

SSO 

해당 없음 

해당 없음 

SSO 

Messenger Express Multiplexor 

SSO 

해당 없음 

해당 없음 

SSO 

Delegated Administrator 

SSO 

SSO 

SSO 

해당 없음 

신뢰할 수 있는 원 SSO 제한

신뢰할 수 있는 원 SSO 배포 시나리오 예

가장 단순한 SSO 배포 시나리오는 Messenger Express와 Delegated Administrator로만 구성됩니다. 신뢰할 수 있는 동일한 원 내에 포함되도록 동일한 SSO 접두어를 사용하여 동일한 시스템이나 다른 시스템에 Calendar Express를 추가하여 보다 복잡한 시나리오를 만들 수 있습니다. 이 프로세스는 그림 6–1에 표시되어 있습니다.

그림 6–1 단순 SSO 배포

이 그림은 단순 SSO 배포를 보여 줍니다.

보다 복잡한 배포에는 Messenger Express Multiplexor와 로드 밸런서가 있습니다.

그림 6–2 복잡한 SSO 배포

이 그림은 복잡한 SSO 배포를 보여 줍니다.

신뢰할 수 있는 원 SSO 설정

이 절에서는 Messenger Express, Delegated Administrator 및 Calendar Manager에 대한 SSO 설정에 대해 설명합니다.

ProcedureMessenger Express, Delegated Administrator 및 Calendar Manager에 대해 SSO를 설정하는 방법

단계
  1. SSO에 대해 Messenger Express를 구성합니다.

    1. 적절한 SSO configutil 매개 변수를 설정합니다.

      Delegated Administrator가 있는 Messenger Express에 대해 단일 사인 온(SSO)을 사용하려면 구성 매개 변수를 다음과 같이 설정합니다(기본 도메인을 siroe.com으로 가정). 이러한 매개 변수는 표 6–3에 설명되어 있습니다. 루트 사용자여야 합니다. cd에서 instance_root


      configutil -o local.webmail.sso.enable -v 1
      configutil -o local.webmail.sso.prefix -v ssogrp1
      

      ssogrp1 is the default SSO Prefix used by iDA, although you can choose a different prefix, using the default would save a little typing when configuring iDA and iCS.


      configutil -o local.webmail.sso.id -v ims5
      

      ims5 is a name you pick to identify Messenger Express (ME) to other applications.


      configutil -o local.webmail.sso.cookiedomain -v “.siroe.com”
      

      The above domain must match the domain used by the ME/browser client to connect to the servers. Thus, although the hosted domain on this server may be called xyz.com, we must use a real domain in the DNS. This value must start with a period.


      configutil -o local.webmail.sso.singlesignoff -v 1
      configutil -o local.sso.ApplicationID.verifyurl -v \
      "http://ApplicationHost:port/VerifySSO?"
      

      ApplicationID is a name we give to the SSO application (example: ida for Delegated Administrator, ics50 for Calendar Server). ApplicationHost:port is the host and port number of the application. You will have one of these lines for each non-Messaging Server application. 예:


      configutil -o local.sso.ida.verifyurl -v \
      "http://siroe.com:8080/VerifySSO?"
      
    2. 구성을 변경한 후 Messenger Express http 서버를 다시 시작합니다.


      cd instance_root./stop-msg http
      ./start-msg http
      
  2. SSO에 대해 Directory Server를 구성합니다.

    1. 디렉토리에 프록시 사용자 계정을 만듭니다.

      프록시 사용자 계정을 사용하면 Delegated Administrator에서 프록시 인증을 위해 Directory Server에 바인드할 수 있습니다. 다음 LDIF 코드(proxy.ldif)를 사용하면 ldapadd를 통해 프록시 사용자 계정 항목을 만들 수 있습니다.

      ldapadd -h mysystem.siroe.com -D "cn=Directory Manager" -w password -v -f proxy.ldif


      dn: uid=proxy, ou=people, o=siroe.com, o=isp
      objectclass: top
      objectclass: person
      objectclass: organizationalperson
      objectclass: inetorgperson
      uid: proxy
      givenname: Proxy
      sn: Auth
      cn: Proxy Auth
      userpassword: proxypassword
    2. 프록시 사용자 계정 인증을 위해 해당 ACI를 만듭니다.

      ldapmodify 유틸리티를 사용하여 Delegated Administrator를 설치할 때 만든 각 접미어에 대한 ACI를 만듭니다.

      osiroot - 사용자 데이터를 저장하기 위해 입력한 접미어입니다(기본값: o=isp). osiroot는 조직 트리의 루트입니다.

      dcroot - 도메인 정보를 저장하기 위해 입력한 접미어입니다. 기본값은 o=internet입니다.

      osiroot - 구성 정보를 저장하기 위해 입력한 접미어이며 사용자 데이터를 저장하기 위해 입력한 값과 동일해야 합니다.

      다음은 앞에서 작성한 프록시 사용자의 osiroot에 대한 ACI 항목(aci1.ldif) 예입니다.


      dn: o=isp
      changetype: modify
      add: aci
      aci: (target="ldap:///o=isp")(targetattr="*")(version 3.0; acl
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people,
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v 
      -f aci1.ldif
      

      다음과 같이 dcroot에 대해 비슷한 ACI 항목(aci2.ldif)을 만듭니다.


      dn: o=internet
      changetype: modify
      add: aci
      aci: (target="ldap:///o=internet")(targetattr="*")(version 3.0; acl 
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people, 
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v
      -f aci2.ldif
      
  3. Delegated Administrator를 구성합니다.

    1. Delegated Administrator resource.properties 파일에 컨텍스트에 대한 프록시 사용자 자격 증명과 쿠키 이름을 추가합니다.

      resource.properties 파일에서 다음 항목에 대한 주석 처리를 취소하고 수정합니다.


      LDAPDatabaseInterface-ldapauthdn=Proxy_Auth_DN
      LDAPDatabaseInterface-ldapauthpw=Proxy_Auth_Password
      NDAAuth-singleSignOnId=SSO_Prefix-
      NDAAuth-applicationId=DelAdminID
      

      예를 들면 다음과 같습니다.


      LDAPDatabaseInterface-ldapauthdn= uid=proxy,ou=people,o=cesta.com,o=isp
      LDAPDatabaseInterface-ldapauthpw=proxypassword
      NDAAuth-singleSignOnId=ssogrp1-
      NDAAuth-applicationId=ida

      resource.properties 파일은 다음 위치에 저장됩니다.

      iDA_svr_base/nda/classes/netscape/nda/servlet/

    2. 참여하는 서버의 확인 URL을 추가합니다.

      수신하는 단일 사인 온(SSO) 쿠키를 확인하려면 Delegated Administrator에서 연결할 사람을 알고 있어야 합니다. 알려진 모든 참여 서버에 대한 확인 URL을 제공해야 합니다.

      다음 예에서는 Messenger Express를 설치하고 해당 응용 프로그램 아이디가 msg5라고 가정합니다. Delegated Administrator resource.properties 파일을 편집하고 다음 항목을 추가합니다.


      verificationurl-ssogrp1-msg5=http://webmail_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ida=http://iDA_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ics50=http://iCS_hostname:port/VerifySSO?

      resource.properties 파일은 다음 디렉토리에 있습니다.

      iDA_svr_base/nda/classes/netscape/nda/servlet/

  4. Delegated Administrator 단일 사인 온(SSO) 쿠키 정보를 추가하고 UTF8 매개 변수 인코딩을 사용합니다.

    1. Delegated Administrator에 대한 컨텍스트 식별자를 정의합니다.

      servlets.properties 파일을 편집하고 servlet.*.context=ims50 텍스트에 포함된 모든 행의 주석을 취소합니다. 여기서 *는 모든 문자열입니다.

      servlets.properties 파일은 다음 위치에 있습니다.

      Web_Svr_Base/https-instancename/config/

    2. Enterprise Server 구성에서 해당 컨텍스트에 대한 쿠키 이름을 지정합니다.

      Enterprise Server contexts.properties 파일을 편집하고 파일의 맨 아래쪽에 있는 #IDACONF-Start 행 앞에 다음을 추가합니다.

      context.ims50.sessionCookie=ssogrp1-ida

      contexts.properties 파일은 다음 위치에 있습니다.

      Web_Svr_Base/https-instancename/config/

    3. ims5 컨텍스트에 대해 UTF8 매개 변수 인코딩을 사용합니다.

      Enterprise Server 구성에서 ims5 컨텍스트에 대해 UTF8 매개 변수 인코딩을 사용하려면 Enterprise Server contexts.properties 파일에 다음 항목을 추가합니다.

      context.ims50.parameterEncoding=utf8

  5. Messenger Express를 다시 시작합니다.

    단계 1a에서 2c에 설명된 대로 구성을 변경한 후에는 Messenger Express를 다시 시작해야 변경 사항이 적용됩니다.


    Web_Svr_Base/https-instance_name/stop
    Web_Svr_Base/https-instancename/start
    
  6. 이 SSO 그룹에서 Calendar를 배포하려면 Calendar Server를 구성합니다.

    ics.conf를 편집하고 다음을 추가합니다.


    sso.appid = "ics50"
    sso.appprefix = "ssogrp1"
    sso.cookiedomain = ".red.iplanet.com"
    sso.enable = "1"
    sso.singlesignoff = "true"
    sso.userdomain = "mysystem.red.iplanet.com"
    sso.ims5.url="http://mysystem.red.iplanet.com:80/VerifySSO?"
    sso.ida.url=http://mysystem.red.iplanet.com:8080/VerifySSO?
  7. Calendar Server를 다시 시작합니다.

    start-cal

  8. Messenger Express http 서버를 다시 시작합니다.


    msg_svr_base/sbin/stop-msg http
    msg_svr_base/sbin/start-msg http
    

Messenger Express의 신뢰할 수 있는 SSO 구성 매개 변수

Messenger Express의 신뢰할 수 있는 SSO 구성 매개 변수에 표시된 것처럼 configutil 명령을 사용하여 Messenger Express에 대한 단일 사인 온(SSO) 구성 매개 변수를 수정할 수 있습니다. configutil에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.

표 6–3 신뢰할 수 있는 원 단일 사인 온(SSO) 매개 변수

매개 변수 

설명 

local.sso.appid .verifyurl

피어 SSO 응용 프로그램에 대한 확인 URL 값을 설정합니다. appid는 해당 SSO 쿠키를 수락하는 피어 SSO 응용 프로그램의 응용 프로그램 아이디입니다. 예를 들어, Delegated Administrator에 대한 기본 appidnda45이고 실제 값은 Delegated Administrator resource.properties 파일 항목 NDAAuth-applicationID에 의해 지정됩니다.

신뢰할 수 있는 각 피어 SSO 응용 프로그램에 대해 정의된 하나의 매개 변수가 있어야 합니다. 확인 URL의 표준 형식은 다음과 같습니다. 

http://nda-host:port/VerifySSO?

여러 Messenger Express Multiplexors 및 Message Store 서버(Messenger Express 실행) 또는 Calendar 프런트 엔드 앞에 로드 밸런서를 사용할 경우 verifyurl에 실제 호스트 이름을 사용하여 각 물리적 시스템에 대해 서로 다른 appid를 지정해야 합니다. 그렇게 하면 쿠키를 확인하는 데 올바른 시스템이 사용됩니다.


local.webmail.sso.
cookiedomain

이 매개 변수의 문자열 값은 Messenger Express HTTP 서버에서 설정한 모든 SSO 쿠키의 쿠키 도메인 값을 설정하는 데 사용됩니다. 기본값은 null입니다.  

이 도메인은 Messenger Express 브라우저에서 서버에 액세스하는 데 사용한 DNS 도메인과 일치해야 합니다. 호스트된 도메인 이름이 아닙니다. 

local.webmail.sso.enable

로그인 페이지를 가져올 때 클라이언트가 표시한 SSO 쿠키 허용 및 확인, 로그인에 성공한 경우 클라이언트에 SSO 쿠키 반환 및 쿠키 확인을 위해 다른 SSO 파트너의 요청에 회신 등을 포함하여 모든 단일 사인 온(SSO) 기능을 사용하거나 사용하지 않습니다. 

0이 아닌 값을 설정하면 서버에서 모든 SSO 기능을 수행합니다. 

0을 설정하면 서버에서 이러한 SSO 기능을 수행하지 않습니다. 

기본값은 0입니다. 

local.webmail.sso.id

Messenger Express HTTP 서버에서 설정한 SSO 쿠키의 서식을 지정할 때 이 매개 변수 문자열 값이 응용 프로그램 아이디 값으로 사용됩니다. 기본값은 null입니다. 

이 값은 임의의 문자열입니다. 이 값은 resource.properties 파일에서 Delegated Administrator에 대해 지정한 값과 일치해야 합니다. resource.properties의 해당 항목은 다음과 같습니다.


Verifycationurl-XXX-YYY=http://webmailhost:
webmailport/VerifySSO?

여기서 XXX는 위에서 설정한 local.webmail.sso.prefix 값이고 YYY는 여기서 설정한 local.webmail.sso.id 값입니다.

local.webmail.sso.prefix

Messenger Express HTTP 서버에서 설정한 SSO 쿠키의 서식을 지정할 때 이 매개 변수 문자열 값이 접두어 값으로 사용됩니다. 이 접두어가 있는 SSO 쿠키만 서버에 인식되며 다른 SSO 쿠키는 모두 무시됩니다. 

이 매개 변수에 null 값을 설정하면 서버에서 모든 SSO 기능을 효과적으로 비활성화할 수 있습니다. 

기본값은 null입니다. 

이 문자열은 후행 -가 없는 resource.properties 파일에서 Delegated Administrator에 사용된 문자열과 일치해야 합니다. 예를 들면 다음과 같습니다.

NDAAuth-singleSignOnID=ssogrp1-

이 값을 ssogrp1로 설정해야 합니다.


local.webmail.sso.
singlesignoff

0이 아닌 값으로 설정한 경우 이 매개 변수의 정수 값은 클라이언트가 로그아웃할 때 local.webmail.sso.prefix에 구성된 값과 일치하는 접두어 값을 갖는 클라이언트의 모든 SSO 쿠키를 지웁니다. 

0으로 설정하면 Messenger Express는 클라이언트가 로그아웃할 때 해당 클라이언트의 SSO 쿠키만 지웁니다. 

기본값은 0입니다.