【问题标题】:Spring SAML and ADFS 2.0Spring SAML 和 ADFS 2.0
【发布时间】:2017-06-16 01:22:51
【问题描述】:

我使用了 Spring SAML 示例应用程序并按照说明进行操作。当使用 SSOCircle IDP 时,我的配置按预期完美运行。但是,我想与 ADFS 一起工作。因此,我按照有关如何使用 ADFS 配置 Spring SAML 的说明进行操作。当我访问调用 Spring SAML 应用程序时,我通过它显示了 IDP 选择页面,其中包含指向 adfs/services/trust 的 URL。当我点击它时,它会提示我进行 AD 身份验证,这是我所期望的。但是,当我为 AD 身份验证提供用户 ID/密码时,它会对其进行处理并显示一条消息,内容为“无法显示页面”。

在地址栏上,页面的url显示为:

https://localhost:8443/spring-security-saml2-sample/saml/login?idp=http%3A%2F%2FTest-DC.TEST.local%2Fadfs%2Fservices%2Ftrust.

Test-DC.TEST.local 是我托管 ADFS 和 AD 的服务器。

tomcat 日志或任何地方都没有错误。

有人可以在这里帮助您使用 ADFS 设置 Spring SAML 吗?

【问题讨论】:

  • 您可以先使用 SAML 跟踪器来获取断言。根据使用的绑定,XML 签名可能存在问题。如果没有来自日志的错误消息,即使对于使用 ADFS 成功设置它的人来说,也很难分辨。 Spring SAML 文档也有来自 ADFS 集成的部分。
  • 谢谢。我将尝试使用 SAML 跟踪器。仅供参考:我使用 Spring Docs 中的 ADFS 集成
  • 查看 ADFS 事件日志并查看错误是什么。

标签: spring saml adfs2.0 adfs3.0


【解决方案1】:

确保您使用的是 SHA2 而不是 SHA1。

要么重写 afterPropertiesSet 方法:

    public class SSOConfigBean 
  implements InitializingBean 
{

  private String signatureAlgorithmSHA = SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256;
  private String digestAlgorithmSHA = SignatureConstants.ALGO_ID_DIGEST_SHA256;

  @Override
  public void afterPropertiesSet() throws Exception 
  {
    BasicSecurityConfiguration config = (BasicSecurityConfiguration) Configuration.getGlobalSecurityConfiguration();
    config.registerSignatureAlgorithmURI("RSA", signatureAlgorithmSHA);
    config.setSignatureReferenceDigestMethod(digestAlgorithmSHA);
  }
}

并将其添加到您的 securityContext:

  <!-- setting encryption to SHA2 instead of default SHA1 -->
  <bean class="path.to.SSOConfigBean"/>

或者在如下设置 SP 元数据时更新您正在使用的 securityContext:

  <bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
    <constructor-arg>
      <bean class="org.springframework.security.saml.metadata.MetadataGenerator">
        <property name="entityId" value="urn:samltest"/>
        <property name="extendedMetadata">
          <bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
            <property name="idpDiscoveryEnabled" value="false"/>
            <property name="local" value="true"/>
            <property name="signingAlgorithm" value="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
          </bean>
        </property>
      </bean>
    </constructor-arg>
  </bean>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多