Web Proxy Portlet with Delegated SAML Authentication

Overview

Support for delegated authentication with Shibboleth comes with the Web Proxy Portlet from version 1.1.1 on.

Steps for updating the Web Proxy Portlet included with the uPortal EAR package

Step 1 - Updating the Web Proxy Portlet Version

In pom.xml file and update the WebProxyPortlet.version line to specify 1.1.1

<WebProxyPortlet.version>1.1.1</WebProxyPortlet.version>

Step 2 - Enabling the Shibboleth Http Manager

Add the file uportal-portlets-overlay/WebProxyPortlet/src/main/webapp/WEB-INF/applicationContextOverrides.xml with contents:
You'll need to set the spPrivateKey, spCertificate, and portalEntityID properties appropriately for your institution.

<?xml version="1.0" encoding="UTF-8"?>
<!--
 | Override specific bean(s) from applicationContext.xml
 +-->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
    
    <bean id="HttpManagerBean" class="edu.wisc.my.webproxy.beans.http.ShibbolethEnabledHttpManagerImpl" scope="prototype">
      <property name="spPrivateKey" value="/opt/shibboleth-sp/etc/shibboleth/sp-key.pem"/>
      <property name="spCertificate" value="/opt/shibboleth-sp/etc/shibboleth/sp-cert.pem"/>
      <property name="portalEntityID" value="https://my.example.com/shibboleth"/>
    </bean>
</beans>

Step 3 - Enable the SAML User Attributes

Copy the portlet.xml file from the release to uportal-portlets-overlay/WebProxyPortlet/src/main/webapp/WEB-INF/portlet.xml and add the following user attributes:

<user-attribute>
    <description>idpPublicKeys</description>
    <name>idpPublicKeys</name>
</user-attribute>

<user-attribute>
    <description>samlAssertion</description>
    <name>samlAssertion</name>
</user-attribute>

Optional - Modifying uPortal's Web Proxy Portlet CPD

To list Shibboleth as an authentication option in uPortal's administrative interface, add "SHIBBOLETH" as an option for the PORTLET.edu.wisc.my.webproxy.webproxy.httpclient.sAuthType parameter in uPortal's Web Proxy Portlet CPD.

In uportal-war/src/main/resources/edu/wisc/my/portlets/WebProxy/WebProxyPortlet.cpd add <value>SHIBBOLETH</value>

<parameter modify="publish">
    <name>PORTLET.edu.wisc.my.webproxy.webproxy.httpclient.sAuthType</name>
    <label>Type of authentication (optional)</label>
    <type base="string" input="single-choice" display="drop-down">
    <restriction type="enumeration">
        <value></value>
        <value>SHIBBOLETH</value>
        <value>FORM</value>
        <value>BASIC</value>
        <value>NTLM</value>
    </restriction>
    </type>
    <defaultValue></defaultValue>
    <description>Select the type of authentication the web-based application requires.</description>
</parameter>