Skip navigation
This discussion is archived
6308 Views 7 Replies Latest reply: Jun 17, 2007 9:01 AM by slushpupie RSS
sixthring KeyContributor 3,828 posts since
Apr 2, 2007
Currently Being Moderated

May 17, 2007 5:42 AM

SSO with Openfire 3.3.1 and spark 2.5.3b1

I am trying to configure openfire and spark for SSO.  My openfire 3.3.1 server is running on windows, Spark 2.5.3b1 is also windows.  Authentication is via Active Directory. 

 

 

I have installed the sasl in my Openfire 3.3.1 on windows server. I think it is configured correctly, but I still can not login via SSO. Regular login methods still work fine. The users all use spark on windows, and the server is also on windows. I am at a loss here. This is my new openfire.xml:

 

</FAMILY><GIVEN></GIVEN><MIDDLE/></N>

</N>

<EMAIL>

<INTERNET/>

<USERID></USERID>

</EMAIL>

<FN></FN>

<ADR>

<HOME/>

<STREET></STREET>

<PCODE></PCODE>

<CTRY></CTRY> </ADR> <ADR> <WORK/> <STREET></STREET> <LOCALITY></LOCALITY> <REGION></REGION> <PCODE></PCODE> <CTRY></CTRY>

</ADR>

<TEL>

<HOME/>

<VOICE/>

<NUMBER></NUMBER>

</TEL>

<TEL>

<HOME/>

<CELL/>

<NUMBER></NUMBER> </TEL> <TEL> <WORK/> <VOICE/> <NUMBER></NUMBER> </TEL> <TEL> <WORK/> <CELL/> <NUMBER></NUMBER>

</TEL>

<TEL>

<WORK/>

<FAX/>

<NUMBER></NUMBER>

</TEL>

<TEL>

<WORK/>

<PAGER/>

<NUMBER>

</TITLE>

<ORG>

<ORGNAME></ORGNAME>

<ORGUNIT></ORGUNIT>

</ORG>

<URL></URL>

</vCard>]]></vcard-mapping>

<nameField>cn</nameField>

<emailField>mail</emailField>

<groupNameField>cn</groupNameField>

<groupMemberField>member</groupMemberField>

<groupDescriptionField>description</groupDescriptionField>

<posixMode>false</posixMode>

<groupSearchFilter>(objectClass=group)</groupSearchFilter>

</ldap>

<provider>

<vcard>

<className>org.jivesoftware.openfire.ldap.LdapVCardProvider</className>

</vcard>

<user>

<className>org.jivesoftware.openfire.ldap.LdapUserProvider</className>

</user>

<auth>

<className>org.jivesoftware.openfire.ldap.LdapAuthProvider</className>

</auth>

<group>

<className>org.jivesoftware.openfire.ldap.LdapGroupProvider</className>

</group>

<authorization>

<classList>org.jivesoftware.openfire.sasl.StrictAuthorizationPolicy org.jivesoftware.openfire.sasl.DefaultAuthorizationPolicy</classList>

<!-- other options: null, LdapAuthorizationProvider, UnixK5LoginProvider, Strict and Lazy-->

</authorization>

</provider>

<setup>true</setup>

<log>

<debug>

<enabled>true</enabled>

</debug>

</log>

