C# ASP.NET реализация единого входа


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

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

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

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

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

4 59

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 являются:

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

  • 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 основной, рабочий стол и приложения-Службы. Легкая библиотека помогает обеспечить единый вход для доступа к облачным и интранет-сайты с использованием единого входа учетных данных.

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