199 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
 
Latest 7 Posts
SAML & IBM Connections 5.5 – not a dream team
Fri, Aug 18th 2017 59
IBM Docs – Migration from DB2 –> ORACLE
Fri, Jul 7th 2017 2
IBM Connections – trouble adding additional nodes
Wed, May 31st 2017 4
SNOUG 2017 Presentation – SikaConnect goes External
Thu, Mar 23rd 2017 1
Whiteboard in IBM Sametime Meeting 9.0.1 removed
Fri, Mar 17th 2017 1
Wikis content not accessible…
Thu, Jan 26th 2017 1
Automatic WebSphere plugin modification II – PowerShell for Windows
Thu, Dec 1st 2016 5
Top 10
SAML & IBM Connections 5.5 – not a dream team
Fri, Aug 18th 2017 59
DB2 Instance autostart does not work on SLES 12 / RHEL 7
Tue, Jul 12th 2016 16
SAML – Enterprise SSO in the WebSphere world
Mon, Jul 20th 2015 14
Configuration of secret key storage in WebSphere Application Server
Thu, Mar 12th 2015 9
Critical vulnerability in WebSphere Application Server (CVE-2015-7450)
Thu, Nov 19th 2015 9
IBM Connections 5 CR3 released
Tue, Jul 21st 2015 8
HTTP Outbound authentication via SAML
Tue, Oct 6th 2015 6
IBM Open Batch program – IBM Champion
Tue, Mar 22nd 2016 6
IBM Connections 5.5 – Problem with ibm_upload_module and NFS
Mon, Jul 4th 2016 6
Automatic modification of WebSphere Plugin (Primary / BackupServers) to maintain two-line concept
Wed, Jul 6th 2016 6


HTTP Outbound authentication via SAML
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious
Julius Schwarzweller    

HTTP Outbound authentication via SAML (ADFS Server)

Hi all,

this time I had to deal with a real administrative challenge:

Enable WebSphere Portal to display IBM Connections content using IC portlets and authenticate HTTP Outbound calls using SAML.

WebSphere Portal can load content from external sources using a secure HTTP Outbound proxy (aka. Ajax Proxy). This is the case for IBM Connections portlets that load content from an IBM Connections server.

Normally when you deploy those IBM Connections portlets, authentication of requests sent via HTTP Outbound Proxy is done using IBM`s SSO mechanism using LTPAToken between WebSphere Portal & IBM Connections. But when it comes to more advanced cloud environments (Hybrid cloud integrations, integration of other software tools that do not support LTPA…), this technology is out dated. So I`m back to my “hot topic” SAML ;-)… This solves most of our SSO problems but brings some new hurdles with it.

How does it work?

HTTPOutbound : SAML1

Content that you want to consume from another system is not directly loaded from server to browser when using WebSphere Portal. WebSphere Portal calls backend systems using API to e.g. IBM Connections to display content (in this case if you use the IBM Connections portlets). This communication is routed via an application called HTTPOutbound Proxy (aka. AjaxProxy).

