我们正在使用shibboleth-idp来使用shibboleth的SSO解决方案对用户进行身份验证。我们能够进行idp升级(2.4到3.1.1),并且我们还可以检查IdP 3.1.1的状态。(http://localhost:8080/idp/profile/status)
我们知道' IdP 2.4'使用OpenSaml2.6和IdP 3.1.1正在使用Opensaml 3.1.1,
我们对OpenSAML 3.1.1
有以下疑问A)OpenSAML 3.1.1中用于" SecureRandomIdentifierGenerator"的替代API。
A.1)使用Open SAML 2.6 SP上的示例SessionID生成(非shibboleth SP组件)如下所示:
SecureRandomIdentifierGenerator generator = new SecureRandomIdentifierGenerator(); 的sessionId = generator.generateIdentifier();
A.2)使用Open SAML 3.1.1 ???
B)如何使用Open SAML 3.1.1发送SAML请求 B.1)使用Open SAML 2.6样本从SP(非shibboleth SP组件)到Idp 2.4(Shibboleth组件)的SAML请求如下: 我们称之为" getAuthnRequest()"生成SAML请求的方法(我们使用的是SAML 2.6)
private AuthnRequest getAuthnRequest(DateTime issueInstant, Issuer issuer,
String consumerUrl, String spUrl) {
AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder();
AuthnRequest authRequest = authRequestBuilder
.buildObject("urn:oasis:names:tc:SAML:2.0:protocol",
"AuthnRequest", "samlp");
authRequest.setForceAuthn(new Boolean(false));
authRequest.setIsPassive(new Boolean(false));
authRequest.setIssueInstant(issueInstant);
authRequest
.setProtocolBinding("urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST");
authRequest.setAssertionConsumerServiceURL(consumerUrl);
authRequest.setIssuer(issuer);
authRequest.setAttributeConsumingServiceIndex(1);
return authRequest;
}
B.2)使用Open SAML 3.1.1 ???
请建议我们使用opensaml 3.1.1来准备saml authn请求。
答案 0 :(得分:1)
这是我从官方论坛得到的回复:
A)OpenSAML 3.1.1中用于“SecureRandomIdentifierGenerator”的替代API
A.1)使用Open SAML 2.6 SP上的示例SessionID生成(非shibboleth SP组件)如下所示:
SecureRandomIdentifierGenerator generator = new SecureRandomIdentifierGenerator(); 的sessionId = generator.generateIdentifier();
A.2)使用Open SAML 3.1.1 ???
v3版本为net.shibboleth.utilities.java.support.security.SecureRandomIdentifierGenerationStrategy 位于java-support。
B)如何使用Open SAML 3.1.1发送SAML请求
private AuthnRequest getAuthnRequest(DateTime issueInstant, Issuer issuer,
String consumerUrl, String spUrl) {
AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder();
B.2)使用Open SAML 3.1.1 ???
包名已更改,现在位于org.opensaml.saml.saml2.core.impl.AuthnRequestBuilder中。但我认为应该完全一样。您是不是在使用Eclipse或其他IDE?它可以帮助简单的包导入更改。
顺便说一句,在v2和v3中,我们都不鼓励直接使用像这样的-Builder类。我们建议您通过注册的提供商获取XMLObject构建器,marshallers和unmarshallers。在v2中,构建器用法:
https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaCreateFromScratch
在v3中,还没有wiki文档,但要么通过org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport使用全局XMLObjectProviderRegistry,要么使用org.opensaml.core.xml.util.XMLObjectSupport上的更高级别方法。