我正在使用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证书,还是应该手动创建并签名证书?