質問
私はjdbcを介してPeopleSoftのデータベースにアクセスできるWebアプリケーションを構築しています。 カスタムアプリケーションにPeopleSoftのID /パスワードを使用できるので、私のウェブサイトにアクセスするユーザーは別のユーザー名/パスワードを持っている必要はありませんか?
解決
Peoplesoftは、ユーザーの詳細をテーブルPSOPRDEFNに保存します。
ユーザーはPSOPRDEFN.OPRIDに対してユーザー名を確認できます。
パスワードフィールドはOPERPSWDです。
残念ながら、このフィールドに使用される暗号化関数: hash()
はpeoplecode内からのみ使用可能です。
シングルサインオンを使用する場合は、おそらくsaveprechange peoplecodeでUSERMAINT.gblコンポーネントをカスタマイズし、選択可能な2番目のフィールドに暗号化アルゴリズムを使用してパスワードを保存することにより、これを行うことができます。 JDBCからも実装します。
他のヒント
PeopleSoftセキュリティを再利用する場合は、JDBCよりも高いレベルでデータベースに直接接続する必要があります。コンポーネントインターフェース(Javaでコード化可能)を見るか、SOAPメッセージをPeopleSofts Integration Gatewayに送信できます。どちらの方法でも、独自のセキュリティメカニズムを使用してpeopleSoftに対して認証されます。
以前の方法は、psuser.cをニーズに合わせてカスタマイズし、新しいdllとして再コンパイルし、Microsoftプラットフォームを使用していると想定してプログラムを使用することでした。上記のように、peoplesoft開発者にコンポーネントインターフェースを作成させる(または提供されているものを使用する)ことができます。ラッパーJavaまたはC / C ++コードをCI(テンプレート)からエクスポートできます。このコードを外部プログラムで使用して、CIを呼び出すことができます。いずれにしても、パスワードのために復号化を呼び出すには、peopletoolsとのインターフェースが必要です。
ビジネスがどれほど動的であるかに応じて、毎日多くの従業員を追加するかどうかにかかわらず、アプリメッセージングを使用してpsoprdefnを別のデータベースにエクスポートできます。送信時には、好きなようにパスワードを暗号化できます。しかし、推測できるように、これはリアルタイムではありません。
私がずっと前に覚えていたことの1つは、peoplesoftの技術者にページを開発してもらい、その唯一の機能は私のJavaクラスを呼び出し、必要に応じてユーザー/ pswdを取得することでした。一度手に入れたら、行ってよかったです。
psjoa.jarを使用すると、psoprdefnテーブル内の同じユーザーとパスワードを使用してapp.server経由でサインオンできます。
PeopleSoftにはLDAP統合機能がありますが、構成する必要があります。コンポーネントインターフェースのJavaラッパーを介してアクセスする場合、PeopleSoftで基礎となるコンポーネントのみにアクセスできる特別なアカウントを設定できますが、ログイン/パスワードをコンポーネントインターフェースに渡す必要があります。これは暗号化するか、httpsで送信できます。
PeopleSoftには、「行レベル」と呼ばれるものもあります。セキュリティ-たとえば、コードが特定の事業部門の従業員データまたは特定の事業部門の会計情報にのみアクセスできるように、データセットを分割する機能。これはすべてPeopleSoftオンラインセキュリティアプリケーション内で制御されます。