既存の Web ベースのアプリケーションの SSO に CAS サーバーを使用しようとしています。私たちの目標は
- さまざまなアプリケーション (クロス ドメインを含む) で SSO を実現します。
- アプリが CAS サーバーのログイン ページにリダイレクトされるときに、さまざまなアプリ用にカスタマイズされたログイン ページ (UI 用語) を用意します。
- CAS ログイン ページに移動せずにログインできる機能。その理由は、「小さなログイン セクション」がページ自体に埋め込まれており、ユーザーがより使いやすくするために CAS ログイン ページにリダイレクトされないためです。
1つ目と2つ目のゴールができました。しかし、3番目のものに問題があります。
この機能のために、2 番目の目標と同じアクションを再現しようとしていますが、CAS 以外のログイン ページからのデータ (資格情報、ログイン チケットなど) の送信/投稿のみが異なります。
- 小さなセクションに iframe を使用して CAS ログイン ページを表示することはできません。これは、ブラウザの互換性の問題に対して脆弱です。
- ajax を使用して CAS API を使用してログイン チケットを取得し、HTTP ポストを実行することはできません (クロス ドメインの問題)。
- サーバー側で HTTP ポストを実行することにより、非 cas ログイン ページのロード時に loginticket と実行 ID を取得します。loginticket および execId とともにユーザー名/パスワードを投稿すると、投稿データを受け入れる代わりに CAS サーバーがユーザーを CAS ログイン ページにリダイレクトしますが、ブラウザを元に戻してデータを再度送信すると正常に動作します。理由は、CAS とブラウザーの間で jsession が確立されていないため、CAS は投稿データを拒否します。CAS の restAPI を使用できますが、ユーザーがログインするだけで、SSO の実行には役立ちません。
この問題をどのように処理できるかについて何か考えはありますか??
ありがとう、プラティック