Создание SAML IDP - PullRequest
       99

Создание SAML IDP

0 голосов
/ 30 марта 2020

Мы планируем построить собственный SAMP IDP. У меня есть несколько вопросов:

  1. Имеет ли смысл построить один?
  2. Если да, какой подход? Я не вижу Java библиотек для SAML. Невозможно использовать spring-security-saml, поскольку он поддерживает интеграцию сторонних IDP, а не сборку.

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Говоря как кто-то, кто создал SAML IdP с нуля, его создание в Java в основном включает в себя следующее:

  1. Серверное приложение, которое прослушивает запросы SAML, обычно через порт 443. Для этого вы можете использовать spring-boot .
  2. Код сервера для представления страниц аутентификации пользователям, которыми управляет IdP. LDAP является широко используемым способом аутентификации пользователя.
  3. Код сервера для извлечения атрибутов для аутентифицированного пользователя. Это может быть поиск LDAP для поиска атрибутов, таких как имя, фамилия, адрес электронной почты и т. Д. c.
  4. Код сервера, чтобы определить, какие атрибуты могут быть переданы запрашивающему SP. Для этого вы должны использовать entityID SP.
  5. Код сервера для перевода атрибутов пользователя (например, из LDAP) в атрибуты SAML и отправки в SP.

1 и 4 требуют парсинг и создание SAML. Для них вы можете использовать openSAML . 5 требуется схема атрибута SAML, которую SP, вероятно, поймет. Для этого вы можете использовать eduPerson .

Работа с SAML и SP требует знания и реализации различных SAML профилей. Веб-браузер SSO часто используется. Вы можете прочитать о профилях здесь .

Как только вы поймете SAML и где он вписывается в процесс, вам нужно понять / реализовать XMLSignature и различные темы шифрования используя PKI .

Когда у вас есть работающая, протестированная реализация IdP, вам необходимо иметь возможность проанализировать Метаданные SAML (PDF) для проверки SP с использованием его сертификат ключа publi c и другие URL-адреса в его метаданных. Вам также необходимо поддерживать метаданные SP в актуальном состоянии, а также создавать метаданные IdP для отправки в SP, чтобы он мог проверить ваш SAML Response, который вы подпишете.

Если ROI не стоит такого количества разработки, вы можете использовать 'стандартный' IdP .

0 голосов
/ 30 марта 2020

Здесь есть список SAML IDP здесь .

Здесь есть список стеков SAML здесь .

И для добавления ответа @codebrane Планируете ли вы поддерживать инициированные SP и IDP?

Но в целом, нет. Используйте готовый продукт или, по крайней мере, используйте solid библиотеку стека SAML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...