2013-04-22 3 views
1

내 애플리케이션 용 Kerberos 로그인 모듈을 프로그래밍하려고하지만 몇 가지 개념이 명확하지 않습니다.Kerberos가 초기 신임 정보를 얻습니다.

Apache HTTP 서버에서 소스 코드 mod_auth_kerb을 읽음으로써 MIT Kerberos API를 배우고 있습니다 (더 나은 시작점을 찾을 수 없거나, 온라인에서 API 자습서 또는 데모 코드를 찾을 수 없음). 그로부터, 나는 키탭 (keytab) 파일이나 사용자가 입력 한 암호로 초기 비밀을 알아야합니다. 나를 혼란스럽게하는 이유는 OS에 로그인 할 때 이미 kinit에 로그인했을 때 님이 krbtgt/[email protected] 티켓을 가지고 있는지 확인한 후 krb5_get_init_cred_password/keytab으로 다시 초기 기밀 정보를 얻을 필요가 있는지 여부입니다.

  • 내 OS 계정에서 Kerberos에 유효한 교장, 나는 TGS에 티켓을 얻을 수 있습니다 이후 네, 왜 초기 기밀 을 다시 받아야하는 경우? Kerberos의 싱글 사인온 기능을 위반하지 않습니까?
  • 그렇지 않은 경우 코드로 krbtgt/[email protected] 님의 티켓을 얻는 방법, 또는 로그인 계정을 해당 Kerberos 보안 주체와 어떻게 관련시킬 수 있습니까?

여기에 좋은 MIT Kerberos API 자습서가 온라인에 있습니까? 공식 개발자 설명서가 완성되었지만 사전에서 두 번째 언어를 배우는 것처럼 느껴진다.

대단히 감사합니다.

답변

4

두 가지가 있습니다. 1. kinit는 코드에서 내부적으로 krb5_get_init_cred_password를 사용하여 유틸리티 자격 증명을 얻는 유틸리티 도구입니다. 2. 그런 다음 kvno 유틸리티를 사용하여 kinit을 사용하여 가져온 티켓을 사용하여 서비스 티켓을 가져올 수 있습니다. 예 :이으로

kinit -f [email protected] 

당신은 관리자의 티켓을 얻을 것이다. 이제이 티켓을 일부 서비스에 사용하려면 CIFS라고 말하십시오.

kvno [-k <keytab file> | -c <credential cache>] -u <client> -P service 

ktutil 유틸리티를 사용하여 만들 수있는 자격 증명 캐시 또는 키탭 파일을 사용할 수 있습니다.

krb5_get_init_creds_password

kerb_get_credentials

krb5_get_crendentials_for_user

krb5_get_crendentials_for_proxy 등 : 당신이 코드에서 모든 것을 제어하려는 경우

둘째, 당신은 같은 KRB API와 기능을 이해해야합니다 .

당신은 단순히

Ankur이

+0

덕분에이 도구의 소스 코드를 언급, 나는 완전히 그들을 따로 설정 등이 기능을 사용하는 방법을 더 이해를 얻기 위해 MIT에서 Kerberos 라이브러리에서 kinit 명령 및 kvno에서의 소스 코드를 볼 수 있습니다 피. –

관련 문제