<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
There appears to be only one case where NAME_EXP is returned: when the client.expiration field is passed (not client.pw_expiration)<br><br>
I think "expiration" must equate to the "principal expiration" in IPA. But only regular password expiry would give you the option of changing it.<br>
<br>
</blockquote><div><br></div><div>Thanks Brian. Can you explain a bit more ? When is principal expiration triggered ? I haven't set it explicitly for any user, and ipa user-show doesn't show that attribute either. I'm not very familiar with kerberos. And as you and David said earlier, if the principal expires, kinit shouldn't work either, right ?</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Regards,<br>
<br>
Brian.<br>
<br>
=== from src/kdc/kdc_util. c ===<br>
<br>
/* The client must not be expired */<br>
if (client.expiration && client.expiration < kdc_time) {<br>
*status = "CLIENT EXPIRED";<br>
if (vague_errors)<br>
return(KRB_ERR_GENERIC);<br>
else<br>
return(KDC_ERR_NAME_EXP);<br>
}<br>
<br>
/* The client's password must not be expired, unless the server is<br>
a KRB5_KDC_PWCHANGE_SERVICE. */<br>
if (client.pw_expiration && client.pw_expiration < kdc_time &&<br>
!isflagset(server.attributes, KRB5_KDB_PWCHANGE_SERVICE)) {<br>
*status = "CLIENT KEY EXPIRED";<br>
if (vague_errors)<br>
return(KRB_ERR_GENERIC);<br>
else<br>
return(KDC_ERR_KEY_EXP);<br>
}<br>
</blockquote></div><br></div></div>