C# ASP.NET реализация единого входа
Мне поручили реализовать единый вход для наших клиентов в рамках нашего следующего выпуска. Поток существует следующим образом:
- пользователь входит в систему главного портала своей школы, используя идентификатор ученика/пароль, предоставленный ему школой.
- пользователь нажимает на ссылку на продукт моей компании.
- Пользователь автоматически переходит на страницу dashboard, как если бы он только что вошел в систему через форму входа на нашем сайте.
таким образом, существует два механизма, с помощью которых пользователь может пройти аутентификацию на нашем сайте:
- переход на домашнюю страницу нашего продукта и вход в систему с помощью электронной почты/пароля, который мы храним в нашей локальной системе.
- С помощью единого входа, где студент уже вошел в основную систему школы с идентификатором студента и паролем.
Если реализация нашего продукта находится в ASP.NET (в отличие от Java / Ruby), должны ли мы использовать CAS, JOSSO или некоторые другие сторонний продукт для единого входа? Или есть что-то доступное для среды .NET, что было бы проще для нас, как для компании .NET?
4 ответа:
существует несколько вариантов реализации единого входа для приложения .NET.
проверьте следующие учебники онлайн:
основы единого входа,июля 2012
http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO
GaryMcAllisterOnline: ASP.NET MVC 4, ADFS 2.0 и сторонняя интеграция STS (IdentityServer2),Jan
http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html
первый использует ASP.NET веб-формы, в то время как второй использует ASP.NET MVC4.
Если ваши требования позволяют использовать стороннее решение, также рассмотрите OpenID. Есть библиотека с открытым исходным кодом под названием DotNetOpenAuth.
для получения дополнительной информации, прочитайте сообщение в блоге MSDN интеграция OpenAuth/OpenID с вашим существующим ASP.NET применение с использованием универсальных провайдеров.
надеюсь, что это помогает!
Я опаздываю на вечеринку, но для варианта №1 я бы пошел с IdentityServer3(.NET 4.6 или ниже) или IdentityServer4 (совместимо с базовый).
вы можете повторно использовать существующий магазин пользователей в своем приложении и подключить его к хранилищу пользователей IdentityServer. Затем клиенты должны быть указаны на ваш IdentityServer в качестве поставщика open id.
есть несколько поставщиков удостоверений личности с поддержкой SSO из коробки, а также сторонних** продуктов.
** единственная проблема с сторонними продуктами заключается в том, что они взимают плату за пользователя/месяц, и это может быть довольно дорого.
некоторые из инструментов, доступных и с API для .NET являются:
- IdentityExpress (С пользовательским интерфейсом администратора) по IdentityServer
- Centrify Удостоверения Сервис
- Окта идентичность (SAML 2.0)
- после
Если вы решите пойти с вашей собственной реализацией, вы можете использовать фреймворки ниже категории по языку программирования.
C#
- IdentityServer3 (протоколы OAuth / OpenID,OWIN / Katana)
- IdentityServer4 (протоколы OAuth / OpenID,ASP.NET Ядро)
- OAuth 2.0 by Okta
Javascript
- passport-openidconnect (node.js)
- oidc-provider (node.js)
- openid-client (node.js)
Python
- pyoidc
- Джанго поставщика OIDC
Я бы пошел с IdentityServer4 и ASP.NET основное приложение, это легко настраивается, и вы также можете добавить свой собственный поставщик аутентификации. Он использует OAuth / OpenID протоколы, которые являются более новыми, чем SAML 2.0 и WS-Federation.
UltimateSAML SSO-это оазис SAML v1.X и v2.0 спецификации совместимый .NET toolkit. К услугам гостей элегантный и простой способ, чтобы добавить поддержку для одного входа и одного выхода из SAML для вашего ASP.NET, ASP.NET в MVC, ASP.NET основной, рабочий стол и приложения-Службы. Легкая библиотека помогает обеспечить единый вход для доступа к облачным и интранет-сайты с использованием единого входа учетных данных.