//////////////////////////////////////////////////////////////////////////
How to configure the following XIR2 SP3 environment for SSO with Vintela
Roland Jentsch, December 18 2007
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
Environment:
Windows 2003 SP1
Active Directory NATIVE 2003
Tomcat 5.0.27 (comes with installaton)
XIR2 SP3 (11.5.9.1076)
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// PRINCIPALS
//////////////////////////////////////////////////////////////////////////
you need 2 principals for using sso via kerberos:
//////////////////////////////////////////////////////////////////////////
// CONFIGURATION FOR APPLICATION SERVER
//////////////////////////////////////////////////////////////////////////
- the first principal is ONLY for the application server and must be written respecting upper and lower cases:
HTTP/hostname.my.domain.com@MY.DOMAIN.COM (for a standalone application server)
HTTP/balancername.my.domain.com@MY.DOMAIN.COM (for all application servers, that stands BEHIND a balancer)
to do:
a) create an AD user [for example: HTTPBOXI] and give him the “DES encryption” attribute
b) create the principal:
ktpass -princ HTTP/hostname.my.domain.com@MY.DOMAIN.COM -mapuser HTTPBOXI@MIL.ESSELUNGA.NET
c) reset the password of HTTPBOXI with the same
d) open user properties->Delegation->Check "trust this user for delegation to any service (Kerberos only)
e) create KEYTAB file:
ktpass -out HTTPBOXI.keytab -princ HTTP/hostname.my.domain.com@MY.DOMAIN.COM -pass myPassword -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto DES-CBC-MD5
f) copy the file under c:\WINNT of the application server host
g) Uncomment the following filter and mapping to enable the filter for Vintela SSO in
$TOMCATDIR/webapps/businessobjects/enterprise115/desktoplaunch/WEB-INF/web.xml
- change idm.realm to MY.DOMAIN.COM
- change idm.princ to HTTP/hostname.my.domain.com
- insert the following tag AFTER the tag IDM.PRINC
idm.keytab
C:/WINNT/HTTPBOXI.keytab
- modify the following tags as indicated below
authentication.default
secWinAD
siteminder.enabled
false
vintela.enabled
true
sso.enabled
false
the command ktpass must be launched on the domain controller!
h) create the kerberos ini file c:\WINNT\KRB5.INI as follows
[libdefaults]
default_realm = MY.DOMAIN.COM
dns_lookup_kdc = true
dns_lookup_realm = true
[domain_realm]
.domain.com = DOMAIN.COM
domain.com = DOMAIN.com
.my.domain.com = MY.DOMAIN.COM
my.domain.com = MY.DOMAIN.com
.my2.domain.com = MY2.DOMAIN.COM
my2.domain.com = MY2.DOMAIN.com
.my3.domain.com = MY3.DOMAIN.COM
my3.domain.com = MY3.DOMAIN.com
[realms]
DOMAIN.COM = {
kdc = DOMAINCONTROLLER.DOMAIN.COM
default_domain=DOMAIN.COM
}
MY.DOMAIN.COM = {
kdc = DOMAINCONTROLLERMY1.MY.DOMAIN.COM
kdc = DOMAINCONTROLLERMY2.MY.DOMAIN.COM
default_domain=MY.DOMAIN.COM
}
MY2.DOMAIN.COM = {
kdc = MY2DC2.MY2.DOMAIN.COM
kdc = MY2DC3.MY2.DOMAIN.COM
default_domain=MY2.DOMAIN.COM
}
MY3.DOMAIN.COM = {
kdc = MY3DC2.MY3.DOMAIN.COM
kdc = MY3DC3.MY3.DOMAIN.COM
default_domain=MY3.DOMAIN.COM
}
i) create the c:\WINNT\bscLogin.conf
com.businessobjects.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required debug=true;
};
k) add the following parameter to the server.xml of tomcat
$TOMCATDIR/conf/server.xml
search the “Define a non-SSL Coyote HTTP/1.1 Connector”, where is defined the port
add the followong parameter in the connector tag: maxHttpHeaderSize=“16384” - otherwise the kerberos information is to large for the standard header size
j) set the parameters for tomcat
Start->Program Files->Tomcat->Configure Tomcat
Go to the JAVA tab and add the following lines at the end of the Java Options
-Djava.security.auth.login.config=C:\winnt\bscLogin.conf
-Djava.security.krb5.conf=C:\winnt\krb5.ini
-Dcrystal.enterprise.trace.configuration=verbose
-Djcsi.kerberos.debug=true
//////////////////////////////////////////////////////////////////////////
// CONFIGURATION FOR CMS SERVICE
//////////////////////////////////////////////////////////////////////////
a) create an AD user for the CMS service
- create an AD user CMSUser, activate “DES encryption”
b) setspn -A BOBJCentralMS/HOSTNAME.MY.DOMAIN.COM CMSUser
c) reset the password of HTTPBOXI with the same
d) open user properties->Delegation->Check "trust this user for delegation to any service (Kerberos only)
e) reset the password of HTTPBOXI with the same
the command ktpass must be launched on the domain controller!
b) go in the CCM and change the service user of the following services to the user MY\CMSUser:
Crystal Reports Page Server
Report Application Server (RAS)
Web Intelligence Report Server
Desktop Intelligence Report Server
Connection Server
c) go in the CMC
Home->Authentication->Windows AD
- go under Windows AD Configuration Summary and insert a username, that has read only access to the active directory and the default domain (in this example MY.DOMAIN.COM)
- map the AD groups inside you need under “Mapped AD Member Groups”
“Authentication Options”
- set “Use Kerberos authentication” TRUE
- under Service principal name set BOBJCentralMS/HOSTNAME.MY.DOMAIN.COM
- set “Enable Single Sign On for selected authentication mode” TRUE
//////////////////////////////////////////////////////////////////////////
// COMMENTS
//////////////////////////////////////////////////////////////////////////
a) they will be some kerberos errors, but the system works. to see the kerberos errors, activate the follwing key in the registry:
Enabling Kerberos Event Logging on a Specific Computer
- Start Registry Editor.
- Add the following registry value:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Registry Value: LogLevel
Value Type: REG_DWORD
Value Data: 0x1
If the Parameters subkey does not exist, create it.
Roland Jentsch (BOB member since 2006-02-07)