FormsAuthenticationを使用しているASP.NET/MVC Webサイトがあります。通常のように、ユーザーがページにアクセスしようとしたときに有効なFormsAuthentication Cookieがない場合、IISはユーザーをログインビューにリダイレクトします。ユーザーがログインコントローラにHttpPostを実行すると、コントローラアクションによってWebApi Webサービスが呼び出され、ユーザー名、パスワード、および顧客IDがSQL Serverデータベースに対して検証されます。認証が成功すると、コントローラアクションはFormsAuthenticationクッキーを設定し、ユーザーが要求したページにリダイレクトします。複数のADFSサーバーに対してWebサイトを認証できますか?
「Single Sign-On」についての売り上げは、その意味を明確にしていません。私が読んだところでは、これは通常、MSのActive Directoryフェデレーションサービスにアクセスすることを意味します。
この時点で私はこれがどのように機能するかはほとんど分かりませんでしたが、これを深く掘り下げる前に、認証コードをWebApi Webサービス内に置くことができました.Sqlサーバー指定した顧客に適したADFSサーバーのいずれかに対して、
私たちの問題は、数百人の顧客のために働いている何千人ものユーザーがわからないということです。多くの顧客にはADFSが実行されておらず、それぞれのユーザーはそれぞれ独自のADFSサーバーを備えています。
シングルサインオンに関しては、既にログインしている場合は、ADFSサーバーへのブラウザのリダイレクトを行い、その後リダイレクトしてログインを回避するように見えます。私たちの場合には、そうすることができると思います。リダイレクトするADFSサーバーは、データベースに到達するまでわかりません。
WebAPI WebサービスのC#コードからADFS認証を完全に行うことは可能ですか?
(ウェブサイト自体にはデータベースへのアクセス権がありません)web.configの唯一の設定は、ウェブサービスのベースURLです。どのような認証が行われるのかはウェブサービスではなくウェブサイト)
。あなたは自分のアプリにアクセスし、さらに別のアプリのログインページにリダイレクトされ、認証されたユーザー情報とともにリダイレクトされます。この分離によって、アイデンティティプロバイダは、アイデンティティプロバイダを使用するすべてのアプリケーションを煩わせることなく、新しい機能(2つの要素の認証など)を導入することができます。そして、そうではありませんが、Microsoftの世界ではSSOはADFSに結びついていません。それは単なるオプションの1つです。 –