web-dev-qa-db-ja.com

C#ASP.NETシングルサインオンの実装

次のリリースの一環として、お客様にシングルサインオンを実装する任務を負っています。フローは次のとおりです。

  1. ユーザーは、学校から提供された学生ID /パスワードを使用して、学校のメインポータルシステムにログインします。
  2. ユーザーが私の会社の製品へのリンクをクリックします。
  3. ユーザーは、サイトのログインフォームからログインしたかのように、自動的にダッシュボードページに移動します。

したがって、ユーザーが私たちのサイトに認証される2つのメカニズムがあります:

  1. 製品のホームページにアクセスし、ローカルシステムに保存されている電子メール/パスワードを使用してログインします。
  2. 学生が学生IDとパスワードを使用して学校のメインシステムにすでにログインしているシングルサインオンを使用します。

製品の実装が(Java/Rubyではなく)ASP.NETである場合、CAS、JOSSO、または他のサードパーティのシングルサインオン製品を使用する必要がありますか?または、.NET会社としてより簡単な.NET環境で利用できるものはありますか?

67
Adam Levitt

.NETアプリケーションにSSOを実装するには、複数のオプションがあります。

オンラインで次のチュートリアルを確認してください。

シングルサインオンの基本2012年7月

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

GaryMcAllisterOnline:ASP.NET MVC 4、ADFS 2.0、およびサードパーティSTS統合(IdentityServer2)2013年1月

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

1つ目はASP.NET Webフォームを使用し、2つ目はASP.NET MVC4を使用します。

要件によりサードパーティのソリューションを使用できる場合は、OpenIDも検討してください。 DotNetOpenAuthと呼ばれるオープンソースライブラリがあります。

詳細については、MSDNブログ投稿 niversal Providersを使用して既存のASP.NETアプリケーションとOpenAuth/OpenIDを統合する を参照してください。

お役に立てれば!

54
Shahed C - MSFT

私はパーティーに遅れていますが、オプション#1の場合、 IdentityServer (。NET 4.6以下)または IdentityServer4Core)と互換性があります )。

アプリで既存のユーザーストアを再利用し、それをIdentityServerのユーザーストアにプラグインできます。次に、クライアントは、オープンIDプロバイダーとしてIdentityServerを指す必要があります。

10
Evdzhan Mustafa

SSOをサポートするいくつかのアイデンティティプロバイダー、サードパーティ**製品もあります。

**サードパーティ製品の唯一の問題は、ユーザー/月ごとに請求することであり、かなり高価になる可能性があります。

.NET用のAPIで使用可能なツールの一部は次のとおりです。

独自の実装を採用する場合は、プログラミング言語ごとに分類された以下のフレームワークを使用できます。

  • C#

    • IdentityServer3(OAuth/OpenIDプロトコル、OWIN/Katana
    • IdentityServer4(OAuth/OpenIDプロトコル、ASP.NET Core
    • OktaによるOAuth 2.0
  • Javascript

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

    • pyoidc
    • Django OIDCプロバイダー

IdentityServer4とASP.NET Coreアプリケーションを使用します。構成は簡単で、独自の認証プロバイダーを追加することもできます。 SAML 2.0およびWS-Federationよりも新しいOAuth/OpenIDプロトコルを使用します。

7
Alex.H

UltimateSAML SSOは、OASIS SAML v1.xおよびv2.0仕様に準拠した.NETツールキットです。 ASP.NET、ASP.NET MVC、ASP.NET Core、デスクトップ、およびサービスアプリケーションにシングルサインオンおよびシングルログアウトSAMLのサポートを追加するエレガントで簡単な方法を提供します。軽量ライブラリは、単一の資格情報エントリを使用して、クラウドおよびイントラネットWebサイトへのSSOアクセスを提供するのに役立ちます。

詳細なUltimateSAML SSOレビューはこちらにあります

3
brunoid