Active Directory 도메인에서 SPNEGO를 사용하여 싱글 사인온 구현

Active Directory 도메인에서 싱글 사인온을 구현할 수 있도록 SPNEGO(Simple and Protected GSS-API Negotiation) 메커니즘이 제공됩니다.

시작하기 전에

이 태스크에서는 네트워크에 다음 요소가 필요합니다.

다음 프로시저에는 다음 설정을 기반으로 하는 예제가 포함되어 있습니다.
  • mycompany.com은 도메인의 모든 호스트에서 사용되는 TCP/IP 도메인의 이름입니다.
  • ITDEV.COM은 Active Directory 도메인의 이름입니다.
  • it_directory.mycompany.com은 디렉토리 서버가 실행되는 호스트입니다. 또한 Kerberos KDC도 실행됩니다.
  • it_domain.mycompany.com은 Active Directory 도메인 제어기가 실행되는 호스트입니다.
  • it_buildforge.mycompany.com은 Build Forge가 설치된 호스트입니다.
  • bfuser는 Build Forge 시스템의 도메인 사용자 이름입니다.
  • happy_user는 웹 브라우저에서 SSO를 사용하여 Build Forge에 액세스하는 예제 사용자의 도메인 사용자 이름입니다.

이 태스크 정보

다음 태스크를 수행하여 Active Directory 도메인 및 KDC에서 SPNEGO SSO를 구현합니다. 각각 자세한 프로시저가 포함된 섹션이 제공됩니다.
참고: Active Directory가 아닌 KDC와 함께 SPNEGO 인터셉터를 사용할 수 있습니다.

프로시저

  1. Active Directory 사용자 및 서비스 프린시펄을 설정하십시오.
  2. Kerberos 파일을 설정하십시오.
  3. Active Directory 및 SPNEGO를 사용하도록 Build Forge를 구성하십시오.
  4. 보안 액세스에 대한 브라우저 클라이언트를 구성하십시오.
  5. SSO를 통해 Build Forge에 액세스하십시오.

Active Directory 사용자 및 서비스 프린시펄 설정

Active Directory 도메인에 Build Forge 서버와 Build Forge 클라이언트를 설정해야 합니다.

시작하기 전에

다음 프로시저에는 Windows 2003 SP2의 지원 도구가 필요합니다. 이러한 지원 도구에는 Active Directory에서 서비스 프린시펄을 설정하는 데 필요한 setspn 명령이 포함됩니다. Windows Server 2003 제품 CD 또는 Microsoft 다운로드 센터에서 지원 도구를 설치합니다.

이 태스크 정보

Active Directory에 Build Forge 클라이언트와 서버가 있으면 사용자가 Windows 호스트에 로그인할 때 Kerberos 신임 토큰을 생성합니다. 그런 다음 사용자가 Build Forge 서버에 액세스하려고 시도하면 SPNEGO 인터셉터에서 사용자 토큰을 수신하고 유효성 검증합니다. 유효성 검증된 ID는 구성된 Microsoft Active Directory LDAP 서버를 통해 로그인을 수행할 수 있도록 Build Forge에 전달됩니다.

프로시저

  1. 도메인 제어기 호스트에 로그온하십시오. 예제에서 호스트는 it_example.mycompany.com입니다.
  2. 멤버가 아닌 경우 Build Forge 호스트를 Active Directory 도메인에 추가하십시오. 이 예제에서는 it_buildforge 호스트를 ITDEV.COM 도메인에 추가합니다. 이제 호스트에서 도메인에 it_buildforge.ITDEV.COM과 같은 완전한 이름이 사용됩니다.
  3. Active Directory 도메인에 Build Forge 사용자를 추가하십시오. 이 예제에서는 bfuser 사용자를 작성합니다.
    중요사항:
    • 비밀번호 사용 기간 제한 없음을 선택합니다. 다른 비밀번호 관리를 선택할 수도 있습니다. 그러나 비밀번호가 만기될 때마다 Build Forge 서버에 대한 새 비밀번호를 입력해야 합니다.
    • 계정 탭에서 위임에 대해 계정 신뢰할 수 있음을 선택합니다.
  4. 사용자 계정이 없는 경우 Microsoft Active Directory에 모든 클라이언트에 대한 사용자 계정을 작성하십시오. 이 예제에서는 happy_user와 같이 한 명의 사용자를 작성합니다.
  5. Build Forge에 대한 서비스 프린시펄 이름(SPN)을 작성하십시오. 예제에서는 Build Forge 서버에 대한 SPN it_buildforge를 작성하기 위해 Active Directory 사용자 bfuser가 서비스 이름 HTTP/it_buildforge.mycompany.com과 연관되어 있습니다.
    setspn -A HTTP/it_buildforge.mycompany.com bfuser

    HTTP는 Build Forge 서비스의 서비스 이름입니다.

