PowerScale: OneFS: Active Directory에서 중복된 SPN(Service Principal Name)을 찾아 SMB 클라이언트가 클러스터에 인증하지 못하게 하는 방법
Summary: Kerberos 인증이 실패할 수 있는 Active Directory에서 중복된 서비스 사용자 이름을 식별하는 방법
Symptoms
Active Directory 도메인에서 중복된 SPN을 식별합니다.
SPN 이름이 중복되면 클러스터에 인증할 때 서비스 계정 로그인 및 클라이언트 로그인에 대한 로그인 오류가 발생할 수 있습니다.
SPN이 중복되면 클라이언트가 잘못된 시스템에 대한 인증을 시도하거나 잘못된 Kerberos 키를 가질 수 있습니다.
참조: SmartConnect 존 이름 또는 별칭을 사용하여 인증하는 http://technet.microsoft.com/en-us/library/cc772897%28v=ws.10%29.aspx
SMB 클라이언트가 클러스터 공유에 인증하지 못할 수 있습니다.
도메인 컨트롤러 로그 또는 "/var/log/lsassd.log" 에서 다음 메시지는 중복 SPN이 있음을 나타낼 수 있습니다.
KDC_ERR_PRINCIPAL_NOT_UNIQUE - Multiple entries in database
KRB_AP_ERR_MODIFIED Message stream modified errors
Event ID 11 and/or Event ID 4 on Domain controllers can indicate duplicate SPNs.Cause
Active Directory 환경에서 SPN을 잘못 구성하면 중복이 발생할 수 있습니다.
Resolution
절차
중복된 SPN을 찾는 데 사용할 수 있는 두 가지 옵션이 있습니다. Setspn은 명령줄 유틸리티이고 LDP는 Windows Server 2003 이상에서만 사용할 수 있는 그래픽 인터페이스입니다.
setspn
사용Windows 7, 8, Server 2008 및 2012에 있는 Setspn. Windows Server 2003의 경우 다음 링크를 사용하여 얻을 수 있습니다. http://support.microsoft.com/kb/970536
Windows 명령줄 인터페이스에서 명령에 대한 추가 옵션을 보려면 "setspn /?" 를 사용합니다.
"setspn -x"를 사용하여 중복 항목을 찾을 수 있으며 전체 포리스트를 검색하므로 대규모 환경에서 처리하는 데 시간이 걸릴 수 있습니다.
"setspn q" 명령은 SPN 이름으로 쿼리하며 대규모 환경에 더 적합할 수 있습니다.
예 1:
SPN "HOST/chomper.test.isilon.com" 는 이름이 "isicluster1"인 클러스터와 Windows 서버 "win2k1"에 모두 등록됩니다.
C:>setspn -x
Checking domain DC=test,DC=isilon,DC=com
Processing Entry 0
HOST/chomper.test.isilon.com is registered on these accounts
CN=isicluster1,CN=Computers,DC=test,DC=isilon,DC=com
CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
Found 1 group of duplicate SPNs.
예 2:
대규모 환경에서는 "setspn q <SPN>"을 사용하여 쿼리하거나 아래와 같이 LDP를 사용합니다.
C:>setspn -q HOST/chomper.test.isilon.com
Checking domain DC=test,DC=Isilon,DC=com
CN=isicluster1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
HOST/isicluster1
HOST/isicluster1.test.isilon.com
CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
HOST/win2k1
HOST/win2k1.test.isilon.com
Existing SPN found!
CIFS와 같이 다른 서비스 클래스 식별자를 가진 SPN이 환경의 다른 곳에 있는 경우 "setspn -x"로 찾을 수 없습니다. 와일드카드 검색을 실행하여 검색할 수 있습니다.
C:\>setspn -q */isilon
Checking domain DC=test,DC=Isilon,DC=com
CN=isicluster2,CN=Computers,DC=test,DC=isilon,DC=com
cifs/chomper.test.isilon.com
LDP 사용: http://support.microsoft.com/kb/321044
- Start(시작), Run(실행)을 클릭하고 LDP를 입력한 다음 OK(확인)를 클릭합니다.
- 연결을 클릭한 다음 연결을 클릭합니다.
- 기본 설정을 그대로 두고 확인을 클릭합니다.
참고: 예상한 결과를 얻지 못한 경우 기본 설정(389) 대신 글로벌 카탈로그 포트(3268)를 사용하여 다른 검색을 시도하십시오. - 연결을 클릭한 다음 바인딩을 클릭합니다.
- 기본 설정을 그대로 두고 확인을 클릭합니다.
- View를 클릭한 다음 Tree를 클릭합니다.
- 트리 뷰 대화 상자의 BaseDN 상자에 DC=test,DC=isilon,DC=com을 입력합니다
- Browse를 클릭한 다음 Search를 클릭합니다.
- 검색 대화 상자의 BaseDN 상자에 DC=test,DC=isilon,DC=com을 입력합니다.
- 검색 대화 상자의 필터 상자에 (serviceprincipalname=HOST/<sczonename>)을 입력합니다
- 특성 대화 상자에 servicePrincipalName을 입력합니다.
- Scope에서 Subtree를 클릭합니다.
- Run(실행)을 클릭한 다음 Search(검색) 대화 상자를 닫습니다.
- 중복 SPN에는 두 개의 서로 다른 Dn을 가리키는 두 개의 항목이 나열됩니다.
***Searching
ldap_search_s(Id, DC=test,DC=isilon,DC=com ,2,
(serviceprincipalname=HOST/chomper.test.isilon.com) ,attrList, 0 &msg)
Getting 2 entries:
Dn: CN=ISICLUSTER1,CN=Computers,DC=test,DC=isilon,DC=com
servicePrincipalName (3): HOST/isicluster1; HOST/isicluster1.test.isilon.com;
HOST/chomper.test.isilon.com
Dn: CN=WIN2K1,CN=Computers,DC=test,DC=isilon,DC=com
servicePrincipalName (3): HOST/win2k1; HOST/win2k1.test.isilon.com;
HOST/chomper.test.isilon.com
해상도:
"HOST/chomper.test.isilon.com"에 대한 win2k1의 중복 항목을 Active Directory 도메인에서 제거해야 합니다.
도메인 관리자, 엔터프라이즈 관리자 또는 Active Directory 도메인에 대한 지정된 도메인 관리 권한이 있는 사용자가 중복 항목을 제거할 수 있습니다.
중복 항목을 제거하는 명령은 "setspn -D <spn><accountname>"입니다.
C:>setspn D HOST/chomper.test.isilon.com win2k1
Unregistering ServicePrincipalnames for CN=win2k1,CN=Computers,DC=test,DC=isilon,DC=com
HOST/chomper.test.isilon.com
Updated object
위의 출력은 "HOST/chomper.test.isilon.com"가 컴퓨터 win2k1에서 등록 취소되었음을 확인합니다. 이제 ISICLUSTER1 컴퓨터 계정에만 등록됩니다.
Additional Information
관련 문서:
"SPN(Service Principal Name)이 올바르지 않거나 누락된 경우 인증 서비스가 실패할 수 있습니다."89649
"OneFS: How to create SPN accounts to allow Kerberos authentication using SmartConnect DNS entries,"16528
"How to view an SPN list in a Microsoft Active Directory environment,"16589
"SQL client cannot "bulk insert files from an Isilon cluster to a SQL database," 89574
"How to enable Mac OS X SSO(Single Sign-On) to Active Directory-enabled CIFS shares in OneFS 5.5.x - 6.5.x, "16675
" Isilon OneFS 7.1.0.0: SMB2 클라이언트가 Kerberos 인증을 사용하여 클러스터에 연결할 수 없음", 174024
"OneFS: Kerberos 인증에 대한 서비스 사용자 이름", 187999