シングルサインオンにCASプロトコルまたはOAuth +一部の認証プロバイダーを使用する必要があるのかと思います。
シナリオ例:
- ユーザーが保護されたリソースにアクセスしようとしましたが、認証されていません。
- アプリケーションはユーザーをSSOサーバーにリダイレクトします。
- 認証されている場合、ユーザーはSSOサーバーからトークンを取得します。
- SSOは元のアプリケーションにリダイレクトします。
- 元のアプリケーションは、SSOサーバーに対してトークンをチェックします。
- トークンに問題がなければ、アクセスが許可され、アプリケーションはユーザーIDを認識します。
- ユーザーはログアウトを実行し、接続されているすべてのアプリケーションから同時にログアウトされます(シングルサインアウト)。
私が理解している限り、それはまさにCASが発明したものです。CASクライアントは、認証サービスを使用するためにCASプロトコルを実装する必要があります。今、私はクライアント(コンシューマー)サイトでCASまたはOAuthを使用することを考えています。OAuthはCASのその部分の代替品ですか?新しい事実上の標準としてのOAuthを優先すべきですか?ユーザー名/パスワード、OpenID、TLS証明書などのさまざまな方法をサポートするCASの認証部分の使いやすい(Sun OpenSSOではありません!)置き換えはありますか?
環境:
- さまざまなアプリケーションがSSOサーバーの認証に依存し、セッションのようなものを使用する必要があります。
- アプリケーションは、GUI Webアプリケーションまたは(REST)サービスにすることができます。
- SSOサーバーは、ユーザーIDを提供する必要があります。これは、中央のユーザーインフォメーションストアからロールや電子メールなどのユーザーに関する詳細情報を取得するために必要です。
- シングルサインアウトが可能である必要があります。
- ほとんどのクライアントはJavaまたはPHPで記述されています。
OAuthの後継となる可能性のあるWRAPを発見しました。これは、Microsoft、Google、Yahooによって指定された新しいプロトコルです。
補遺
OAuthは、SSOを実装するために使用することもできますが、OpenIDのようなSSOサービスと一緒にのみ使用できるように認証用に設計されていないことを知りました。
OpenIDは「新しいCAS」のようです。CASにはOpenIDが欠落する機能(シングルサインアウトなど)がいくつかありますが、特定のシナリオで欠落しているパーツを追加することは難しくありません。OpenIDは広く受け入れられていると思います。OpenIDをアプリケーションまたはアプリケーションサーバーに統合することをお勧めします。CASもOpenIDをサポートしていることは知っていますが、CASはOpenIDを必要としないと思います。