ユーザーがOracleフォームとjsfを使用して作成された他のいくつかのアプリケーションにアクセスできるWebページを作成するように依頼されました。これにはssoも含まれます。簡単な方法は考えられません。ユーザーは各アプリケーションのすべてのユーザー名/パスワードを登録して入力する必要があります。その後は、このページ用に作成したユーザー名/パスワードのみを処理します。
私が聞きたかったのは、これが良い考えなのか、それともこれに対処するためのより良い方法があるのかということでした。
しないでくださいあなたの考えをしてください!
アプリケーションの基本的なパスワードのアドバイスについては、 'if password == XXXXXXX'で十分ですか? を参照してください。事実上すべての場合、値を取得できないようにパスワードをハッシュする必要があります。
重要:アイデアを継続する場合は、複数のアプリケーションの取得可能なパスワードを1か所に保存しただけです。これははるかに悪いことです。 oneアプリケーションの取得可能性の原則に違反するよりも。 したがって、これらのアプリケーションが適切なセキュリティプラクティスを実装していても、この傍受手順によってすべてが破壊されます。
シングルサインオン 通常、認証トークンを共有する方法で実装されます(各アプリケーションが同じベンダーによって作成され、同様のデータベースフィールドを共有し、その有効性を認証できる場合に使用できます)トークン)、または単一の認証サーバー( OpenId )、またはその記事に記載されている他の手段の1つ。
それは常に非常に複雑であり、このトピックと一般的なセキュリティについて非常に高度な理解が必要です。
したがって、第一印象は正しかった-[〜#〜] sso [〜#〜]が関係している場合、それを行う「簡単な」方法はありません。 SSO要件により、このプロジェクトは現在の手段を超えているように聞こえます。特に、SSOを提供する「Webページを作成する」ように求められた場合はそうです。
Oracle Access Manager の機能の一部を再作成するように求められているように思われます。これは、ここで適用できる場合とできない場合がある既製のWSSOソリューションです。
Atlassian Crowd(最大50ユーザーで$ 10)やOracle AccessManagerなどの既成のSSOソリューションを検討することを強くお勧めします。おそらく、アプリケーションにOpenIDを使用させて、認証を担当しないようにしますが、ユーザーが誰であるかはわかっています。いずれにせよ、SSOは重要な問題です。私はこれまで、既存のSSOソリューションのクライアント側統合部分を作成しただけであり、ほとんどの人にそれをお勧めします。