我的工作区中有两个应用程序,APP 1和APP 2。
在我的情况下,用户将从那里登录到APP 1.我将菜单(或链接)放到APP 2.但是APP 2需要验证。所以它将带我到登录页面。我想消除这一点,并在APP 1上获取当前用户的凭据并登录到APP 2。
我正在寻找一种简单直接的方法(但需要考虑安全性)才能登录APP 2.
我能想到的是apex_collection
..我可以存储凭据n用它来创建APP 2的登录过程。但是apex_collection
是基于会话的。虽然我为APP 2设置了会话,但它仍然无法读取apex_collection
的值。
有没有人有建议或解决方案?
答案 0 :(得分:3)
您需要做的就是在两个应用程序中使用相同的身份验证方案,并在两个身份验证方案中将cookie name属性设置为相同的值,如下所示:
然后,APEX将在两个应用程序中使用相同的会话,当用户从一个应用程序导航到另一个应用程序时,用户将不必再次登录,前提是您在URL中传递了SESSION_ID。
答案 1 :(得分:2)
扩展@TonyAndrews发布的解决方案工作原理的解释可能也会有所帮助。
对于同一工作区内的任何Apex应用程序,如果他们使用默认的“APEX应用程序身份验证”方法,他们将查询相同的身份验证用户列表...所以USER1
及其密码是任何有效的登录名“邻近”的申请......
如果您要托管不应与其他应用程序混合的不同客户端或用户,这可能是一个问题。您还可以在设置每个工作区用户的同一位置定义用户GROUPS
。每个应用程序都可以拥有自己的安全筛选器,允许通过成员访问相应的访问组中的BOTH用户/密码身份验证和成员身份。
由于单个工作区的唯一用户名限制,共享工作区也可能是一个问题。你可以通过以下方式解决这个问题:
为每个应用程序定义不同的名称空间:
为了简单起见,您总是可以启动一个全新的工作区:但是警告是,“ADMIN”之类的常见用户名在不同的工作区之间并不相同。但是,应该没有太多关注,因为应用程序或工作区用户可能对数据库后端具有相同或不同的模式访问权限。
管理员和开发人员的谨慎之词:
当您在面向用户的系统上使用应用程序或多个应用程序时,请记住部署目标(即工作区)以及共享该工作区的其他内容。在某些实际情况下,应用程序不打算由其他“内部”用户共享或访问。请务必阅读并理解使用Default Apex Authentication
安全性的安全约束和方法,以便保护您自己的生产/实时部署的应用程序不仅仅是运气。
答案 2 :(得分:0)
我确实有类似的要求,从一个应用程序页面链接到另一个应用程序页面。 试过上面提到的解决方案,但还是要求登录第二个应用程序。我的Apex ver是5.0.3并尝试在同一个工作区。