On 04/15/2014 06:05 PM, Nordgren, Bryce L -FS wrote:
Variant (A) - IdP + PKINIT:
A1) User authenticates to his SAML/OpenID provider (external domain)
A2) User locally generates CSR
A3) User contacts IdP (gssapi/saml ; gssapi/openid) and sends CSR to
the IdP
A4) IdP returns short-lived certificate (validity period matches
policy for TGT)
A5) User presents certificate issued by IdP to KDC
A6) KDC authenticates user via PKINIT and issues TGT as usual

This variant doesn't require any change to Kerberos protocol. It needs
IdP with CA + some client software automating described steps.


Variant (B) - IdP without PKINIT is almost the same, just uses symmetric
crypto:
A1) User authenticates to his SAML/OpenID provider (external domain)
A2) User contacts IdP (gssapi/saml ; gssapi/openid) and sends
authentication request
A4) IdP changes principal password to some random value and sends
keytab back to the user (via GSSAPI-secured connection)
A5) User uses keytab to get TGT from KDC

Obvious problem is that keytab received by user has to be short-lived.
For example, IdP could generate a new random password for user
principal 1 minute after sending keytab to the user.
Interesting notion. My understanding of B is that KDC would need an entry for the user in 
order to store the shared secret. This may "interact" with the principal name 
mapping in some hard-to-understand-right-now ways. For instance:

KDC manages "EXAMPLE.ORG".

User is coming in from google openID account. Pretend "mapped" Kerberos 
principal is: username@OPENID:www.google.com/openid/provider/url

Can the KDC for EXAMPLE.ORG store that? I can see approach A working because the user 
principal doesn't have to exist in the KDC. Seems like case "B" involves a 
shared secret between external user and the local KDC, whereas approach A doesn't.

I would vote for making the lifetime of the shared secret be derived from the 
lifetime of the credential the person used to get it. (if the openID session is 
good for 12 hours, the keytab should be too.) I don't see a need to null out 
the keytab after one minute.

This could work if the whole process should be automated.
http://www.umich.edu/~x509/

I already have a plan to implement this in Ipsilon eventually :-)

+1
+1

Perhaps the NSCA MyProxy CA also has some ideas worth implementing? It seems to 
be geared to a full-on PKI environment, where it issues derived (proxy) 
certificates for users to use in a login session. It appears that it could make 
kx509 certs as it is configurable w.r.t. what fields appear in the generated 
certificates and how identities are mapped. Also, it has client side programs 
for certificate storage and retrieval. Some concepts may be worth stealing. :)


We already stole Dogtag. We will enable user certs support there. It is the question of time and resources.

Overall, it appears to me that short-lived certs (approach A) have a certain time-tested 
feel to them earned by many years of regular use captured in RFC3820. Approach A, in the 
parlance of RFC3820, could potentially be expressed as "External users delegate to a 
local Kerberos session the right to use their non-Kerberos identity by causing a proxy 
kx509 certificate to be issued." The cross-technology aspect makes the wording 
weird, since you rarely consider self-delegation to be delegation. The only real addition 
here is the use of the proxy certificates to gain entry to the local Kerberos universe.

Short-lived "long term secrets" don't have this pedigree. Also, not real fond 
of transmitting the shared secret over the network, as required by B (even if it is a 
one-time-use thing. Makes me twitchy.) For that reason I might lean towards approach A, 
but would be happy with either.

Approach A has the client map the identities to generate the CSR. The IdP 
un-maps them to verify before issuing credentials. Seems this requires mapping 
strategy to be coordinated, perhaps standardized? Approach B, I presume, puts 
control of the mapping in the hands of the IdP? I assume this mapping would 
need to be coordinated with any realms to which this IPA is connected by trust, 
regardless of whether A or B is chosen? Things to think about...

Is seems that variant (B) should be really simple to code/script when
we have SAML/OpenID capable IdP.
It can be done indeed.
I need to rework my RFE with diagrams to capture either A or B. Do you have a 
preference? Should I put both in as options?

Probably both but I do not like B too.

One comment/question: in both A and B, step 1 seems superfluous? Gssapi/saml 
and gssapi/openid both support initial authentication, if no cached creds 
exist, I think. Could step one be dropped and/or integrated into step A3 or B2?
I think so.

I'm still not understanding why transferring a TGT via a browser is more difficult than 
linking to a file-based representation of it and ensuring there's a "helper 
application" ready to handle that mime type on the client.

There is already a way in the browser to deliver a cert or save a file. The cert can also be sent by kerberos as was pointed out. There is no capability in browser to save TGT into ticket cache. And I am not sure it is a good idea to allow it to. I also not sure about putty/ssh client making it support either of the options would be a challenge.


  (By "handle", I mean store in the local cache.)  Presumably, the IdP could communicate 
the reply key to the client securely, but that's more or less the same as transmitting the shared 
secret over the network. That puts the browser TGT solution on par with "B" for me. What 
I am seeing is two suggestions which eliminate the need for such a transfer, whether it be trivial 
or impossible. It's all good.
Shared key approach looks like a hack and requires new concepts and new features in the client. Approach A required PKINIT. I am not sure It also would require distributions of the "collaboration domain's CA certs".

In all proposals the weakest link is the client side.
If we can hide everything under GSSAPI would be best. Then we would not need the client changes to applications (only latest GSSAPI, configuration and certificates).


Bryce




This electronic message contains information generated by the USDA solely for 
the intended recipients. Any unauthorized interception of this message or the 
use or disclosure of the information it contains may violate the law and 
subject the violator to civil or criminal penalties. If you believe you have 
received this message in error, please notify the sender and delete the email 
immediately.


--
Thank you,
Dmitri Pal

Sr. Engineering Manager IdM portfolio
Red Hat, Inc.

_______________________________________________
Freeipa-users mailing list
Freeipa-users@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-users

Reply via email to