Я работаю над аутентификацией, инициированной idp. Я хочу сгенерировать ответ SAML для отправки в SalesForce. У меня есть необходимые значения, которые нужно установить в ответе из метаданных. Скажите, пожалуйста, какие классы openSAML использовать для генерации ответа/утверждения.
Сгенерировать ответ/утверждение SAML в java
Ответы (2)
Ниже приведены основные классы, которые будут использоваться.
Утверждение
Подпись
SubjectConfirmationData
NameID
Тема
Условия
Аудитория
AuthnContextClassRef
AuthnStatement
см. это для библиотек openSAML ссылка
Если вы хотите создать утверждения 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(псевдоним, пароль, подписьCrypto, false, defaultCanonicalizationAlgorithm, defaultRSASignatureAlgorithm);
На это стоит обратить внимание, если у вас возникли трудности с работой непосредственно с библиотекой OpenSAML.
Спасибо, Йогеш