UBUNTU/RHEL/CentOS에 대한 NTLM/Kerberos SSO Single Sign-On 설정
회사 개요
Kerberos SSO 확장을 사용하면 조직의 Active Directory 또는 다른 ID 공급자 도메인에서 Kerberos 티켓 부여 티켓(TGT)을 더 쉽게 얻을 수 있어 사용자는 웹사이트, 애플리케이션, 파일 서버 등의 리소스에 인증할 수 있습니다.
Single Sign-On(SSO)을 위한 Kerberos SSO LDAP 통합 단계
1단계: 웹 서버에 Kerberos 클라이언트 라이브러리 설치
UBUNTU의 경우:
- Kerberos 클라이언트 라이브러리를 설치하려면 터미널에서 다음 명령을 사용하십시오.
sudo apt-get install krb5-user
RHEL/CentOS의 경우:
- Kerberos 클라이언트 라이브러리를 설치하려면 터미널에서 다음 명령을 사용하십시오.
yum install krb5-workstation krb5-libs krb5-auth-dialog
2단계: Kerberos 구성 파일에서 Active Directory 도메인 구성
다음 단계는 Kerberos 구성 파일에서 Active Directory 도메인을 구성하는 데 사용됩니다.
- /etc/krb5.conf 파일을 열고 편집합니다.
- krb5.conf 파일에 다음 구성 조각을 추가합니다.
- 파일을 저장합니다.
EXAMPLE.ORG= { kdc = <AD DOMAIN CONTROLLER IP/DNS> :88 }
알림: 교체 광고 도메인 컨트롤러 IP/DNS 귀하의 IP/DNS 주소로. EXAMPLE.ORG 대문자여야 합니다.
교체 EXAMPLE.ORG Active Directory 도메인 이름으로.
그리고 이 서버에서 AD 도메인 컨트롤러의 포트 88에 액세스할 수 있는지 확인하십시오.
3단계: Apache용 auth_kerb 모듈 설치
UBUNTU의 경우:
- Apache용 auth_kerb 모듈을 설치하려면 다음 명령을 사용하십시오.
- auth_kerb 모듈이 설치되면 다음 명령을 통해 활성화해야 합니다.
- 활성화한 후 Apache를 다시 시작하면 적용됩니다.
sudo apt-get install libapache2-mod-auth-kerb
a2enmod auth_kerb
RHEL/CentOS의 경우:
- Apache용 auth_kerb 모듈을 설치하려면 다음 명령을 사용하십시오.
- 적용하려면 Apache를 다시 시작하십시오.
yum install mod_auth_kerb
4단계: AD 도메인 컨트롤러에 키탭 파일 만들기
- AD 도메인 컨트롤러에서 다음 명령을 실행하여 Keytab 파일을 생성합니다.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.ORG -pass PASSWORD
-mapuser <svc@EXAMPLE.ORG> -Ptype KRB5_NT_PRINCIPAL -out "<PATH>\spn.keytab"
알림: EXAMPLE.ORG는 대문자여야 합니다.
| 서버 호스트 이름: | 서버에서 호스팅되는 사이트의 호스트 이름입니다. |
| 서버 호스트 이름: | 서버에서 호스팅되는 사이트의 호스트 이름입니다. |
| EXAMPLE.ORG: | Active Directory 도메인 이름입니다. |
| 암호: | 위에서 사용한 서비스 계정의 비밀번호입니다. |
| svc@EXAMPLE.ORG: | Active Directory의 서비스 계정입니다. |
| 통로: | keytab 파일을 저장할 로컬 위치의 경로입니다. |
- 서비스 계정에는 몇 가지 전제 조건이 있습니다.
- 계정 비밀번호에는 비밀번호가 다음으로 설정되어 있어야 합니다. 만료되지 않음.
- 위임을 위해 계정을 신뢰해야 합니다.
- 복사 키탭 AD 도메인 컨트롤러에서 Apache에서 호스팅되는 웹 서버로 파일을 전송합니다.
알림: 위의 명령은 키탭 파일을 만듭니다. 서버에 배치해야 합니다. Apache를 실행하는 사용자는 이 파일에 대한 전체 액세스 권한이 있어야 합니다. 사용자는 키탭 파일에 대한 권한이 있어야 합니다.
5단계: 사이트 디렉토리에 대한 Kerberos SSO 구성
UBUNTU의 경우:
- /etc/apache2/sites-enabled/000-default.conf 파일을 편집합니다.
- 사이트 디렉터리에 다음 섹션을 추가합니다.
<Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>
RHEL/CentOS의 경우:
- /etc/httpd/conf.d/ 폴더에 있는 auth_kerb.conf 구성 파일을 편집합니다.
- 사이트 디렉터리에 다음 섹션을 추가합니다.
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so <Directory "/placeholder"> AuthType Kerberos KrbAuthRealms EXAMPLE.ORG KrbServiceName HTTP Krb5Keytab <PATH TO KEYTAB> KrbMethodNegotiate on KrbMethodK5Passwd on require valid-user </Directory>
알림: EXAMPLE.ORG는 대문자여야 합니다.
위 구성의 구성 요소는 다음과 같습니다.
| EXAMPLE.ORG: | 이는 krb5.conf에 구성된 Active Directory 도메인입니다. |
| 키탭 경로: | 이 서버의 키탭에 대한 액세스 가능한 경로입니다. |
- 이 구성 후에 변경 사항을 적용하려면 Apache를 다시 시작해야 합니다.
문제해결
가장 일반적인 오류 메시지는 다음과 같습니다.
- /etc/krb5.keytab에 대한 파일 시스템 권한이 잘못되었습니다. 즉, 웹 서버의 Linux 사용자가 읽을 수 없습니다.
- 파일 시스템 권한을 변경하려면 다음을 사용하십시오. $ chmod 400 파일 이름.
- /etc/krb5.keytab에 서비스 주체(HTTP/webserver.yourdomain.com@YOURDOMAIN.COM)가 누락되었습니다.
- 해당 웹사이트가 IE의 "로컬 인트라넷" 영역에 없거나 IE가 잘못 구성된 경우 인증에서 Kerberos 대신 NTLM을 사용합니다를 참조하세요.
- /etc/krb5.keytab에 잘못된 kvno 또는 시스템 비밀번호 → 올바른 정보를 사용하여 키탭을 다시 생성하십시오.
- 워크스테이션의 로컬 Kerberos 티켓 캐시에 문제가 있습니다. Kerbtray.exe를 사용하여 티켓 캐시를 비운 후 IE에서 웹사이트를 다시 엽니다.
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied).
gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found).
Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration.
gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)
gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ).
