Active Directory SSO for SAP BusinessObjects BI4
So following my previous post on AD SSO with BusinessObjects XI 3.1 and a lot of interest in updating the post to provide step-by-step guidance for BI4 AD SSO, below please find another SSO cheat sheet for BI4. I have used the latest KB note on AD SSO which is 1631734, written by Steve Fredell.
Please note that in this example below, I am assuming that Tomcat is being used for the web application server, and it is by default installed on the same instance as the BusinessObjects BI4 application. In a distributed scenario, certain actions will take place on the Web App instance, and others on the BusinessObjects BI4 instance.
Instead of just letting you walk through the process yourself, I also wanted to give you a more visual guide. So below, please find a DSLayer special edition, video walkthrough of this guide:
Firstly, let’s define our server names and IPs (you must obviously adjust these and the commands below to reflect your server names and IPs:
- Domain Name: DOMAIN (FQDN: DOMAIN.INTERNAL)
- Service Account: biservice (password: Password1)
- Domain Controller: adserver.DOMAIN.INTERNAL
- BusinessObjects Server: bi4server.DOMAIN.INTERNAL
- BusinessObjects AD Group: DOMAIN\UserGroup
Step 1
Create an Active Directory service account, biservice (pass: Password1). Ensure the user config has ‘Password never expires’ option checked on.
On the BusinessObjects server, add the DOMAIN/biservice user to the Local Administrators group. Also assign the biservice user the right ‘Act as part of Operating System’ in the Local Security Policy snap-in.
Step 2
Run the following command on the Active Directory server to create appropriate Service Principal Names (SPNs):
- setspn -a BICMS/biservice.domain.internal biservice
- setspn -a HTTP/bi4server biservice
- setspn -a HTTP/bi4server.domain.internal biservice
Verify the SPNs have been created by running ‘setspn -l biservice’.
Step 3
Change the user config of ‘biservice’ user in Active Directory configuration, and under the Delegation tab, turn on ‘Trust this user for delegation to any service (Kerberos only)’.
Step 4
Under the AD Authentication area in the Central Management Console, take the following actions:
- Enable Windows Active Directory (AD)
- AD Administration Name = DOMAIN\biservice
- Default AD Domain: DOMAIN.INTERNAL
- Add AD Group: DOMAIN\UserGroup
- Use Kerberos Authentication
- Service principal name = BICMS/biservice.domain.internal
- Enable Single Sign On for selected authentication mode
Click Save to save all your entries. Check under the Groups area to make sure your AD group has been added.
Step 5
Modify the Server Intelligence Agent (SIA) process on the BusinessObjects server to run as the DOMAIN\biservice user.
Step 6
Test this by logging into Web Intelligence Rich Client by using an AD user who is part of the group. SSO should occur once you select ‘Windows AD’ authentication and click OK (no need to input your username or password).
Step 7
Create a file called ‘bscLogin.conf’, save it into C:\Windows\ directory on the BusinessObjects server, and put the following content into it using Notepad:
com.businessobjects.security.jgss.initiate { com.sun.security.auth.module.Krb5LoginModule required debug=true; };Create a file called ‘krb5.ini’, save it into C:\Windows\ directory, and put the following content into it using Notepad:
[libdefaults] default_realm = DOMAIN.INTERNAL dns_lookup_kdc = true dns_lookup_realm = true default_tgs_enctypes = rc4-hmac default_tkt_enctypes = rc4-hmac udp_preference_limit = 1 [realms] DOMAIN.INTERNAL ={ kdc = ADSERVER.DOMAIN.INTERNAL default_domain = DOMAIN.INTERNAL }Verify this file is completed correctly by navigating to C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\jdk\bin\ folder on the BusinessObjects server, and execute ‘kinit biservice’ in a command prompt. If a new ticket is stored, the file is correct.
Step 8
Stop Tomcat. Modify the BI Launch Pad’s .properties file to reveal the authentication dropdown. Navigate to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\custom and create a file called ‘BIlaunchpad.properties’ with the following text:
authentication.visible=true authentication.default=secWinADOpen up the Tomcat Options, and add the following lines to the Tomcat Java Options:
-Djava.security.auth.login.config=c:\windows\bscLogin.conf -Djava.security.krb5.conf=c:\windows\krb5.iniStart Tomcat, then try and do a manual logon to BusinessObjects, and check Tomcat trace logs for a ‘commit succeeded’.
Step 9
Stop Tomcat. Modify C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\conf\server.xml, by adding ‘maxHttpHeaderSize=”65536″‘ in Connector Port 8080 tag.
Navigate to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom and create a file called ‘global.properties’ with the following text:
sso.enabled=true siteminder.enabled=false vintela.enabled=true idm.realm=DOMAIN.INTERNAL idm.princ=biservice idm.allowUnsecured=true idm.allowNTLM=false idm.logger.name=simple idm.logger.props=error-log.propertiesOpen up Tomcat Options Add the following lines to Tomcat Java Options:
-Dcom.wedgetail.idm.sso.password=Password1 -Djcsi.kerberos.debug=trueDelete logs in C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\logs\ and C:\SBOPWebapp_BIlaunchpad_IP_PORT\.
Start Tomcat, go to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\logs\, check stdout.log has ‘credentials obtained’ shown.
Test silent single sign on is now working in a browser (not on the BusinessObjects server).
Step 10
Copy BIlaunchpad.properties and global.properties from C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom to C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\WEB-INF\config\custom so that patches don’t overwrite them and SSO stops working.
Step 11
Create a keytab on the AD server by running the following command:
ktpass -out bosso.keytab -princ biservice@DOMAIN.INTERNAL -pass Password1 -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto RC4-HMAC-NTCopy this file to c:\windows of BOBJ server.
Stop Tomcat.
Add the following line to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom\global.properties
idm.keytab=C:/WINDOWS/bosso.keytabOpen up the Tomcat Configuration, remove the Wedgetail line in Java Options, restart tomcat and make sure ‘credentials obtained’ still showing up in stdout.log.
Now check silent single sign on still operating correctly.
Step 12
Remove debug=true from the C:\windows\bscLogin.conf file, and also remove the debugging line in Tomcat Configuration, Java Options.
Conclusion
Hopefully this walkthrough gives you a good idea of what is required to get AD SSO working on BI4.
Don’t forget to look at SAP note 1631734. Also included in the SAP note is troubleshooting assistance for each step.
February 14th, 2012 at 2:24 PM
That’s what I thought. It is happening in all of my environments, and I have double checked and triple checked the SPN’s. So maybe it is something to do with the domain setup. Thanks
February 14th, 2012 at 2:04 PM
Hi Matt,
That should work ok normally, because you have defined SPNs for both the hostname and the FQDN – maybe something to do with the domain setup?
Kind regards,
Josh
February 14th, 2012 at 6:03 AM
Not sure what changed, but after installing the remaining patches for the other components SSO started working again.
I have one more question however. SSO works great when I go to http://BOBJSERVER/BOE/BI but I get a Windows Authentication popup when I go to http://BOBJSERVER.mydomain.com/BOE/BI and then an http 500 error if I actually log in, or just the normal log in screen in I click cancel. Any way to make this work from both the hostname URL and the FQDN URL? Thanks again
February 10th, 2012 at 8:03 PM
I have had the problem after installing patch 11 with SAP authentication. Problem: the configuration in patch 11 is not the same, we have done more security-configuration in BW-System.
Maybe that is the same with AD-Authentication
February 1st, 2012 at 10:30 AM
Hey Matt, I haven’t I’m sorry – so I’m not sure if there is a bug or not..
February 1st, 2012 at 7:48 AM
Has anyone tried this since Patch 11? I installed Patch 11 on my DEV environment yesterday as well as on the new PROD environment today, and this no longer works. Even after uninstalling and going back to Patch 10. I’ve wasted so much time trying to figure it out.
January 25th, 2012 at 9:42 PM
Somebody out there must understand how this stuff works!!
Do me one favour though – but in big letters to make user the domain name is entered in capitals – save me a lot of grief next time!
January 25th, 2012 at 1:15 PM
I don’t think the instructions in the admin guide have worked for SSO configuration with Vintela since XI R2, so I’m not sure why they haven’t fixed the doco as yet. Don’t worry, some parts of it I don’t even fully understand, not being an AD techie, but the good thing is once you’ve done it several times, you can nail it 99% of the time, and the 1% can be resolved by SAP support.
January 24th, 2012 at 6:12 PM
I’d love to hear some comments about why your instructions work despite being different to those in the admin guide!
I avoided Kerberos for the whole XIR2 release, but don’t have much option any more, I’m trying to get a better understanding of what’s going on rather than just following instructions.
January 18th, 2012 at 11:10 AM
Hi Rahul, thanks for your comment and glad to hear AD SSO is working for you. End-to-end SSO has it’s own challenges and I’d encourage you to look to the SAP Service Marketplace and Support Notes (or even Support Team at SAP) to help resolve this issue.
Cheers, Josh
January 18th, 2012 at 7:13 AM
Great Post, SSO is now working and AD users can now login successfully. Now are are trying to establish end-to-end SSO to SQL server 2005 reporting database from Business Objects and we have issues. When refreshing the reports from the webi client it comes up with error saying that “session cannot be verified” Please help
January 9th, 2012 at 9:14 AM
Thanks Jason- will see if I can get can add that later on. Cheers, Josh
January 8th, 2012 at 1:01 PM
Great post. I would also request that you post instructions for end to end single sign on, i.e to include SSO from BOBJ to SAP BW and how mapping is done between AD users and BW users and how groups are managed for these users in BOBJ
December 4th, 2011 at 9:28 PM
Great demo video – and doc.
The real question is why SAP BOBJ doesn’t provide more content in this “clear” a style…?
THANKS!
November 17th, 2011 at 12:36 PM
Thanks for this – nice counterbalance to Steve F’s whitepaper.
November 14th, 2011 at 9:06 AM
Hi Sean,
Thanks for your comment. That was a domain Admin account, but purely added for the purposes of the demo. It doesn’t need to be added, I just did so I could test while logged in as the Admin user.
Cheers, Josh
November 2nd, 2011 at 5:54 AM
great update. I was following the BI 4.0 admin guide for SSO and as you will find, it is totally messed up. your video saved the day for me. QUick question: the Admnistrator account that you added to the usergroup AD group, is it a local Administrator account on your bobj server or is it a dmain Administrator account ?