6

複数の教育機関に対応する SaaS Web アプリケーションがあります。すべてのクライアントは、同じアプリケーション/データベースでホストされています。アプリケーションは現在、ASP.Net 4 Web フォーム用に C# で作成されています。

現在、私のアプリケーションは、ユーザー認証/承認にローカル/ネイティブ データベースを使用しています。

私たちのクライアントは、クライアントが認証プロバイダーであり、私のアプリケーションがコンシューマーであるシングルサインオンをサポートするように私たちに求めています.

問題は、クライアントが Shibboleth や OpenID Connect などのさまざまなプロトコル/メカニズムを介して SSO を要求していることです。これは、これらすべてで機能する、または少なくとも拡張可能なソリューションを作成する必要がある/作成する必要があることを意味します。

Thinktecture の IdentityServer に出会いました。これは、クライアントが使用するさまざまな SSO メカニズムを抽象化し、アプリが理解できるクレーム ベースの ID トークンをアプリに返すことができると思います。

しかし、私はこの概念に多くの苦労をしています。これは、私のアプリがすべての認証要求を IdentityServer にリダイレクトし、IdentityServer に OpenID Connect のやり取りを処理させてから、IdentityServer からユーザーについて必要な情報を含むトークンを受信することを意味しますか? ID サーバーはユーザーのレルムをどのように認識しますか (つまり、どのクライアント認証プロバイダーにユーザーを送信するかを認識します)。IdentityServer は、アプリのローカル/ネイティブ データベースでユーザーの存在を検証する必要がありますか? IdentityServer は SSO とローカル ログインの両方を処理できますか?

個別の ID サーバーを使用する方法はありますか? 私のアプリが 1 つのポイント (ID サーバー) と統合できるようになるようです。しかし、Thinktecture の IdentityServer に関するドキュメントは、構成方法以外にはあまりありません。ADFS は同様のソリューションを提供する場合がありますが、そこにあるほとんどの例は ADFS と Azure を対象としています。

最後に、サードパーティの認証プロバイダーはアプリケーションの特定の承認ニーズを認識できない可能性があるため、各ユーザーに関するローカル/ネイティブの承認データを引き続き維持すると想定しています。

そこに何か考えや提案はありますか?

4

1 に答える 1

8

これは、私のアプリがすべての認証要求を IdentityServer にリダイレクトし、IdentityServer に OpenID Connect のやり取りを処理させてから、IdentityServer からユーザーについて必要な情報を含むトークンを受信することを意味しますか?

基本的にはい。しかし、それはあなたがそれをどのように設定するかに依存します。クライアントまたは認証プロバイダーが 1 つしかない場合、ページはクライアントの認証プロバイダーを呼び出すことができます。または、ローカルの IdentityServer (より拡張可能な IMHO) をセットアップし、クライアントの認証プロバイダーを別の IdP (ID プロバイダー) として構成することもできます。

ID サーバーはユーザーのレルムをどのように認識しますか (つまり、どのクライアント認証プロバイダーにユーザーを送信するかを認識します)。

2 番目のオプションを選択すると、アプリは IdentityServer にリダイレクトされ、ホーム レルムに基づいて自動的に IdP にリダイレクトされます。アプリケーションでホーム レルムが指定されていない場合、IdentityServer は構成されたすべての IdP を表示し、ユーザーは認証する IdP を選択します。

IdentityServer は、アプリのローカル/ネイティブ データベースでユーザーの存在を検証する必要がありますか?

あなた次第です。ローカル データベースでユーザーの存在を確認したい場合は、IdentityServer を拡張することで確認できます。

IdentityServer は SSO とローカル ログインの両方を処理できますか?

はい、できます。

個別の ID サーバーを使用する方法はありますか? 私のアプリが 1 つのポイント (ID サーバー) と統合できるようになるようです。

いつでも IdentityServer を使用して、ローカル アプリケーションに統合できます。または、Shiboleth をローカル認証プロバイダーとして使用することもできます。どちらも WS-Federation、WS-Trust、OpenId などの標準を実装しており、どちらもオープン ソースであるため、好みに合わせて拡張/変更できます。

しかし、Thinktecture の IdentityServer に関するドキュメントは、構成方法以外にはあまりありません。

どれだけのドキュメントがあるかはわかりません。しかし、ご希望であれば、NDC Oslo 2014 では 2 日間のプレカンファレンス ワークショップを開催し、Dominick Baier と Brock Allen (IdentityServer の作成者) が知りたいことをすべて教えてくれます。

于 2014-03-17T20:08:21.753 に答える