Since WebSphere Portal 8.5 CF03 you can authentication those HTTP Outbound Proxy calls using the SAML protocol. In the above example, the Outbound Proxy authenticates the user that is logged in the WebSphere Portal server on the connected IBM Connections system. The mandatory configuration steps are documented for TFIM & ADFS Server (from CF05 on) as IdP provider. But I think the information provided in knowledge center are a bit confusing and not really complete. That`s why I tried to summarize everything in this blog post.

Steps I used to activate HTTP Outbound Connection authentication via SAML (ADFS Server as IdP)

ADFS: Changing the cookie domain –> described here
This is a rather easy step where you need to make sure that the cookies, ADFS server generates are set for the domain you use with your WebSphere Portal / IBM Connections system.

  • open the file web.config in the IIS ADFS web module (inetpub base folder  – in my case this is c:/inetpub/adfs/ls/) and add the cookie handler between
 <system.web> and <compilation defaultLanguage="c#">

Cookie handler:

<httpCookies domain="your_domain" httpOnlyCookies="false" requireSSL="false"/>

HTTPOutbound1

  • Create a Outbound rule using IIS Management Console

This is a tricky one, as you need an additional ARR (Application Request Routing) snap-in in order to configure this outbound rule. You can install this snap-in using the Microsoft Web Platform Installer 5.0 –> here

Start the exe and search for “Application Request”

HTTOutbound2

Click to install.

Then open the IIS management console and click “Application Request Routing Cache”

HTTPOutbound3

Click on “Server Proxy Settings”

HTTPOutbound4

 

 

 

 

 

Click on “Advanced Routing – URL Rewrite”

HTTPOutbound5

Add a new Outbound rule

HTTPOutbound6

More details

HTTPOutbound7

Puhh… done <img src=" class="wp-smiley" style="height: 1em; max-height: 1em;" /> The documentation in the knowledge center leaves you rather alone when configuring those steps … Anyway it works like this <img src=" class="wp-smiley" style="height: 1em; max-height: 1em;" />

WebSphere Portal: Create HTTP Outbound configuration –> described here

Identity provider settings

Create a xml file with the following content (Adjust hostnames to match your environment)

<?xml version="1.0" encoding="UTF-8"?>
<proxy-rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ibm.com/xmlns/prod/sw/http/outbound/proxy-config/2.0">
<variables>
  <!--  replace values with the IdP login URL and the partner URL -->
  <endpoint name="adfs01.idp_prot">https</endpoint>
  <endpoint name="adfs01.idp_host">YOURADFSSERVER.SERVER.COM</endpoint>
  <endpoint name="adfs01.idp_port">443</endpoint>
  <endpoint name="adfs01.idp_uri">/adfs/ls/IdpInitiatedSignOn.aspx</endpoint>
  <endpoint name="adfs01.partner_url">https://YOURIBMCONNECTIONSSERVER.SERVER.COM/samlsps/acs</endpoint>
</variables>
<meta-data>
  <name>adfs01.IDP_PROTOCOL</name>
  <value>https</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_HOST</name>
  <value>YOURADFSSERVER.SERVER.COM</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_PORT</name>
  <value>443</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_URI</name>
  <value>/adfs/ls/IdpInitiatedSignOn.aspx</value>
</meta-data>
<meta-data>
  <name>adfs01.PARAM_NAME.1</name>
  <value>LoginToRp</value>
</meta-data>
<meta-data>
   <name>adfs01.PARAM_VALUE.1</name>
   <value>https://YOURIBMCONNECTIONSSERVER.SERVER.COM/samlsps/acs</value>
</meta-data>
<meta-data>
   <name>adfs01.IDP_AUTH_TOKEN_SOURCE</name>
   <value>cookies</value>
</meta-data>
<meta-data>
   <name>adfs01.IDP_AUTH_TOKEN_COOKIE.1</name>
   <value>MSISAuth</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_COOKIE.2</name>
  <value>MSISAuth1</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_COOKIE.3</name>
  <value>MSISAuthenticated</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_COOKIE.1</name>
  <value>SamlSession</value>
</meta-data>
</proxy-rules>

Register this XML file using a ConfigEngine task

 ./ConfigEngine.sh update-outbound-http-connection-config -DConfigFileName=XML_file -DOutboundProfileType=global

Define a policy rule for the remote Connections to the IBM Connections Server

Create a xml file with the following content (Adjust hostnames to match your environment):

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright IBM Corp. 2011, 2014  All Rights Reserved.              -->
<proxy-rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ibm.com/xmlns/prod/sw/ajax/proxy-config/1.1">
<mapping contextpath="/proxy" url="*"/>
<mapping contextpath="/myproxy" url="*"/>
<mapping contextpath="/common_proxy" url="*"/>

<policy active="true" basic-auth-support="false" name="SocialADFS" url="https://YOURIBMCONNECTIONSSERVER.SERVER.COM/*">
<actions>
  <method>POST</method>
  <method>GET</method>
  <method>DELETE</method>
  <method>PUT</method>
  <method>HEAD</method>
</actions>
<headers>
  <header>Accept-Language</header>
  <header>User-Agent</header>
  <header>Accept.*</header>
  <header>Content.*</header>
  <header>Authorization*</header>
  <header>Content*</header>
  <header>If-.*</header>
  <header>Pragma</header>
  <header>Cache-Control</header>
  <header>X-Update-Nonce</header>
  <header>X-Shindig-ST</header>
  <header>X-IC-CRE-Request-Origin</header>
  <header>X-IC-CRE-User</header>
  <header>X-Method-Override</header>
  <header>X-Requested-With</header>
</headers>
<cookie-rule name="SocialAdfs_WEF_Cookie_Rule">
  <cookie>*</cookie>
  <scope>user</scope>
  <handling>store-in-request</handling>
</cookie-rule>
<meta-data>
  <name>SSO_SAML20_IDP</name>
  <value>adfs01</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_HOST</name>
  <value>YOURADFSSERVER.SERVER.COM</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_PORT</name>
  <value>443</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_URI</name>
  <value>/adfs/ls/IdpInitiatedSignOn.aspx</value>
</meta-data>
<meta-data>
  <name>adfs01.PARAM_NAME.1</name>
  <value>LoginToRp</value>
</meta-data>
<meta-data>
  <name>adfs01.PARAM_VALUE.1</name>
  <value>https://YOURIBMCONNECTIONSSERVER.SERVER.COM/samlsps/acs</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_SOURCE</name>
  <value>cookies</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_COOKIE.1</name>
  <value>MSISAuth</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_COOKIE.2</name>
  <value>MSISAuth1</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_TOKEN_COOKIE.3</name>
  <value>MSISAuthenticated</value>
</meta-data>
<meta-data>
  <name>adfs01.IDP_AUTH_COOKIE.1</name>
  <value>SamlSession</value>
</meta-data>
<meta-data>
  <name>forward-http-errors</name>
  <value>true</value>
</meta-data>
</policy>
<meta-data>
  <name>forward-http-errors</name>
  <value>true</value>
</meta-data>
<meta-data>
  <name>xhr-authentication-support</name>
  <value>true</value>
</meta-data>
<meta-data>
  <name>socket-timeout</name>
  <value>50000</value>
</meta-data>
<meta-data>
  <name>retries</name>
  <value>2</value>
</meta-data>
<meta-data>
  <name>max-connections-per-host</name>
  <value>50</value>
</meta-data>
<meta-data>
  <name>max-total-connections</name>
  <value>1000</value>
</meta-data>
</proxy-rules>

Register this XML file using a ConfigEngine task

 ./ConfigEngine.sh update-outbound-http-connection-config -DConfigFileName=/ibm/proxy_smartcloud.xml -DApplicationScopeRef=PA_icWEFPtlts

–> This time I limit the configuration to the IBM Connections portlets … “-DOutboundProfileType=global” should also work.

The result is:

HTTPOutbound8

Summary

To be honest … This was a real piece of work… Tough and really complex stuff!

Anyway… Thanks IBM for this great integration. Do more SAML stuff… I really like this 😉



---------------------
http://techblog.gis-ag.info/2015/10/06/http-outbound-authentication-via-saml/
Oct 06, 2015
7 hits



Recent Blog Posts
59
SAML & IBM Connections 5.5 – not a dream team
Fri, Aug 18th 2017 7:45a   GIS Techblog
Hi all, last week we had to fight with an activation of SAML on a IC 5.5 CR3 environment. The setup was: IBM Connections 5.5 CR3 as test instance ADFS Server 3.0 (I know… it is only tested with ADFS 2.0 – but works with 3.0 too) We followed the instructions from the IBM Connections Knowledge Center. Smooth setup everything standard procedure. When testing this setup, the redirect to the IdP was initiated. After logging into the IdP the browser was redirected to IBM Connections ACS
2
IBM Docs – Migration from DB2 –> ORACLE
Fri, Jul 7th 2017 9:52a   GIS Techblog
IBM Docs – Migration from DB2 –> ORACLE Hi, within our last big project, we had the challenge to transfer the IBM Docs database from DB2 to ORACLE. Within this database comments and other document related data is stored. Officially there is no script available to perform this move using DBT (remove constraints / transfer / reapply constraints). We looked into the database and figured out how to perform this task using DBT – so we are not dependent on any other products. We m
4
IBM Connections – trouble adding additional nodes
Wed, May 31st 2017 2:52p   GIS Techblog
IBM Connections – trouble adding additional nodes Hi all, we are currently involved in a project where we installed a 1 node IBM Connections 6 Cluster and later added a second node to the cell. So far so good… Everything that needs to be done after adding the second node is described here … Everything? Yes, mainly… but not in the mandatory details as I think! Missing custom properties and other settings might result in non-functional nodes. Especially not setting httpSess
1
SNOUG 2017 Presentation – SikaConnect goes External
Thu, Mar 23rd 2017 1:06p   GIS Techblog
SNOUG 2017 Presentation – SikaConnect goes External Hi all, yesterday I was at SNouG in Zurich. I had a great time there – good speakers and a overall perfectly organized event (would we expect sth. else from Switzerland? ) Raymond Weber from SIKA Informationssysteme AG and I did a session about the SIKA Extranet Feature:
1
Whiteboard in IBM Sametime Meeting 9.0.1 removed
Fri, Mar 17th 2017 10:43a   GIS Techblog
Whiteboard in IBM Sametime Meeting 9.0.1 removed IBM implemented in Sametime Meeting 9.0.1 a whiteboard function as technical preview. Ben described in his articel how to enable this feature: https://collaborationben.com/2016/05/20/whiteboard-in-sametime-9-0-1/ With the current cumulative Fix 901-ST-General-FP-SMOL-AK4G43  for the Meeting Server IBM has removed this function. The response on my PMR was: “I can confirm The Meetings Whiteboard feature release is being put on hold indefinitely.
1
Wikis content not accessible…
Thu, Jan 26th 2017 10:54a   GIS Techblog
Wikis content not accessible… Hi, it`s been quite a long time; many projects at the moment so that blogging needs to wait Last week we had a very interesting problem at one customer’s environment. When accessing a Wiki, the page was displayed blank – no content was available. Browsing to older versions of this wikis worked. The error in the log: Parsing error… Wikis content (the body) gets store in the filesystem as xml files. If you access a Wiki there is a XML parser
5
Automatic WebSphere plugin modification II – PowerShell for Windows
Thu, Dec 1st 2016 6:54p   GIS Techblog
Automatic WebSphere plugin modification II – PowerShell for Windows Hi, some months ago I published a shell script to automatically modify the Primary / BackupServer definition in a WebSphere plugin-cfg.xml file. As we have several Windows customers we decided to transfer this script to PowerShell so that it is also useable for a Windows Cluster installation. My colleague Jan Bruns did a great job implementing this script. It basically works the same way as the Linux script: modifywasplug
6
IBM Connections Docs – file preview not possible for some CCM pdf files
Thu, Nov 17th 2016 2:15p   GIS Techblog
IBM Connections Docs – file preview not possible for some CCM pdf files Hi all, last week we had trouble in a customer environment using the file preview functionality for some pdf files (only those that were uploaded using CCM). Instead of a preview the message was displayed: At the same time we saw the following warning in the log: The mime-type was set to “image/pcl” instead of “application/pdf”… this mime-type is not supported by IBM Docs File viewer. We had to dig deep into th
3
IBM Connections 5.5 CR2 released
Thu, Nov 10th 2016 8:13a   GIS Techblog
IBM Connections 5.5 CR2 released Hi all, IBM released CR2 for IBM Connections 5.5: The Fix list Download the CR Database updates are mandatory (Activities, Files, Homepage, Mobile, Wikis) Filenet updates are mandatory Updates for Community Surveys (Fixes the TLS 1.2 issues) A prerequisite for CR2 is at least WAS 8.5.5 FP9 (let`s see when FP10 will be officially supported) A general step-by-step guide installing CR2 is provided by IBM. A new CR2 version of the Cognos wizard can be downloaded (y
2
IBM Connections – How to switch to a custom global unique ID for users
Mon, Nov 7th 2016 8:59a   GIS Techblog
IBM Connections – How to switch to a custom global unique ID for users Hi, many of our todays support cases is related to non-working profiles in IBM Connections. If users change their name, switch from one to another location or simply get a new account their profile in IBM Connections might get inactivated because the hash key between LDAP and database has changed. There are three possible hash keys: UID: Often a bad choice, as this might change eMail: Also a bad choice GUID: Unique I




Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition