我们希望从外部网络为用户提供peopleoft门户访问.但..访问需要只读,非常有限.
有没有人完成基于位置的角色启用是peopleoft ..即禁用所有角色并仅启用基于IP地址或Web服务器的特定角色?
我做了类似的事情,使用DNS条目来确定内部/外部访问.用户希望在所有用户登录PeopleSoft时强制进行自助访问(如果他们在家),但如果他们通过VPN或桌面登录,则为用户提供完全访问权限.这样,高级用户将无法获得完全的安全性,除非他们通过VPN或工作进行身份验证.
我们通过自定义USERMAINT组件,为"自助服务"安全性创建了一个新的安全表,添加自定义Signon PeopleCode,以及设置为外部访问公开的第二个DNS条目.
首先,网络管理员设置两组指向PS Web服务器的DNS条目.例如,psoft.company.com是内部DNS,仅用于本地网络访问,selfservice.company.com是可用于全局访问的外部DNS.
接下来,我们定制了USERMAINT组件(用户配置文件).我们隐藏了已交付的角色标签,并将其替换为副本.新页面指向PSUSERROLE的副本.我们这样做是因为我们希望使用交付的PSROLEUSER表作为"当前"安全表.如果安全管理员想要更新用户内部(或日间工作)安全性,我们希望长期存储.(这将在下面更有意义).因此,新的自定义表,例如XXROLEUSER,现在是安全性的主表.
然后,我们为安全管理员添加了记录/页面/组件来定义"自助服务"安全性(XXSSROLES).此记录/页面仅存储用户在外部登录时的角色名称.这允许安全管理员更新季节性更改的自助服务安全性,例如Open Enrollment.管理员可以在Open Enrollment期间添加角色以授予其他访问权限,然后在期间结束时将其删除.
最后,我们创建了一个自定义Signon PeopleCode步骤来处理内部/外部安全开关.Signon PeopleCode获取用于登录的URL.代码解析URL以查看DNS条目是否用于访问系统.如果DNS条目是"selfservice.company.com",代码将清除该行中PSROLEUSER用户和从XXSSROLES表中插入的角色.如果DNS条目是"psoft.company.com",则代码将清除PSROLEUSER并从XXROLEUSER表中插入角色.
此代码更改将PSROLEUSER转换为事务表.由于Tools系统依赖于此表来实现许多不同的安全功能,因此创建一个副本以用作"用户配置文件"组件中使用的"主表"非常重要.
如果这是您有兴趣尝试的内容,我很乐意为Signon PeopleCode发布一些示例代码.
我将Signon PeopleCode函数上传到GitHub(参见下面的链接).您可以创建自定义记录来存储PeopleCode,然后将其添加到Signon PeopleCode页面中.如果您需要更多信息,请告诉我们.我无法发布整个技术规范,但如果您有疑问,我很乐意提供帮助.
http://github.com/iversond/PeopleTools-Dynamic-Login