> > >  I want to see an updated pam_krb5(5) man page explaining how to use 
> > > PKINIT 
> > >  and including the example PAM stacks for use of PKINIT.

If I understand the project correctly:

        * The project wants to do different prompting than pam_authtok_get(5).

        * The project proposes to keying off of the contents of PAM_AUTHTOK

        * The project proposes adding new configuration options.

        * The project proposes to bypass account management and password
          change.

        * The project proposes changes the the PAM stack.

I'd like to propose a different tact.  This seem to be to suggest a
separate PAM service module.  Has that been considered?
I'd suggest something like pam_pkinit(5) that interacts with the current
way the PAM stack is configured for pam_krb5(5).

        * pam_pkinit would sit on the PAM stacks above pam_authtok_get(5)

        * If the KDC and krb5.conf(5) are configured for PKINIT and there's
          no present user (PAM_USER), pam_pkinit:pam_sm_authenticate()
          prompts for the type of login desired:
                "Public Key," "Password," ...
          If it is "Public Key", do the pkinit thing
          If it is "Password", return PAM_IGNORE.

        * If the KDC and krb5.conf(5) are configured for PKINIT and there
          is a present user (PAM_USER), pam_pkinit:pam_sm_authenticate()
          determines if the user had done the pkinit thing.
          If yes, do the pkinit thing for reauthentication.
          If not, return PAM_IGNORE.

        * If the KDC and krb5.conf(5) are not configured for PKINIT,
          return PAM_SYSTEM_ERR (or possibly PAM_IGNORE).

        * for pam_pkinit:pam_sm_setcred(), return PAM_IGNORE.

        * pass sufficient information in PAM_USER, PAM_AUTHTOK and 
          SUNW-KRB5-AUTH-DATA pam_data for pam_krb5(5) to know what
          to do.  Or add another pam_krb pam_data_item ala
          KRB5_AUTOMIGRATE_DATA.  Note the definition of pam_authtok_get(5)
          is to only prompt for the user name if PAM_USER is not set an
          only prompt for an authtok (using PAM_PROMPT) if PAM_AUTHTOK
          is not set.

Why should it be that account management and password change are disallowed?

It seems to me that PKINIT would act similarly to password in pam_krb5
that account management could be done.  It seems to me that the public
key certificate may have expired and the KDC would say so and return
PAM_NEW_AUTHTOK_REQD.

Similarly it seems to me that even if the user had done a public key login
that they may which to update their Kerberos password.

To me, a separate module as described seem cleaner and easier to understand
and configure than how I understand the current proposal.
What have I missed in my understanding (or have I missed so much that
it can't even be explained ;-)?

Gary..

Reply via email to