Создайте подтверждение SAML для стороннего приложения с пользовательскими данными в Assertion Payload в C # .NET Core - PullRequest
0 голосов
/ 11 января 2019

Я создаю приложение, которое должно аутентифицировать пользователя для стороннего приложения. Требуется предоставить третьему лицу токен подтверждения SAML, который они проверяют.

Таким образом, мое приложение выступает в качестве поставщика удостоверений, а стороннее приложение является поставщиком услуг.

Мне также необходимо включить загрузку пользовательских данных в полезную нагрузку токена подтверждения SAML. Сторонние поставщики, получившие токен SAML, смогут извлечь эти данные.

Моим приложением будет приложение .NET Core, и после аутентификации пользователя я перенаправлю пользователя на URL-адрес стороннего приложения с токеном SAML в заголовке запроса.

Любые идеи, как наилучшим образом достичь этого. В идеале я хотел бы использовать некоторую стандартную библиотеку для создания утверждения SAML.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

В конце концов, это был лучший способ сделать это. https://www.codeproject.com/Articles/56640/%2FArticles%2F56640%2FPerforming-a-SAML-Post-with-C

0 голосов
/ 11 января 2019

Я предполагаю, что ваша реализация IdP должна использовать протокол SAML? Я спрашиваю, потому что ваш вопрос не совсем ясен в этом отношении, потому что WS-Federation (в сочетании с токенами SAML1.1) также возможен.

Прежде всего, было бы неплохо не писать собственный IdP, а использовать существующий продукт.

  • Если вы хотите / должны придерживаться технологий Microsoft, то AD FS будет хорошим кандидатом для вас. Это функция Windows Server, используемая в помещении.
  • Кроме того, существует несколько коммерческих продуктов (например, Auth0 или Onelogin ).
  • Другим существующим продуктом, который будет использоваться в помещении, который написан на C # и который можно настраивать, является IdentityServer . Посмотри на это. Я не очень знаком с этим, но мне кажется, что поддержка протокола SAML2 не является частью бесплатного пакета и должна быть оплачена.
  • Альтернативой (всего один, их много) может быть SimpleSAMLphp , если вы не связаны с Microsoft.
  • Если вы собираетесь написать свой IdP полностью с нуля, тогда взгляните на Sustainsys.Saml2 , которая является библиотекой, которая в первую очередь ориентирована на реализацию поставщиков услуг, но также может использоваться для IdP.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...