2017-12-18 41 views
0

私は、それぞれ独自のユーザーテーブルを持つ異なるドメインで複数のサービスを利用できます。単純なセントラル認証サービス - サービス間の移動

私はシンプルな統合認証システムとシングルサインオンの実装に取り​​組んでいます。

これまでは、ユーザーにCASページの登録/ログインを許可し、認証コードと共に選択したサービスにリダイレクトさせるためのワークフローを作成しました。

サービスは、access_tokenはのためのコードを交換し、ユーザの詳細を取得し、/ユーザーを更新し、それらをログに記録が作成されます。

私は、彼らがサービスの一つに認証された後、ユーザーがサービス間を移動できるようにしたいです。

目的は、複数のサービス間でシームレスなナビゲーションを提供することです。

ユーザーが別のサービスにナビゲートすると、明らかにそのサービスがCASサーバーとの間で独自の承認トランザクションを行う必要があります。

すべてのサービスが中央認証サービスとSSOを使用している場合、サービス間の無差別なナビゲーションを作成するにはどうすればよいですか。

+0

oauthフレームワークを調べる必要があります。 –

+0

@HyderB。コメントをありがとう - 私はOAuthのワークフローを見てきました - ユーザーが複数のサービス間をどのようにナビゲートできるかを理解できませんでした – ImpendingDoom

答えて

0

サービスがすべてCASと統合されている場合、各サービスはCASに連絡して何らかのトークン/チケットを取得し、CASに検証してユーザープロファイルを受け取る必要があります。 CASがSSOセッションを確立できるように、認証の実際の行為は1回だけ行われますが、チケットの取得と検証のタスクは通常、アプリケーションがユーザーの認証を決定したとき(セッションの期限切れなど)に1つずつ実行されます。

同じ概念は、認証プロトコルに関係なくほぼ同じです。 (OAuth、CASなど)。これは多かれ少なかれあなたのサービスがブラウザに関係しているWebベースであると想定しています。あなたが他のバックエンドサービスをプロキシするサービスを持っているなら、同じ解決策はやや複雑になります。