第一:
AzureAd和GoogleWorkspace针对saml2协议中,关于URL比较时的实现有点不同。
AzureAd这边如果是下面的情况的话,结果是能匹配一致的。
AssertionConsumerServiceURL: https://www.test.com:433/saml/sso
Reply URL:https://www.test.com/saml/sso
GoogleWorkspace这边是不能匹配一致的。只能是两边同时去掉端口,或者同时有端口时才能匹配上。
AssertionConsumerServiceURL: https://www.test.com:433/saml/sso
ACS URL:https://www.test.com/saml/sso
第二:
如果想去掉AssertionConsumerServiceURL中的80端口或者443端口,可以设置MetadataGeneratorFilter中的normalizeBaseUrl属性为true。
@Bean
public MetadataGeneratorFilter metadataGeneratorFilter() throws Exception {
MetadataGeneratorFilter metadataGeneratorFilter = new MetadataGeneratorFilter(metadataGenerator());
metadataGeneratorFilter.setNormalizeBaseUrl(true);
return metadataGeneratorFilter;
}
References
SES-121: Only include non-standard ports in generated metadata · Issue #110 · spring-projects/spring-security-saml · GitHub
MetadataGeneratorFilter (Spring Security SAML 1.0.10.RELEASE API)
