SSO Usage

Setup

To use SSO with Spark (as of subversion r8551), a few things need to be configured.

At the login screen, click on ‘Advanced’ and go to the SSO tab.

Click on ‘Use Single Sign-On via GSSAP’. If Spark reports what username it will use, this may be all you need to do.

If Spark was not able to determine a username to use, click on Ok

and exit Spark. You will need to edit the spark.properties file.

There are 4 “hidden” properties you can add/edit in this file:

ssoMethod=string ssoRealm=string ssoKDC=string ssoAdv=boolean
ssoMethod

Set ssoMethod to one of file, dns or manual. If not specified, the

default is OS dependent. (On Windows its dns, on others its file)

Set to file to use a krb5.conf or krb5.ini (OS dependent) to

determine the realm and KDC information. file is recommended for Unix

installations or when a complex realm setup is needed, and DNS is not

configured.

Set to dns to use DNS SRV records to determine the KDC information

and TXT records to determine the realm. DNS is recommended for ease of

administration, but requires additional setup from the default Windows

AD DNS records.

Set to manual to use the ssoRealm and ssoKDC fields.

ssoRealm

Set this to the name of the realm to use when ssoMethod is manual.

ssoKDC

Set this to the KDC to use when ssoMethod is manual.

ssoAdv

Set this to true to allow setting the above options on the SSO tab of the advanced settings in the GUI. The default is false.

krb5.conf / krb5.ini

If you wish to use a krb5.conf or krb5.ini file, you can use the following example:

[libdefaults]      default_realm = EXAMPLE.COM [realms]     EXAMPLE.COM {         kdc = kdc.example.com         kdc = backupkdc.example.com         admin_server = kdc.example.com         default_domain = example.com     } [domain_realms]     example.com = EXAMPLE.COM     .example.com = EXAMPLE.COM

This file should be placed in either /etc/krb5.conf or

C:\Windows\krb5.ini or in your OS specific location. For more details

on this file syntax, see [http://www.cmf.nrl.navy.mil/CCS/people/kenh/kerberos-faq.html#confdoc]

DNS Records

To use DNS records, the following must be set up in your DNS zone:

SRV record

kerberos.udp.example.com Should be a valid SRV record and point to the KDC for your realm.

TXT record

_kerberos.example.com Should be a valid TXT record and contain the name of your Kerberos realm.

Example:

_kerberos._udp.example.com     7200 IN SRV 0 0 88 kdc.example.com. _kerberos._udp.example.com     7200 IN SRV 1 0 88 backupkdc.example.com. _kerberos.example.com

Registry

You need to modify the registry to allow exporting the TGT for SSO

to work. Modifying your registry is dangerous- make sure you have

proper backups before making any changes to your registry.

Depending on the OS, the setting is in a different location:

For Windows 2003 and Windows 2000 SP4:

HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaKerberosParameters Value Name: allowtgtsessionkey Value Type: REG_DWORD Value: 0x01 ( default is 0 )

Here is the location of the registry setting on Windows XP SP2:

HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaKerberos Value Name: allowtgtsessionkey Value Type: REG_DWORD Value: 0x01

AllowTGTSessionKeyXP.ADM (281 Bytes)
AllowTGTSessionKey2k3Vista.ADM (299 Bytes)

Quick question; I use Active Directory integration with Openfire. Is it still the case that the SSO solution only works where you use SAMAccountName (i.e. your windows login) as the first part of your JID? We do not, and I was hoping to eventually use SSO when this limitation was removed.

There is another Document created on the community that seems more complete.

The same regkey location for Windows 2003 works for Vista as well.

I have attached, 2 ADM templates. This will allow you to push out the AllowTGTSessionKey via Group Policies.

After you import the template you will need enable it and set the value to “1”.

If you can’t see the key after importing, you need to change your filtering and uncheck “Only show policy settings that can be fully managed”.