Sun 로고      이전      목차      색인      다음     

Sun ONE Messaging Server 6.0 관리자 설명서

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

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

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

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


Sun ONE 서버용 Identity Server SSO

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

SSO 제한 및 알림

SSO를 지원하도록 Messaging Server 구성

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

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


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


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

표 4-1 Identity Server 단일 사인 온(SSO) 매개 변수

매개 변수

설명

local.webmail.sso.amnamingurl

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

기본값: 설정 안 함

local.webmail.sso.amcookiename

Identity Server 쿠키 이름입니다. Identity Server가 다른 쿠키 이름을 사용하도록 구성된 경우 Messaging Server에서 단일 사인 온(SSO) 수행 시 확인할 대상을 알 수 있도록 Messaging Server에서 해당 이름을 local.webmail.sso.amcookiename으로 구성해야 합니다. 기본값은 iPlanetDirectoryPro이며 Identity Server가 기본 구성으로 구성된 경우 이 값을 변경할 수 없습니다.

기본값: 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와 동일한 메일 중요도 개념이 없으므로 수준을 info로 설정하면 많은 의미 없는 데이터가 생성될 수 있습니다. 또한 http_sso 로그 파일이 일반 Messaging Server 로깅 코드에 의해 관리되지 않으며 정리 또는 롤오버되지 않습니다. 로그 수준을 기본값보다 높게 설정하는 경우 정리 작업은 시스템 관리자의 책임입니다.

기본값: 3

local.webmail.sso.singlesignoff

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

기본값: 예

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


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

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

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

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

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

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

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

표 4-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와 iPlanet Delegated Administrator for Messaging으로만 구성됩니다. 동일한 신뢰할 수 있는 원 내에 포함되도록 동일한 SSO 접두어를 사용하여 동일한 시스템이나 다른 시스템에 Calendar Express를 추가하여 보다 복잡한 시나리오를 만들 수 있습니다. 이 시나리오는 그림 4-1에 나와 있습니다.

그림 4-1 단순한 SSO 배포

단일 SSO 접두어 아래에서 세 개의 응용 프로그램을 가진 단순 SSO 배포를 보여 주는 그래픽입니다.

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

그림 4-2 복잡한 SSO 배포

7개의 서버 응용 프로그램을 가진 복잡한 SSO 배포를 보여 주는 그래픽입니다.

신뢰할 수 있는 원 SSO 설정

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

  1. SSO에 대해 Messenger Express를 구성합니다.
    1. 적절한 SSO configutil 매개 변수를 설정합니다.
    2. Delegated Administrator가 있는 Messenger Express에 대해 단일 사인 온(SSO)을 사용하려면 구성 매개 변수를 다음과 같이 설정합니다(기본 도메인을 siroe.com으로 가정). 이러한 매개 변수는 표 4-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 applcation. Example:
            configutil -o local.sso.ida.verifyurl -v \
               “http://siroe.com:8080/verifySSO?”

    3. 구성을 변경한 후 Messenger Express http 서버를 다시 시작합니다.
    4. cd instance_root
      ./stop-msg http
      ./start-msg http

  2. SSO에 대해 Directory Server를 구성합니다.
    1. 디렉토리에 프록시 사용자 계정을 만듭니다.
    2. 프록시 사용자 계정을 사용하면 Delegated Administrator에서 프록시 인증을 위해 Directory Server에 바인드할 수 있습니다. 다음 LDIF 코드(proxy.ldif)를 사용하면 ldapadd를 통해 프록시 사용자 계정 항목을 만들 수 있습니다.

      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

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

    3. 프록시 사용자 계정 인증을 위해 해당 ACI를 만듭니다.
    4. 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 파일에 컨텍스트에 대한 프록시 사용자 자격 증명과 쿠키 이름을 추가합니다.
    2. Delegated Administrator iDA_server_root/nda/classes/netscape/nda/
      servlet/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=siroe.com, o=isp
      LDAPDatabaseInterface-ldapauthpw=proxypassword
      NDAAuth-singleSignOnId=ssogrp1-
      NDAAuth-applicationId=ida

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

      다음 예에서는 Messenger Express를 설치하고 해당 응용 프로그램 아이디가 msg5라고 가정합니다. Delegated Administrator iDA_server_root/nda/
      classes/netscape/nda/servlet/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?

  4. Delegated Administrator 단일 사인 온(SSO) 쿠키 정보를 추가하고 UTF8 매개 변수 인코딩을 사용합니다.
    1. Delegated Administrator에 대한 컨텍스트 식별자를 정의합니다.

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

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

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

      context.ims50.sessionCookie=ssogrp1-ida

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

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

      context.ims50.parameterEncoding=utf8

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

    WebServer_Root/https-iinstance_name/stop
    WebServer_Root/https-instancename/start

  7. 이 SSO 그룹에서 Calendar를 배포하려면 Calendar Server를 구성합니다.
  8. 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?

  9. Calendar Server를 다시 시작합니다.
  10. start-cal

  11. Messenger Express http 서버를 다시 시작합니다.
  12. msg_svr_base/sbin/stop-msg http
    msg_svr_base/sbin/start-msg http

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

표 4-3에 표시된 것처럼 configutil 명령을 사용하여 Messenger Express에 대한 단일 사인 온(SSO) 구성 매개 변수를 수정할 수 있습니다. configutil에 대한 자세한 내용은 Messaging Server Reference Manual을 참조하십시오.

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

매개 변수

설명

local.webmail.sso.enable

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

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

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

기본값은 0입니다.

local.webmail.sso.prefix

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

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

기본값은 null입니다.

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

NDAAuth-singleSignOnID=ssogrp1-

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

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.
cookiedomain

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

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

local.webmail.sso.
singlesignoff

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

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

기본값은 0입니다.

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를 지정해야 합니다. 그렇게 하면 쿠키를 확인하는 데 올바른 시스템이 사용됩니다.



이전      목차      색인      다음     


Copyright 2003 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.