私は、私たちが作成した 3 つの異なる Web アプリケーションのSSOソリューションに取り組み始めており、同じクライアント用に維持しています。
つまり、3つすべてが、基本的な安らかなAPIサービスを提供する4番目の個別のアプリケーションを介して、ユーザーとログイン情報を同じ場所に保存します. これは基本的に、ログインしようとすると、このユーザー名とパスワードが正しいかどうかを尋ねる残りのサービスを実際に呼び出すことを意味します。
ある意味では、この 4 番目の安らかなものは、私たちが必要とする仕事の少なくとも半分を既に果たしています。
ここで必要なのは、ユーザーが Web アプリ A にログインし、リンクをたどって (または単純にその URL を入力して) Web アプリ B にアクセスし (または単純にその URL を入力して)、既にログに記録されている(またはその逆) にアクセスできるようにする方法です。
私はCASやopenID、さらにはoauthについてたくさん読んできましたが、それについて本当に決心することはできません。このパターンは集中型ですか?分散型?
私の 10,000 フィートのビューは、この「不足している機能」を安静な API サーバーに追加する必要があることを示唆しています。
しかし、どのように?
ps: これら 3 つは完全に分離されています。異なるマシンにデプロイされています (そのうちの 2 つは GlassFish で実行され、もう 1 つは Tomcat で実行されます)。異なるドメインも。
pps: それらはすべてスプリング駆動の Web アプリケーションです (したがって、spring-securityを使用します)
ppps: 今日の時点で、私たちの restul API を使用している他の Web アプリケーションがあります (非スプリング、非 Java)。この sso ソリューションは、それらを処理する準備ができている必要がある場合があります。