Need to modify AuthnContextClassRef in ExternalAuth

Stefan Santesson stefan at aaa-sec.com
Mon Dec 21 14:35:25 EST 2015


On 21/12/15 20:13, "users on behalf of Cantor, Scott" <users-bounces at shibboleth.net on behalf of cantor.2 at osu.edu> wrote:



>On 12/21/15, 2:00 PM, "users on behalf of Stefan Santesson" <users-bounces at shibboleth.net on behalf of stefan at aaa-sec.com> wrote:
>
>
>
>>This is a standard auth/External flow (if that counts as a standard flow).
>
>I'm not talking about your login flow, I'm talking about what's calling it.

It’s pretty standard for authn/External (I assume). Set by the following:

In idp.properties:
idp.authn.flows= External


In general-authn.xml:
        <bean id="authn/External" parent="shibboleth.AuthenticationFlow"
            p:nonBrowserSupported="false" 
            p:passiveAuthenticationSupported="true"
            p:forcedAuthenticationSupported="true">
            <property name="supportedPrincipals">
                <util:list>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa2"/>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa3"/>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa4"/>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa2-sigmessage"/>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa3-sigmessage"/>
                    <bean parent="shibboleth.SAML2AuthnContextClassRef" c:classRef="http://id.elegnamnden.se/loa/1.0/loa4-sigmessage"/>
                </util:list>
            </property>
        </bean>



In external-authn-config.xml

    <util:constant id="shibboleth.authn.External.addDefaultPrincipals" static-field="java.lang.Boolean.FALSE" />



In Java (external auth servlet:
            Principal principal = new UsernamePrincipal(principalName);
            Principal accPrincipal = new AuthnContextClassRefPrincipal(responseLoa.getLoaUri());
            Subject subj = new Subject();
            Set<Principal> principals = subj.getPrincipals();
            principals.add(principal);
            principals.add(accPrincipal);
request.setAttribute(ReturnAttr.subject.name(), subj);




>
>>The result is that my IdP does not store any cookie, nor any web storage in my web browser.
>
>It doesn't get far enough to store anything, the save operation would be later at the end.

OK
>
>>How do can I perform the “load” step required?
>
>You don't.
>
>You're going to have turn on debug logging for at least the IdP classes and org.opensaml.storage and provide a trace.


I turned about everything to DEBUG. It did not give me any extra hints.

    <variable name="idp.loglevel.idp" value="DEBUG" />
    <variable name="idp.loglevel.ldap" value="WARN" />
    <variable name="idp.loglevel.messages" value="DEBUG" />
    <variable name="idp.loglevel.encryption" value="INFO" />
    <variable name="idp.loglevel.opensaml" value="DEBUG" />


/Stefan


>



More information about the users mailing list