Подтвердить что ты не робот

Внедрение единого входа ASP.NET ASP.NET

Мне поручено внедрить единый вход для наших клиентов в рамках нашего следующего выпуска. Поток существует следующим образом:

  1. Пользователь входит в систему основного школьного портала, используя идентификатор/пароль учащегося, предоставленные ему/ей школой.
  2. Пользователь нажимает ссылку на продукт моей компании.
  3. Пользователь автоматически попадает на страницу панели инструментов, как если бы он только что вошел в систему через форму входа на нашем сайте.

Таким образом, существует два механизма, с помощью которых пользователь может пройти аутентификацию на нашем сайте:

  1. Перейдите на главную страницу нашего продукта и войдите в систему, используя адрес электронной почты/пароль, который мы храним в нашей локальной системе.
  2. Использование единого входа, когда учащийся уже вошел в основную систему школы с помощью идентификатора и пароля учащегося.

Если наша реализация продукта в ASP.NET (в отличие от Java/Ruby), должны ли мы использовать CAS, JOSSO или какой-либо другой сторонний продукт с единым входом? Или есть что-то доступное для среды .NET, что было бы проще для нас, компании .NET?

4b9b3361

Ответ 1

Существует несколько вариантов реализации SSO для .NET-приложения.

Ознакомьтесь со следующими учебниками онлайн:

Основы единого входа, июль 2012

http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO

GaryMcAllisterOnline: ASP.NET MVC 4, ADFS 2.0 и сторонняя интеграция с STS (IdentityServer2), январь 2013

http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html

Первый использует ASP.NET Web Forms, а второй использует ASP.NET MVC4.

Если ваши требования позволяют использовать стороннее решение, также рассмотрите OpenID. Там есть библиотека с открытым исходным кодом, называемая DotNetOpenAuth.

Для получения дополнительной информации прочитайте сообщение в блоге MSDN Интегрируйте OpenAuth/OpenID с существующим приложением ASP.NET с помощью универсальных поставщиков.

Надеюсь, это поможет!

Ответ 2

Я опаздываю на вечеринку, но для варианта № 1 я бы пошел с IdentityServer3 (.NET 4.6 или ниже) или IdentityServer4 (совместим с Core).

Вы можете повторно использовать существующее хранилище пользователей в своем приложении и подключить его к хранилищу пользователей IdentityServer. Затем клиенты должны указывать ваш IdentityServer как открытый поставщик идентификаторов.

Ответ 3

Существует несколько поставщиков удостоверений с поддержкой единого входа, а также сторонние ** продукты.

** Единственная проблема со сторонними продуктами заключается в том, что они взимают плату за пользователя/месяц, и это может быть довольно дорого.

Вот некоторые из доступных инструментов с API для .NET:

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

  • С#

    • IdentityServer3 (протоколы OAuth/OpenID, OWIN/Katana)
    • IdentityServer4 (протоколы OAuth/OpenID, ASP.NET Core)
    • OAuth 2.0 от Okta
  • Javascript

    • passport-openidconnect (node.js)
    • oidc-provider (node.js)
    • openid-client (node.js)
  • Python

    • pyoidc
    • Поставщик Django OIDC

Я бы пошел с приложением IdentityServer4 и ASP.NET Core, оно легко настраивается, и вы также можете добавить свой собственный поставщик аутентификации. Он использует протоколы OAuth/OpenID, более новые, чем SAML 2.0 и WS-Federation.

Ответ 4

UltimateSAML SSO - это инструментарий .NET, соответствующий спецификациям OASIS SAML v1.x и v2.0. Он предлагает элегантный и простой способ добавить поддержку SAML единого входа и единого выхода в ваши приложения ASP.NET, ASP.NET MVC, ASP.NET Core, Desktop и Service. Облегченная библиотека помогает обеспечить единый доступ к облачным веб-сайтам и веб-сайтам интрасети с помощью одной записи учетных данных.

Подробный обзор UltimateSAML SSO можно найти здесь