CAC Authentication to LDAP User Repository
![]() Has anyone been successful at getting CAC (client certificate) authentication working with an LDAP user repository? I have a problem because our client certificate's websphere-supported properties do not have any exact match to any LDAP property. Are there any suggestions on what I should research on how to accomplish authentication? We have an attribute which is very close, but not quite: EVANS.DAVID.M.1234567890 (CAC's SubjectCN) EVANS.DAVID.M.1234567890.C (LDAP name) If we could just wildcard the .C off the end that would be fabulous since the CAC's SubjectCN is unique to a person, and we don't need to distinguish between types of people (contractor, civilian, reservist, etc.). I do not know why on earth the Air Force set LDAP up this way, but it seems that in any case it is little value added for a lot of pain. Are wildcards acceptable in a certificate filter? Any other ideas? THANKS! -Dave |
3 answers
![]()
Hi Dave,
May be a good idea to open a service request with WebSphere security team for an assist. |
![]()
Sorry for the delay. But I have done some research and testing.
You can use LDAP Wild Card searching in LDAP. I have tested it with a Apache Directory Studio against a Windows Active directory. Here is the link to the LDAP Browser Tool, How to verify LDAP for RTC
For Example, I did.
(uid=aaa*)
This would return all users objects in LDAP that start with three a's.
So in your example you would configure your LDAP filter to use something like this:
(uid=${SubjectCN}*)
This should map EVANS.DAVID.M.1234567890 (On Cert) to EVANS.DAVID.M.1234567890.C (On LDAP)
Here are some reference articles:
Comments Robert, sorry if we didn't mention our fun fact, but if we were to wildcard EVANS.DAVID.M.1234567890, that would cause authentication to fail due to the search returning multiple users. Quite a few users's have multiple LDAP user accounts. For example, if I was a civilian and a contractor, we would have two entries in LDAP for me: EVANS.DAVID.M.1234567890.C, and EVANS.DAVID.M.1234567890.E
On your CAC is this value unique, SubjectCN? So, if you where a civilian, then left and came back as a contractor. Would your SubjectCN be the same on your CAC? I think it would be different, because you are issued a different CAC card the second time your came back?
Also, is this number on the end of SubjectCN unique, the 1234567890 number?
Yes, it is the SubjectCN property. The number at the end is called the EDIPI, and while it is unique per person, it is not unique per position or per CAC. You can actually have two different CACs at the same time which are active (you could even be Contractor, Civilian, and Reservist at the same time: three CACs, one EDIPI number). There are other parts of the certificate which are different and unique, but those attributes on the certificate are unsupported by IBM. Hence us reaching out for support :). Here is my understanding of how CAC works in general.
1. Plug you CAC into the reader.
2. Enter your PIN.
3. PIN is checked again PIN on card.
4. Certificate is checked against CRL(Certificate Revocation List) to ensure validity
5. User is checked against LDAP (Active Directory)
So... There has to be some common data on the cert and in LDAP? Is the ".C" value in another attribute? What about the concatenation of multiple attributes to create a unique search LDAP search filter?
Yes, we can use the "RFC822Name" attribute, which contains the user's email address. If we truncate this attribute (mine would be something like dave.evans.34), then we can match the LDAP emailNickname attribute. The RFC822Name is in the SAN field of the certificate (unsupported by IBM). |
Comments
David,
Robert,
We will be using both web and thick clients to login to RTC. We have a load balancer set up already but would need help with getting a CAC Proxy functioning.
The common fields is indeed our problem which appears to be forcing us to not use WebSphere's authentication mechanism. I am not familiar with CAC proxy setup, so I will have our expert join this post and continue to follow with it. Thank you SO much for being willing to help!
-Dave
Can you explain your setup a little more?
Setup is RTC + RRC + JTS
WAS 8.5.5 on Windows
LDAP service is Active Directory
DB is SQL Server 2008