</jive>

    • slushpupie KeyContributor 776 posts since
      Jan 27, 2006
      Currently Being Moderated
      Jun 1, 2007 1:30 PM (in response to sixthring)
      Re: SSO with Openfire 3.3.1 and spark 2.5.3b1

      SSO is very new to Spark, and though its been in Openfire for a while now it was implemented with Unix in mind.  That said, it does work on WIndows, but there is no step-by-step guide that will work for everyone.    But this might come close:

       

      http://wiki.igniterealtime.org/display/WILDFIRE/ConfiguringOpenfirefor+Kerberos

       

      It ties together some documentation I wrote with the experiences a few others have had.

       

      But off the bat here are a few tips for you:

       

      Install the Windows Resource Kit to get the klist.exe command.  That will help you debug problems. 

       

      Your realm looks odd to me. Maybe you are just obscuring it, but generally the realm is based off some DNS entry, and will have one or more dots in it. Thats not an absolute rule, though.

       

      In the mechs list, you need GSSAPI, not NTLM.  The support in Spark and Openfire is for GSSAPI. There is a third-party patch for Openfire that will do NTLM, but thats a whole separate thing.

       

      Debugging can get really messy with this. Sometimes the easist way to do it is to disable all SSL and use tcpdump (or WinDump, or some other TCP packet capture tool) and watch the exchange.

      • slushpupie KeyContributor 776 posts since
        Jan 27, 2006
        Currently Being Moderated
        Jun 1, 2007 1:34 PM (in response to slushpupie)
        Re: SSO with Openfire 3.3.1 and spark 2.5.3b1

        Oh- one other thing.   The provider names change from 3.3.0 to 3.3.1.  Change

         

        org.jivesoftware.openfire.sasl.StrictAuthorizationPolicy org.jivesoftware.openfire.sasl.DefaultAuthorizationPolicy

         

        to

         

        org.jivesoftware.openfire.sasl.LooseAuthorizationPolicy org.jivesoftware.openfire.sasl.DefaultAuthorizationPolicy

         

        These will change again in the future, as the logic behind them in the current versions is not very good.

      • Calculating status... 12 posts since
        Nov 15, 2006
        Currently Being Moderated
        Jun 16, 2007 6:08 PM (in response to slushpupie)
        Re: SSO with Openfire 3.3.1 and spark 2.5.3b1

        Hi SP... we''ve got a strange problem with SSO and can''t seem to get it to work... except for one user account on one box. It seems I can only get SSO to work when I log onto the Openfire server itself as jadmin (jadmin is both a domain administrator and an Openfire administrator account). When I log into the Openfire server desktop and launch Spark 2.5.3 with SSO, it works. However, when I log onto any other box (workstation, other servers) using the jadmin domain administrator account, SSO does not work. I''m thinking there is something seriously wrong with my setup. Might it have something to do with the fact my JIDs are user@mydomain.com while my internal fqdn is different?

         

        I''ve read the following posts and tried to understand them as best as I could:

        http://wiki.igniterealtime.org/display/WILDFIRE/ConfiguringOpenfirefor+Kerberos

        http://www.igniterealtime.org/forum/thread.jspa?threadID=26606&tstart=375

        http://www.igniterealtime.org/forum/thread.jspa?messageID=148242&#148242

         

        I am not using the startup BAT files referenced in one of the posts, should I be? I''m also not sure if I need SRV records or how to go about ensuring they are correct.

         

        Here''s our setup:

         

            - Openfire 3.3.1 on Windows Server 2003 SP2 domain member, host name: jhost.mydomain.NET

            - Openfire configured Server Name: jabber.mydomain.COM

            - Spark 2.5.3 client on Windows Server 2003 SP2 Terminal Server (domain member)

            - Openfire using LDAP to Active Directory

            - Openfire running as Windows service under domain account: mydomain.net\openfire

            - Openfire host server and all client machines have JRE 6 installed with JCE

            - Created keytab file using ktpass util, version 5.2.3790.3959:

         

        ktpass -princ xmpp/jhost.mydomain.net@MYDOMAIN.NET -mapuser openfire@mydomain.net -pass xxxxxxxx -out jabber.keytab

         

            - Is the WARNING and KRB5_NT_UNKNOWN normal ? :

         

        Targeting domain controller: kdcserv.mydomain.net

        Using legacy password setting method

        Successfully mapped xmpp/jhost.mydomain.net to openfire.

        WARNING: pType and account type do not match. This might cause  problems.

        Key created.

        Output keytab to jabber.keytab:

        Keytab version: 0x502

        keysize 81 xmpp/jhost.mydomain.net@MYDOMAIN.NET ptype 0 (KRB5_NT_UNKNOWN) vno 14 etype 0x17 (RC4-HMAC) keylength 16 (0x16e4e111f29a8fa04d8bf546fafe5919)

         

            - When I run "klist tickets" I see (not xmpp/jhost.mydomain.net ?):

         

              Server: host/jhost.mydomain.net@MYDOMAIN.NET

              KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)

              End Time: 6/17/2007 3:16:13

              Renew Time: 6/17/2007 3:16:13

         

            - Created PTR record for jhost.mydomain.net in DNS

            - Set "openfire" domain account to "User cannot change password"

            - Set "openfire" to enable "Password never expires"

            - Set "openfire" to enable "Use DES encryption types for this account"

            - Set "openfire" delegation to "Trust this user for delegation to any service (Kerberos only)"

            - After running ktpass, "openfire" account "User logon name" was set to: xmpp/jhost.mydomain.net

            - I checked NTFS file perms for "openfire" domain account access to jabber.keytab file on Openfire host and they''re good

            - I updated the regsitry on the spark terminal server: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters  allowtgtsessionkey (1)

            - Here is my gss.conf file:

         

        com.sun.security.jgss.accept {

            com.sun.security.auth.module.Krb5LoginModule

            required

            storeKey=true

            keyTab="C:/Program Files/Openfire/conf/jabber.keytab"

            doNotPrompt=true

            useKeyTab=true

            realm="MYDOMAIN.NET"

            principal="xmpp/jhost.mydomain.net@MYDOMAIN.NET"

            debug=true;

        };

         

            - I added the

         

            - And still, I can use SSO with the jadmin user account if I log directly into the host running Openfire and launch spark from there. Oddly enough though, SSo does not work on the same host using a typical domain user account.

         

            - On any host I can still log in with jadmin or any standard domain user by using spark and standard username/password entry.

More Like This

  • Retrieving data ...

Bookmarked By (0)