2017-02-14 10 views
1

Kerberos를 사용하여 하나의 서버 서비스를 개발 중이며 클라이언트에서 티켓을 얻었습니다. 미리 정의 된 키탭으로 티켓을 해독 할 수 있습니다. 이제 내 질문은 PAC 정보를 사용하는 방법입니다. 그 티켓. 이전에는 LDAP 절차를 사용하여 사용자의 그룹 구성원을 쿼리하여 인증 정보를 받았습니다.Kerberos 티켓의 PAC 정보를 사용하는 방법

이제 PAC의 로그온 정보에는 구성원이 포함되지만 그룹 ID이지만 "DN"텍스트 기반 형식 (CN = xxx, OU = xxx, DC = xxx ...)이 필요합니다.

일반적으로 서비스 서버의 티켓에서이 권한 부여 데이터를 사용하는 방법을 알고 싶습니다. 감사!

+0

여기서 Kerberos 용 Active Directory를 사용한다고 가정합니다. 그렇다면 active-directory, spnego, ldap –

+0

이 업데이트되었습니다. 활성 디렉토리를 사용하고 있습니다. 이제 그룹 이름을 SID에 매핑하면 LDAP 쿼리로 해결할 수 있습니다. GSSAPI를 사용하여 Kerberos를 구현하고 있습니다. 이제 PAC 정보를 추출해야합니다. – orasy

답변

1

응용 프로그램 서비스가 Windows에서 실행되고 있지 않으면 심각한 문제가없이 점진적으로 PAC를 읽을 수 없습니다. PAC는 Microsoft가 독점 코드를 사용하여 만들었습니다.이 코드는 Microsoft가 Kerberos의 취향 인 RFC 1510을 통해 도입했지만 "약간 수정 됨"이라는 단어로 작성되었습니다. Shortly after the release of Windows 2000 [Active Directory], Microsoft received some negative press attention because of the proprietary way they used the PAC field in a Kerberos ticket. [Microsoft] explicitly forbids the creation of software that implements the PAC as described in the specifications.

은 뭔가에게 어쨌든 PAC를 읽을 수 오픈 소스와 신뢰성을 찾기 위해 노력 오랜 시간을 보냈다, 나는 JAASLounge does this 것을 발견했다. 그래도 (2010 년부터) 오래된 기사입니다. Microsoft의 진술에 근거한 나의 해석에 따르면, 이용 약관을 위반 한 것으로 보입니다.

어쨌든이 포럼에서 JAASLounge를 얻으려고 주장하는 사람들과 그들이 해결해야 할 문제 중 일부를 북마크에 추가했습니다. 경우

Decrypt kerberos ticket using Spnego

Malformed PAC logon info on new KerberosToken

이 경로를 아래로 이동하여 AD 사용자의 그룹 구성원을 결정하기 위해 PAC를 우회 할 싶지 않아, 당신은을에 의지해야 할 것이다 LDAP가 AD 도메인 컨트롤러를 다시 호출합니다.

IIS 나 SharePoint와 같은 Windows 기반 응용 프로그램 서버에서 실행중인 경우 PAC의 Kerberos 디코딩이 자동으로 수행되므로 특별한 코드, 구성 또는 키탭 파일이 필요하지 않습니다. 필수.

+0

T-Heron, 답장을 보내 주셔서 감사합니다. MIT Kerberos 문서에서 PAC 정보를 얻기 위해 API를 찾았습니다. 나는 성공적으로 C 언어로 업데이트 할 것이다. – orasy

+1

gssapi를 사용하면 pac 데이터를 검색하고 로그온 정보 버퍼를 디코딩하여 권한 데이터 (그룹 구성원)를 얻을 수 있습니다. – orasy

+0

@Orsy. 귀하의 의견에 감사드립니다. 이 응답을 북마크했습니다. –