【发布时间】:2017-02-25 23:15:49
【问题描述】:
我现在比较 spring saml 和 pac4j saml。一般来说,我认为pac4j比spring saml更容易实现。但有一件事我想不通: 查看此配置代码:
@Configuration
public class Pac4jConfig {
@Bean
public Config config() {
final SAML2ClientConfiguration cfg = new SAML2ClientConfiguration(
"resource:samlKeystoreNgcsc.jks",
"juniper",
"juniper",
"resource:metadata-okta.xml"
);
cfg.setMaximumAuthenticationLifetime(3600);
cfg.setServiceProviderEntityId("http://localhost:8080/callback?client_name=SAML2Client");
cfg.setServiceProviderMetadataPath("sp-metadata.xml");
final SAML2Client saml2Client = new SAML2Client(cfg);
final Clients clients = new Clients("http://localhost:8080/callback", saml2Client);
final Config config = new Config(clients);
//config.addAuthorizer("admin", new RequireAnyRoleAuthorizer("ROLE_ADMIN"));
//config.addAuthorizer("custom", new CustomAuthorizer());
return config;
}
}
从这个示例代码中,我们已经有了 IDP 元数据,没关系,我们只要求 IDP 提供元数据,我们可以直接使用。
但是 sp-metadata.xml 在哪里?我们需要生成它并提供给 idp 以实现集成目的。
如果我使用的是 springSaml,它提供了一个 UI 来生成这个元数据,我们只需要下载并发送给 IDP。但是对于 pac4j saml,我根本看不到这个实用程序。那么任何人都可以帮助告诉我生成 sp 元数据的最佳解决方案是什么?
谢谢
【问题讨论】: