Подготовьте запрос аутентификации SAML с помощью OpenSaml3.1.1.

Мы используем shibboleth-idp для аутентификации пользователей с помощью решения SSO от shibboleth. Мы можем выполнить обновление 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) Альтернативный API для использования в OpenSAML 3.1.1 для "SecureRandomIdentifierGenerator"

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

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

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

B) Как отправить запрос SAML с использованием Open SAML 3.1.1 B.1)Использование Open SAML 2.6 Образец запроса SAML от SP (компонент SP без shibboleth) к Idp 2.4 (компонент Shibboleth) приведен ниже: мы вызываем «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.


person M.S.Naidu    schedule 09.06.2015    source источник


Ответы (1)


Вот ответ, который я получил с официального форума:

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

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

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

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

Версия v3 — это net.shibboleth.utilities.java.support.security.SecureRandomIdentifierGenerationStrategy, расположенная в java-support.

Б) Как отправить запрос SAML с помощью Open SAML 3.1.1

            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? Это может помочь с простыми изменениями импорта пакетов.

Кстати, как в версии 2, так и в версии 3 мы не рекомендуем прямое использование таких классов -Builder. Мы рекомендуем вам получать компоновщики XMLObject, маршаллеры и демаршаллеры через зарегистрированных поставщиков. В версии 2 использование построителя:

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

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

person M.S.Naidu    schedule 10.06.2015