2015-06-09 11 views
1

Мы используем shibboleth-idp для аутентификации пользователей с использованием решения SSO от shibboleth. Мы можем сделать обновление idp (от 2.4 до 3.1.1), а также проверить статус IdP 3.1.1. (http://localhost:8080/idp/profile/status)Подготовить запрос на аутентификацию SAML с использованием OpenSaml3.1.1

Как известно, «IdP 2.4» использовал OpenSaml2.6 и IdP 3.1.1 использует Opensaml 3.1.1,

Мы имеем следующие запросы по отношению к OpenSAML 3.1.1

А) альтернативный API, которые будут использоваться в OpenSAML 3.1.1 для "SecureRandomIdentifierGenerator"

A.1) Использование Open SAML 2.6 Образец генерации SessionID в SP (компонент не shibboleth SP) приведен ниже:

SecureRandomIdentifier Генератор генератора = новый SecureRandomIdentifierGenerator(); sessionId = generator.generateIdentifier();

A.2) Использование Open SAML 3.1.1 ???

В) Как отправить запрос SAML с помощью Open SAML 3.1.1 B.1) с использованием открытых SAML 2.6 Пример запроса SAML из SP (не Шибболет ИП компонент) к IDP 2.4 (компонент Шибболет) приводится ниже :: мы называем "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; 

      } 

В.2) Использование открытого SAML 3.1.1 ???

Пожалуйста, предложите нам использовать opensaml 3.1.1 для подготовки запроса saml authn.

ответ

1

Это ответ я получил его с официального форума:

а) альтернативный API для использования в OpenSAML 3.1.1 для "SecureRandomIdentifierGenerator"

А.1) Использование Open SAML 2.6 Пример SessionID приведено ниже:

SecureRandomIdentifier Генератор генератора = новый SecureRandomIdentifierGenerator(); sessionId = generator.generateIdentifier();

A.2) Использование Open SAML 3.1.1 ???

Версия v3 - net.shibboleth.utilities.java.support.security.SecureRandomIdentifierGenerationStrategy , расположенный в java-поддержке.

B) Как отправить запрос SAML с использованием Open SAML 3.1.1

  private AuthnRequest getAuthnRequest(DateTime issueInstant, Issuer issuer, 
              String consumerUrl, String spUrl) { 

          AuthnRequestBuilder authRequestBuilder = new AuthnRequestBuilder(); 

В.2) Использование Open SAML 3.1.1 ???

Имена пакетов изменены, теперь это находится в org.opensaml.saml.saml2.core.impl.AuthnRequestBuilder. Но в остальном я считаю, что это должно быть точно так же. Вы не используете Eclipse или другую среду IDE? Он может помочь с изменениями импорта пакета.

Btw, как в v2, так и в v3, мы препятствуем прямому использованию классов -Builder, подобных этому. Мы рекомендуем вам получить XMLObject-сборщики, маршаллеры и unmarshallers через зарегистрированных поставщиков.В v2, использование строитель:

https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaCreateFromScratch

В v3, не вики документы еще, но либо не использовать глобальный XMLObjectProviderRegistry через org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport или высшие методы уровня по орг. opensaml.core.xml.util.XMLObjectSupport.