A custom authentication scheme is required to support Kerberos authentication in the SIteMinder environment. Associate this authentication scheme with any realm whose protected resources use Kerberos authentication.
To configure a Kerberos authentication scheme
Note: When you create or modify a Policy Server object in the FSS Administrative UI, use ASCII characters. Object creation or modification with non-ASCII characters is not supported.
A list of system-related objects appears.
The Authentication Scheme Properties dialog appears.
Custom Template settings appear.
LDAP Example 1: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;(uid=%{UID})
LDAP Example 2: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;(uid=%{UID})
AD Example 1: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;(cn=%{UID})
AD Example 2: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;(cn=%{UID})
ODBC Example 1: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;%{UID}
ODBC Example 2: http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TEST.COM;%{UID}
The Kerberos Authentication scheme is saved and appears in the Authentication Scheme List.
For the Windows workstation to use a Kerberos KDC deployed on UNIX, you must configure both the Kerberos KDC server and the workstation.
In the Kerberos realm, create a host principal for the Windows host. Use the following command:
kadmin.local: addprinc host/machine-name.dns-domain_name.
For example, if the Windows workstation name is W2KW and the Kerberos realm name is EXAMPLE.COM, the principal name is host/w2kw.example.com.
Because a Kerberos realm is not a Windows domain, the KDC operating environment must be configured as a member of a workgroup, which happens automatically when you follow this process:
ksetup /SetRealm EXAMPLE.COM
ksetup /addkdc EXAMPLE.COM rhasmit
ksetup /setmachpassword password
Note: The password used here is same as the one used while creating the host principal account in the MIT KDC.
Note: Whenever changes are made to the external KDC and realm configuration, a restart is required.
ksetup /SetRealmFlags EXAMPLE.COM delegate
ksetup /AddKpasswd EXAMPLE.COM rhasmit
ksetup /mapuser testkrb@EXAMPLE.COM testkrb ksetup /mapuser * *
The second command maps clients to local accounts of the same name. Use Ksetup with no arguments to see the current settings.
The configurations that follow include examples of the specifics, such as keytab file creation, required to implement Kerberos authentication in a SiteMinder environment. Note that additional configuration is required when the KDC is deployed in a UNIX operating environment and the Policy Server, or web server, or workstation is in a Windows operating environment.
The steps listed following exemplify how to configure a Windows 2003 domain controller to support SiteMinder Kerberos authentication.
Important! This step is irreversible.
Note: The Ktpass command tool utility is a Windows support tool. You can install it from MSDN download or an installation CD. Always verify the version of support tools. The default encryption type must always be RC4-HMAC. The encryption type can be confirmed by running ktpass /? at the command prompt.
When the Policy Server is on Windows:
ktpass -out c:\wasrvwin2k3iis6.keytab -princ HTTP/win2k3iis6.test.com@TEST.COM -ptype KRB5_NT_PRINCIPAL -mapuser wasrvwin2k3iis6 -pass <<password>> Targeting domain controller: winkdc.Test.com Using legacy password setting method Successfully mapped HTTP/win2k3iis6.test.com to wasrvwin2k3iis6. Key created. Output keytab to c:\wasrvwin2k3iis6.keytab: Keytab version: 0x502 keysize 67 HTTP/win2k3iis6.test.com@TEST.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0xfd77a26f1f5d61d1fafd67a2d88784c7)
The password is the same as the one used for creating the service account for the web server.
When the Policy Server is on UNIX:
ktpass -out d:\sol8sunone_host.keytab -princ host/sol8sunone.test.com@TEST.COM -pass <<password>> -mapuser sol8sunone -crypto DES-CBC-MD5 +DesOnly -ptype KRB5_NT_PRINCIPAL -kvno 3 Targeting domain controller: winkdc.test.com Successfully mapped host/sol8sunone.test.com to sol8sunone. Key created. Output keytab to d:\sol8sunone_host.keytab: Keytab version: 0x502 keysize 52 host/sol8sunone.test.com@TEST ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-CBC-MD5) keylength 8 (0xb5a87ab5070e7f4a) Account sol8sunone has been set for DES-only encryption.
When the Policy Server is on Windows
Ktpass -out c:\polsrvwin2kps.keytab -princ smps/win2kps.test.com@TEST.COM -ptype KRB5_NT_PRINCIPAL -mapuser polsrvwin2kps -pass <<password>> Targeting domain controller: winkdc.Test.com Using legacy password setting method Successfully mapped smps/win2kps.test.com to polsrvwin2kps. Key created. Output keytab to c:\polsrvwin2kps.keytab: Keytab version: 0x502 keysize 72 smps/win2kps.test.com@TEST.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0xfd77a26f1f5d61d1fafd67a2d88784c7)
The password is same as the one used for creating the service account for Policy Server.
When the Policy Server is on UNIX:
ktpass -out d:\sol8polsrv.keytab -princ host/sol8sunone.test.com@TEST.COM -pass <<password>> -mapuser sol8sunone -crypto DES-CBC-MD5 +DesOnly -ptype KRB5_NT_PRINCIPAL -kvno 3 Targeting domain controller: winkdc.test.com Successfully mapped host/sol8sunone.test.com to sol8sunone. Key created. Output keytab to d:\sol8polserv.keytab: Keytab version: 0x502 keysize 52 host/sol8sunone.test.com@TEST ptype 1 (KRB5_NT_PRINCIPAL) vno 3 etype 0x3 (DES-CBC-MD5) keylength 8 (0xb5a87ab5070e7f4a) Account sol8sunone has been set for DES-only encryption.
Or, select the third option, Trust this user for delegation to specified service. Select the Use Kerberos only option button, and add the corresponding service principal name.
The domain controller is ready for SiteMinder Kerberos authentication.
The process listed following exemplifies how to configure a KDC Kerberos Realm on a UNIX host to support SiteMinder Kerberos authentication.
Both the stash file and the keytab file are potential point-of-entry for a break-in. If you install a stash file, it must be readable only by root, must not be backed up, and must exist only on the KDC local disk. If you do not want a stash file, run the kdb5_util without the -s option.
This example generates the following five database files in the directory specified in kdc.conf file:
[root@rhasmit init.d]# kdb5_util create -r EXAMPLE.COM -s Initializing database '/var/kerberos/krb5kdc/principal' for realm 'EXAMPLE.COM', master key name 'K/M@EXAMPLE.COM' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify:
ktadd -k /tmp/win2k3iis6.keytab HTTP/win2k3iis6.example.com
ktadd -k /tmp/win2kps.keytab smps/win2kps.example.com
The Kerberos Realm is configured for SiteMInder on a UNIX host.
The following procedure shows an example of how to configure a Policy Server on Windows to support SiteMinder Kerberos authentication.
Note: If the Policy Server is installed on Windows and the KDC is deployed on UNIX, be sure to perform additional required configuration on the Policy Server host using the Ksetup utility.
Follow these steps:
Parameter |
Value |
---|---|
KCCExt |
.kcc |
HttpServicePrincipal |
Specifies the web server principal name. Example: HTTP/win2k3iis6.test.com@TEST.COM |
SmpsServicePrincipal |
Specifies the Policy Server principal name. Example: smps@win2kps.test.com |
Sample parameter field:
http://win2k3iis6.test.com/siteminderagent/Kerberos/creds.kcc;smps/win2kps.test.com@TES.COM;(uid=%{UID})
See the following sample krb5.ini:
[libdefaults] default_realm = TEST.COM default_keytab_name = C:\WINDOWS\krb5.keytab default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 [realms] TEST.COM = { kdc = winkdc.test.com:88 default_domain = test.com } [domain_realm] .test.com = TEST.COM
The Policy Server on a Windows host is configured for Kerberos authentication.
The following procedure shows an example of how to configure a Policy Server on a UNIX host to support SiteMinder Kerberos authentication.
Follow these steps:
Parameter |
Value |
---|---|
KCCExt |
.kcc |
HttpServicePrincipal |
Specify the web server principal name. Example: HTTP/win2k3iis6.test.com@TEST.COM |
SmpsServicePrincipal |
Specify the Policy Server principal name. Example: smps@win2kps.test.com |
Sample parameter field:
http://sol8sunone.test.com/siteminderagent/Kerberos/creds.kcc;smps/sol8ps.test.com@TEST.COM;(uid=%{UID})
See the following sample krb5.ini:
[libdefaults] ticket_lifetime = 24000 default_realm=TEST.COM default_tgs_enctypes = des-cbc-md5 default_tkt_enctypes = des-cbc-md5 default_keytab_name = FILE:/etc/krb5.keytab dns_lookup_realm = false dns_lookup_kdc = false forwardable = true proxiable = true [realms] TEST.COM = { kdc = winkdc.test.com:88 admin_server = winkdc.test.com:749 default_domain = test.com } [domain_realm] .test.com=TEST.COM test.com=TEST.COM
ktutil: rkt sol8ps_host.keytab ktutil: wkt /etc/krb5.keytab ktutil: q ktutil: rkt sol8ps_smps.keytab ktutil: wkt /etc/krb5.keytab ktutil: q
klist -k Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 3 host/sol8ps.test.com@TEST.COM 3 smps/sol8ps.test.com@TEST.COM
KRB5_CONFIG=/etc/krb5/krb5.conf
The Policy Server on a UNIX host is configured for Kerberos authentication.
You can verify that a resource in your Kerberos domain is protected by creating a SiteMinder policy using the Kerberos Authentication scheme and attempting to access the resource with a user principle.
To verify that a resource is protected by Kerberos authentication
Note: When you create or modify a Policy Server object in the FSS Administrative UI, use ASCII characters. Object creation or modification with non-ASCII characters is not supported.
SiteMinder authenticates the user using the KDC security token.
Be aware of the following issues when working with SiteMinder Kerberos authentication:
IP Address FQDN hostname
For example, see sample klist output listed following.
bash-2.05$ klist Ticket cache: /tmp/krb5cc_1002 Default principal: HTTP/sol8sunone.test.com@TEST.COM Valid starting Expires Service principal Wed Dec 26 15:00:03 2007 Wed Dec 26 21:40:03 2007 krbtgt/TEST.COM@TEST.COM
The kinit syntax for user principal is:
kinit principalname
This command prompts for the password used while creating the user
principal.
The kinit syntax (it can vary from host to host) for service principal is:
kinit -k [-t keytab location containing service principal] principalname
The kinit command does not prompt for a password, because it uses a keytab file to authenticate the service principal.
For Windows Active Directory:
The kvno number of any service principal can be confirmed using ADSI Edit as follows:
The kvno for any user account changes every time its password is changed. If the version numbers do not match, create an account and keytab, or change the password to match the kvno to the kvno of the keytab.
For UNIX MIT KDC:
Use the kvno utility. The syntax of this command is:
Kvno principalname
You can verify if your keytab file is valid by installing windows support tools on both Policy Server and Web Agent running the following command:
Kinit -k -t <keytab file location> <respective spn>
For example:
kinit -k -t C:\Windows\webserver.keytab HTTP/websvriis6.test.com@KRISH.COM
This command returns no error when the keytab file is valid.
Verify both keytab files validity by running the following commands:
Kinit -k -t <keytab file> <SPN>
For example:
kinit -k -t host.keytab host/<fqdn>@DOMAIN.COM kinit -k -t smps.keytab smps/<fqdn>@DOMAIN.COM
If you get no errors, keytab files are fine, and the krb.conf file has valid values.
If you get an error, check whether the SPN is valid in KDC using the following command:
Kinit host/<fqdn>@DOMAIN.COM
This command usually asks for password. If you provide a valid password, you do not get an error message. If this command does not ask for password, the SPN was not identified. Check the property of that object, and in Account tab your SPN can be visible, for example, host/fqdn. If it is visible, make sure no other object has the same entry set as SPN.
Copyright © 2012 CA.
All rights reserved.
|
|