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>
在 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>