我正在构建一个可以通过jdbc访问PeopleSoft数据库的Web应用程序。 是否可以将PeopleSoft的ID /密码用于我的自定义应用程序,因此访问我网站的用户不必拥有其他用户名/密码?

有帮助吗?

解决方案

Peoplesoft将用户详细信息存储在表PSOPRDEFN中。

您将能够验证用户名:PSOPRDEFN.OPRID。

密码字段为:OPERPSWD。

不幸的是,用于此字段的加密函数: hash()仅在peoplecode中可用。

如果您想使用单一登录,您应该可以通过在saveprechange peoplecode中自定义USERMAINT.gbl组件,将密码保存在您选择的第二个字段中,并使用加密算法也可以从JDBC实现。

其他提示

如果要重用PeopleSoft安全性,则需要将比JDBC更高级别的连接直接连接到数据库中。您可以查看组件接口(可用Java编写代码)或将SOAP消息发送到PeopleSofts Integration Gateway - 这两种方法都可以使用自己的安全机制对peopleSoft进行身份验证。

旧方法是根据您的需要自定义psuser.c并重新编译为新的dll,假设您使用的是Microsoft平台,请将其用于您的程序。如上所述,您可以让peoplesoft开发人员创建组件接口(或使用交付的接口)。您可以从CI(模板)导出包装Java或C / C ++代码。然后可以在外部程序中使用此代码来调用CI。无论如何,你必须与peopletools接口,以便为密码调用解密。

根据您的业务动态,无论您是否每天都添加大量员工,您都可以使用应用消息传递将psoprdefn导出到另一个数据库。在发送时,您可以根据需要加密密码。但是你可以猜测,这不是实时的。

我记得很久以前做的一件事是有一个peopleoft技术人员开发一个页面,其唯一的功能是调用我的java类,并根据需要获得用户/ pswds。一旦我拥有它们,我就很高兴。

您可以使用psjoa.jar,这样您就可以使用psoprdefn表中相同的用户和密码通过app.server登录。

PeopleSoft具有LDAP集成功能,但必须进行配置。如果您通过组件接口的Java包装器访问,可以在PeopleSoft中设置一个特殊帐户,只能访问底层组件,但必须将登录/密码传递到组件接口。这可以加密或通过https发送。

PeopleSoft也有它所谓的“行级别”。安全性 - 对数据集进行分区的能力,例如,您的代码只能访问特定业务单位内的员工数据或特定业务线的会计信息。这一切都在PeopleSoft在线安全应用程序中进行控制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top