Shibboleth - 如何配置多个密码验证配置

Shibboleth - How to configure multiple Password Authentication Configurations

在 shibboleth 中我们有 PasswordAuthnConfiguration。

我想要多个 PasswordAuthnConfiguration 节点,这将根据 SP 选择。

我可以从回复中选择基于SP的认证方式party.xml 但是如果我想为 PasswordAuthnConfiguration 设置多组配置并根据 SP 进行选择怎么办?

例如,

SP1 - 密码配置 1

SP2 - 密码配置 2

我得到了解决方案, 如果其他人需要相同的解决方案。

system/flows/authn 使用您选择的名称复制以下流程

password-authn-beans.xml password-authn-flow.xml

喜欢

passworda-authn-beans.xml passworda-authn-flow.xml

为新流程设置单独的数据源配置 编辑

passworda-authn-beans.xml
    <import resource="../../../conf/authn/passworda-authn-config.xml" />

为新流程提供单独的登录页面 编辑

passworda-authn-flow.xml
    <view-state id="DisplayUsernamePasswordPage" view="mylogin">

复制 login.vm 页面并对其进行个性化设置。

现在每个身份验证流程都由唯一名称标识 像基于密码的身份验证流程是 "Password" 所以我们必须为我们的新身份验证流程定义一个名称 让我们称之为 "Mypassword"

编辑文件系统**/conf/webflow-config.xml** 添加以下行

<webflow:flow-location id="authn/Mypassword" path="../system/flows/authn/mypassword-authn-flow.xml" />

现在为新的身份验证流程设置数据源配置

go to conf/authn duplicate the file password-authn-config.xml to mypassword-authn-config.xml

设置您的数据源以配置您的用户数据源以进行身份​​验证

conf/idp.properties

中启用新流程

idp.authn.flows= Password|Mypassword

为您的特定客户数据源配置新的身份验证流程 在

conf/relying-party.xml

<bean parent="RelyingPartyByName" c:relyingPartyIds="urn_ping_saml"> 
            <property name="profileConfigurations">
                <list>
                <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" />
                <ref bean="SAML1.AttributeQuery" />
                <ref bean="SAML1.ArtifactResolution" />
                <bean parent="SAML2.SSO" p:authenticationFlows="#{{'Mypassword'}}" p:postAuthenticationFlows="attribute-release" p:encryptAssertions="false"/>
                <ref bean="SAML2.ECP" />
                <ref bean="SAML2.Logout" />
                <ref bean="SAML2.AttributeQuery" />
                <ref bean="SAML2.ArtifactResolution" />
                <ref bean="Liberty.SSOS" />
                </list>
            </property>
        </bean>