Kerberos 인증에 대한 파일 설정

Build Forge 호스트에 시작 파일(Kerberos 클라이언트 구성 파일) 및 키탭(keytab) 파일을 설정해야 합니다.

프로시저

  1. Build Forge가 실행되는 호스트에 시작 파일을 설정하십시오.
    • Windows 시스템:
      • krb.ini 파일의 이름을 지정하고 C:\winnt에 배치하십시오. C:\winnt가 없는 경우 작성하십시오.
      • default_keytab_nameFILE:C:\winnt\krb5.keytab으로 설정하십시오.
    • UNIX 및 Linux 시스템:
      • krb.conf 파일의 이름을 지정하고 C:\winnt에 배치하십시오.
      default_keytab_nameFILE:/etc/krb5.keytab으로 설정하십시오.

    예제 시스템의 도메인 및 범주 설정을 사용하여 Windows에 다음과 같은 예제 파일이 설정됩니다.

    [libdefaults]
    		default_realm = ITDEV.COM
    		default_keytab_name = FILE:C:\winnt\krb5.keytab
    		default_tkt_enctypes = rc4_hmac
    		default_tgs_enctypes = rc4_hmac
    #	kdc_default_options = 0x40800000
    		forwardable  = true
    		renewable  = true
    		noaddresses = true
    		clockskew  = 300
    [realms]
    		ITDEV.COM = {
    				kdc = it_directory.itdev.com:88
    				default_domain = mycompany.com
    [domain_realm]
    		.mycompany.com = ITDEV.COM
    참고: 클라이언트 호스트와 Build Forge 서버 호스트 간의 클럭 편차가 300초 이상인 경우에는 토큰이 작동되지 않습니다. 시간, 날짜 및 시간대를 클라이언트와 서버 호스트의 편차 한계 내로 설정합니다.
  2. Kerberos 키탭(keytab) 파일을 설정하십시오. Build Forge 서버에서 클라이언트가 Build Forge 서버 URL에 액세스하려고 시도할 때 Kerberos 토큰을 유효성 검증하기 위해 키탭(keytab) 파일을 사용합니다. 도메인 제어기에서 ktpass 명령을 사용하여 파일을 작성합니다. 전제조건 Windows 자원 툴킷에 ktpass 명령이 포함되어 있습니다. 다음 예제에서는 예제 시나리오에서 Build Forge에 대해 설정된 Active Directory 사용자 이름 및 Build Forge 서비스의 프린시펄 이름을 사용합니다. -pass Rat1onal의 자체 비밀번호를 대체합니다. 쉽게 구별할 수 있도록 예제에 행 바꾸기가 표시됩니다. ktpass 명령에는 행 바꾸기를 사용하지 마십시오.
    ktpass -out C:\it_buildforge.keytab 
    -princ HTTP/it_buildforge.mycompany.com@ITDEV.COM 
    -mapuser bfuser -mapop set 
    -pass Rat1onal /crypto RC4-HMAC-NT /rndpass /ptype KRB5_NT_SRV_HST
    it_buildforge.keytab to krb5.keytab의 이름을 바꾸고 Kerberos 시작 파일이 포함되어 있는 디렉토리의 Build Forge 호스트에 배치합니다.
    • Windows: C:\winnt\
    • UNIX 및 Linux: /etc

Active Directory 및 SPNEGO를 사용하도록 Build Forge 구성

프로시저

  1. Build Forge에서 Active Directory 도메인 제어기를 지정하도록 LDAP을 설정하십시오.
    1. Build Forge에서 관리 > LDAP을 클릭하십시오.
    2. 새 LDAP 구성을 작성하고 다음과 같이 특성을 설정하여 도메인 제어기에 대한 액세스를 설정하십시오.
      • 이름: Active Directory 도메인의 이름으로 설정합니다. 예제 환경에서 이 이름은 itdev입니다.
      • 관리자 DN: 도메인에서 관리자 사용자로 설정합니다.
      • 액세스 그룹 맵핑: 아니오
      • 호스트: 도메인 제어기 호스트의 IP 주소로 설정합니다.
      • 사용자 계정 바인드: 예
      • 프로토콜: LDAP
      • 표시 이름: displayname
      • 식별 이름: distinguishedname
      • 그룹 이름: memberof
      • 메일 이름: displayname
      • 검색 기준: on=users,do=domainname,do=domainextension입니다. 예제 환경에서는 on=users,do=itdev,do=.com입니다.
      • 고유 ID: sAMAccountNames=%
    3. 기본값으로 설정을 클릭하십시오. 이 구성은 기본 LDAP 구성이어야 합니다.
  2. SPNEGO에 대한 Build Forge 환경 변수를 설정하십시오.
    1. Build Forge에서 환경 > SPNEGO SSO의 환경으로 이동하십시오.
    2. bf_spnego_service_name을 HTTP로 설정하십시오. 이는 서비스 프린시펄 이름과 일치합니다.
    3. bf_spnego_server_name을 Build Forge 서버 호스트의 완전한 호스트 이름인 it_buildforge.mycompany.com으로 설정하십시오. 이 변수가 설정되어 있지 않으면 INetAddress API가 호스트 이름을 찾도록 시도합니다.
    4. bf_spnego_realm을 Kerberos 영역 이름인 ITDEV.COM으로 설정하십시오. 이 변수가 설정되어 있지 않으면 Kerberos 시작 파일에 있는 값이 사용됩니다.
  3. SPNEGO 인터셉터를 사용 가능하도록 설정하십시오.
    1. Build Forge에서 관리 > 보안 > SSO > SPNEGO SSO 인터셉터로 이동하십시오.
    2. 활성 특성을 예로 설정한 다음 저장을 클릭하십시오.
    3. 관리 > 보안 > SSO에서 SPNEGO SSO 인터셉터를 목록의 맨 위로 이동하십시오. SPNEGO SSO 인터셉터에 대한 SSO 옵션 메뉴에서 맨 위로 이동을 선택한 다음 저장을 클릭합니다.

SSO에 대한 클라이언트 브라우저 구성

클라이언트 브라우저에는 SPNEGO를 사용하기 위한 보안 설정이 설정되어 있어야 합니다.

이 태스크 정보

Microsoft Internet Explorer 또는 Mozilla Firefox와 같이 Build Forge에 액세스하는 데 사용된 브라우저에 클라이언트 설정 지시사항을 사용합니다.

프로시저

SSO를 통해 Build Forge에 액세스하십시오.

SSO를 통해 로그인을 테스트할 서버 URL을 입력합니다.

프로시저

  1. 사용자의 Active Directory 목록에 있는 사용자 이름을 사용하여 Active Directory 도메인에 있는 호스트에 로그온하십시오.
  2. 브라우저를 여십시오.
  3. Build Forge 서버 호스트의 URL을 입력하십시오. 예제 구성 파일에서는 http://it_buildforge.mycompany.com을 사용합니다. SSO가 올바르게 구성된 경우 Build Forge 관리 콘솔이 표시됩니다.
  4. Build Forge 콘솔의 오른쪽 상단에 표시된 사용자 이름이 클라이언트의 Windows 로그인 이름과 일치하는지 확인하십시오.

피드백