impersonation issue, wrong principal
Martin Gee
geemang_2000 at yahoo.com
Thu Oct 8 09:10:34 EDT 2015
Folks,
Would really appreciate some help with the following.
Krb5 Version: 1.13.2
Desc: I'm implementing constrained delegation. I've wiresharked what I believe is the issue. Issue: the TGS-REP->Client Name(Principal) on gss_init_sec_context is NOT using my impersonated user cred. I believe the problem shows itself in step #3 below where the Client Principal is using the gss_service_name NOT the gss_user_name.
Here is pseudo code.
Setup:/etc/krb5.conf & /etc/krb5.keytabNOTE: these have been confirmed to work with a GSS Java program
Code:// import_name thesegss_service_name ="host/centos.practice.com at PRACTICE.COM"; gss_user_name="user1 at PRACTICE.COM";gss_host_name="HTTP at test1.practice.com";// credsservice_cred;user_cred;
// #1 build /tmp/ccache , create service_credgss_acquire_cred(&minor, gss_service_name,GSS_C_INDEFINITE, &mechset_krb5,GSS_C_INITIATE, &service_cred,NULL,&time_rec);// ProtocolAS-REQ Client Name: host/centos.practice.com Server Name: krbtgt/PRACTICE.COMAS-REP Client Name: host/centos.practice.com Ticket ->Realm: PRACTICE.COM ->Server Name: krbtgt/PRACTICE.COM
// #2 create impersonated user_credgss_acquire_cred_impersonate_name(minor,service_cred,gss_user_name,GSS_C_INDEFINITE,&mechset_krb5,GSS_C_INITIATE,&user_cred,NULL,&time_rec);// ProtocolAS-REQ padata->Ticket: krbtgt/PRACTICE.COM padata->PA-FOR-USER ->Client Name: user1 ->Realm: PRACTICE.COM -> S4U2Self Auth: Kerberos req-body->Server Name: host/centos.practice.com req-body->Realm: PRACTICE.COM AS-REP Client Realm: PRACTICE.COM Client Name: user1 Ticket -> Realm: PRACTICE.COM -> Server Name: host/centos.practice.com
// #3 Create context for imp user. gss_init_sec_context(&minor,user_cred, &initiator_context,gss_host_name, &mech_spnego,GSS_C_REPLAY_FLAG| GSS_C_SEQUENCE_FLAG| GSS_C_MUTUAL_FLAG| GSS_C_CONF_FLAG,GSS_C_INDEFINITE,NULL,&in_token,NULL, &out_token,NULL,&time_rec);// ProtocolAS-REQ padata->Ticket: krbtgt/PRACTICE.COM req-body->Server Name: http/test1.practice.com req-body->Realm: PRACTICE.COM AS-REP Client Name (Principal) : host/centos.practice.com ( I BELIEVE THIS SHOULD BE user1 instead ) Ticket: -> Realm: PRACTICE.COM -> Server Name: http/test1.practice.com
More information about the Kerberos
mailing list