Генерировать ответ / утверждение SAML в java

#java #saml #assertion

#java #saml #утверждение

Вопрос:

Я работаю над аутентификацией с использованием idp. Я хочу сгенерировать ответ SAML для отправки в SalesForce. У меня есть необходимые значения, которые должны быть установлены в ответе из метаданных. Пожалуйста, подскажите мне классы OpenSAML, которые следует использовать для генерации ответа / утверждения.

Ответ №1:

Ниже приведены основные классы, которые будут использоваться.

Подпись
утверждения, данные о предмете подтверждения,
Имя_ID
,
Условия
субъекта,
Аудитория
, AuthnContextClassRef, , AuthnStatement

смотрите это для библиотек OpenSAML по ссылке

Комментарии:

1. Как получить строку SAMLAssertion из SAMLResponse? Я преобразовал его с помощью Base64, но получаю {«error»:»invalid_grant», «error_description»: «Предоставленное разрешение на авторизацию недействительно.»}, конкретного сообщения об ошибке нет / wso2is-5.0.0/repository /logs/wso2carbon. файл журнала, пожалуйста, помогите мне

Ответ №2:

Если вы хотите создать утверждения SAML и хотите несколько удобных методов, которые помогут вам работать с библиотекой OpenSAML, вы можете взглянуть на SAML2ComponentBuilder от WSS4J. Это широко используется в Apache CXF и других стеках служб Java.

Создать утверждение так же просто, как:

         //Create assertion
    Assertion assertion = SAML2ComponentBuilder.createAssertion();

    //create issuer
    Issuer issuer = SAML2ComponentBuilder.createIssuer(issuerString);
    assertion.setIssuer(issuer);
  

Очевидно, что вы можете установить все значения, описанные выше, и при условии наличия ‘AssertionWrapper’, который помогает в цифровой подписи утверждения:

assertionWrapper.signAssertion(псевдоним, пароль, signatureCrypto, false, алгоритм канонизации по умолчанию, алгоритм подписи по умолчанию);

На это стоит обратить внимание, если у вас возникают трудности с непосредственным использованием библиотеки OpenSAML.

Спасибо, Йогеш

Комментарии:

1. Как получить строку SAMLAssertion из SAMLResponse? Я преобразовал его с помощью Base64, но получаю {«error»:»invalid_grant», «error_description»: «Предоставленное разрешение на авторизацию недействительно.»}, конкретного сообщения об ошибке нет / wso2is-5.0.0/repository /logs/wso2carbon. файл журнала, пожалуйста, помогите мне