Как получить метаданные SAML из URL-адреса IDP с помощью поставщика Spring Security Saml2?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как получить метаданные SAML из URL-адреса IDP с помощью поставщика Spring Security Saml2?

Сообщение Anonymous »

У меня есть URL-адрес метаданных SAML IDP, и я хотел бы получить эти метаданные, надеюсь, что Spring Security проанализирует их и создаст RelyingPartyRegistration для утверждающей стороны. Вот что у меня есть на данный момент:

Код: Выделить всё

Pair
 pair = keyStoreService.getKeyPair(settings.getSpSettings());
return RelyingPartyRegistration.withRegistrationId(relyingPartyRegistrationId)
.entityId(String.format("https://%s.myservice.com", account.getDomain()))
.singleLogoutServiceLocation(appUrlBuilder.buildUrl(account, "/user/logout"))
.decryptionX509Credentials((saml2X509Credentials) -> {
saml2X509Credentials.add(Saml2X509Credential.decryption(pair.getFirst(), pair.getSecond()));
})
.signingX509Credentials((saml2X509Credentials -> {
saml2X509Credentials.add(Saml2X509Credential.signing(pair.getFirst(), pair.getSecond()));
}))
.assertingPartyDetails((idp) -> {
// todo configure from metadata
idp.entityId(idpSettings.getEntityId());
})
.build();
Мне нужно получить метаданные, чтобы Spring Security SAML предоставил мне объектную модель, которую я адаптирую к AssertingPartyDetails. Похоже, что SS SAML должен создавать это только из простого URL-адреса. Но, читая документацию, я нашел этот фрагмент, который делает то, что мне нужно:

Код: Выделить всё

private final AssertingPartyMetadataRepository metadata =
OpenSamlAssertingPartyMetadataRepository
.fromTrustedMetadataLocation("https://idp.example.org/metadata").build();
Однако, когда я добавляю это в свой код, intellij не может найти класс OpenSamlAssertingPartyMetadataRepository, и, к сожалению, поиск в Google не дает результатов, а поиск класса в репозитории maven дает ничего.
Итак, как мне добиться этого, написав собственный клиентский код http и анализатор XML для SAML?
Это кажется сумасшедшим, что я не мог просто сделать что-то подобное:

Код: Выделить всё

   .assertingPartyDetails((idp) -> idp.entityId( myEntityId ).metadataUrl( mdUrl ))
И Spring просто вытащит его и заполнит для меня объект AssertingPartyDetails.
Я делаю это, потому что реализую мультитенантный SAML поддержка реализации моего собственного RelyingPartyRegistrationResolver.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ml2-provid
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»