Zoom Integration with Shibboleth IdP v3 and non-signed logout request

Scott Koranda skoranda at gmail.com
Sun Apr 19 21:28:16 EDT 2015


On Sat, Apr 18, 2015 at 8:22 PM, Cantor, Scott <cantor.2 at osu.edu> wrote:
> On 4/18/15, 2:23 AM, "Scott Koranda" <skoranda at gmail.com> wrote:
>>
>>I see, however, this error:
>>
>>2015-04-17 23:09:53,307 - ERROR
>>[net.shibboleth.idp.profile.interceptor.impl.PopulateProfileInterceptorContext:129]
>>- Profile Action PopulateProfileInterceptorContext: Configured
>>interceptor flow intercept/my-security-policy/saml2-slo not available
>>for use
>>
>>I have tried a few different paths like
>>conf/flows/intercept/my-security-policy/saml2-slo/saml2-slo-flow.xml
>>but I have not been able to get rid of that error.
>
> I missed a step, you also have to add a bean to intercept/profile-intercept.xml in the shibboleth.AvailableInterceptFlows list (the following should work):
>
> <bean id="intercept/my-security-policy/saml2-slo" parent="shibboleth.InterceptFlow" />
>
>

I am seeing this error now:

2015-04-19 18:04:27,220 - ERROR [net.shibboleth.idp.authn:-2] -
Uncaught runtime exception
org.springframework.webflow.definition.registry.NoSuchFlowDefinitionException:
No flow definition
'intercept/incoming-logout-request-no-signature-required/saml2-slo'
found
        at org.springframework.webflow.definition.registry.FlowDefinitionRegistryImpl.getFlowDefinitionHolder(FlowDefinitionRegistryImpl.java:123)

Here is what I have done so far:

1) Created conf/flows/incoming-logout-request-no-signature-required/saml2-slo/saml2-slo-flow.xml
with these contents:

# cat conf/flows/incoming-logout-request-no-signature-required/saml2-slo/saml2-slo-flow.xml
<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/webflow
http://www.springframework.org/schema/webflow/spring-webflow.xsd"
    parent="security-policy.abstract">

    <action-state id="SAML2SLOSecurityPolicy">
        <evaluate expression="ReceivedEndpointSecurityHandler" />
        <evaluate expression="MessageReplaySecurityHandler" />
        <evaluate expression="MessageLifetimeSecurityHandler" />
        <evaluate expression="SAMLMDClientCertAuthSecurityHandler" />
        <evaluate expression="SAMLProtocolMessageXMLSignatureSecurityHandler" />
        <evaluate
expression="SAML2HTTPRedirectDeflateSignatureSecurityHandler" />
        <evaluate expression="SAML2HTTPPostSimpleSignSecurityHandler" />
        <evaluate expression="CheckMandatoryIssuer" />
        <evaluate expression="ExtractChannelBindingsExtensionsHandler" />
        <evaluate expression="'proceed'" />

        <transition on="proceed" to="proceed" />
    </action-state>

    <bean-import resource="../../../../system/flows/saml/security-beans.xml" />

</flow>

2) Edited the file conf/intercept/profile-intercept.xml so that it reads

# cat conf/intercept/profile-intercept.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
                           http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"

       default-init-method="initialize"
       default-destroy-method="destroy">

    <bean id="shibboleth.AvailableInterceptFlows"
parent="shibboleth.DefaultInterceptFlows" lazy-init="true">
        <property name="sourceList">
            <list merge="true">
                <bean id="intercept/context-check"
parent="shibboleth.InterceptFlow" />

                <bean id="intercept/terms-of-use"
parent="shibboleth.consent.TermsOfUseFlow" />

                <bean id="intercept/attribute-release"
parent="shibboleth.consent.AttributeReleaseFlow" />

                <bean
id="intercept/incoming-logout-request-no-signature-required/saml2-slo"
parent="shibboleth.InterceptFlow" />
            </list>
        </property>
    </bean>

</beans>

3) Edited conf/relying-party.xml so that the override for the SP in question is

<bean parent="RelyingPartyByName"
c:relyingPartyIds="https://example.edu/shibboleth">
            <property name="profileConfigurations">
                <list>
                    <bean parent="SAML2.Logout"
p:inboundInterceptorFlows="incoming-logout-request-no-signature-required/saml2-slo"
/>
                </list>
            </property>
        </bean>


What have I missed?

Thanks,

Scott K


More information about the users mailing list