This article describes how to set up a web server to use smart cards for cross-forest certificate-based authentication when the user forests and the resource forest do not trust one another.
Consider an environment that uses the following configuration:
- A user forest that is named Contoso.com
- A resource forest that is named Fabrikam.com. The forest has Tailspin.com added as an alternate User Principal Name (UPN).
- There is no trust between the two forests.
- User smart cards use certificates that have Subject Alternative Name (SAN) entries of the format email@example.com
- An IIS web server that is configured for Active Directory Certificate Based Authentication.
Configure Active Directory and the web server as described in the following procedures.
Configure Active Directory
To configure the resource forest to authenticate smart cards:
- Make sure that a Kerberos Authentication Certificate that has a KDC Authentication extended key usage (EKU) has been issued to the domain controllers.
- Make sure that the Issuing CA certificate of the user’s certificate is installed in the Enterprise NTAUTH store.
To publish the Issuing CA certificate in the domain, run the following command at a command prompt:
certutil -dspublish -f <filename> NTAUTHCA
In this command, <filename> represents the name of the CA certificate file, which has a .cer extension.
- Users must have accounts that use the alternate UPN of the resource forest.
To configure the user forest, follow these steps:
- Make sure that you have Smart Card Logon and Client Authentication EKU defined in the certificate.
- Make sure that the SAN of the certificate uses the UPN of the user.
- Make sure that you install the Issuing CA Certificate of the user certificate in the Enterprise NTAUTH store.
If you want to set up delegation on the front end server or want to skip using the UPN in the SAN attribute of the certificate (AltSecID route), see the More information section.
Configure the web server
To configure the IIS Web server in the resource forest:
- Install the IIS Web server role, and select the Client Certificate Mapping Authentication Security feature.
- On the IIS Web server, enable Active Directory Client Certificate Authentication.
- On your website, configure SSL Settings to Require SSL and then under Client certificates, select Require.
Make sure that no other authentication type is enabled on the website. We don’t recommend enabling Certificate Based Authentication with any other authentication type because the DS Mapper service, which is responsible for mapping the user's presented certificate to the user account in Active Directory, is designed to only work with the Active Directory Client Certificate Authentication type. If you enable Anonymous Authentication, you may experience unexpected outcomes.
If you want to set up delegation on this resource web server to query a backend server, such as a database server or a CA, you may also configure constrained delegation by using a custom service account. Additionally, you must set up the web server for constrained delegation (S4U2Self) or protocol transition. For more information, see KB4494313, How to configure Kerberos Constrained Delegation (S4U2Proxy or Kerberos Only) on a custom service account for Web Enrollment proxy pages.
We do not recommend this approach to configuring smart card certificates.
If you publish the SAN attribute as the intended UPN in the user's certificate, you should not enable AltSecID.
To check the NTAuth store on the web server, open a Command Prompt window and run the following command:
Certutil -viewstore -enterprise NTAUTH