使用Spring安全性配置的Okta SingleLogout

时间:2019-06-07 19:31:44

标签: spring-boot spring-security okta okta-api

我正在使用Okta SAML,Spring Boot和Spring Boot的spring安全性(v.2.0.6)来设置SingleLogout。 我能够成功登录Web应用程序并根据IDP(Okta)进行身份验证。 但是,在从我的Web应用程序注销时,Spring会收到带有无效状态代码的LogoutResponse。

<saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:AuthnFailed" /></saml2p:Status>
</saml2p:LogoutResponse

与我配置的与元数据相关的一些相关bean是

final ExtendedMetadataDelegate extendedMetadataDelegate =
        new ExtendedMetadataDelegate(httpMetadataProvider, extendedMetadata());
    extendedMetadataDelegate.setMetadataTrustCheck(true);
    extendedMetadataDelegate.setMetadataRequireSignature(false);
    return extendedMetadataDelegate;
@Bean
  public MetadataGenerator metadataGenerator() {
    final MetadataGenerator metadataGenerator = new MetadataGenerator();

    metadataGenerator.setEntityId(oktaAuthenticationProperties.getServiceProviderEntityId());
    metadataGenerator
        .setEntityBaseURL(oktaAuthenticationProperties.getServiceProviderEntityBaseUrl());
    metadataGenerator.setExtendedMetadata(extendedMetadata());
    metadataGenerator.setIncludeDiscoveryExtension(false);

    return metadataGenerator;
  }

  @Bean
  public ExtendedMetadata extendedMetadata() {
    final ExtendedMetadata extendedMetadata = new ExtendedMetadata();
    extendedMetadata.setIdpDiscoveryEnabled(false);
    extendedMetadata.setSignMetadata(true);

    return extendedMetadata;
  }

这是与SP端的签名验证有关的问题吗? 我们可以使用okta的x.509证书,还是应该手动创建并签名证书?

0 个答案:

没有答案