我安装了Oracle APEX 5.1和Oracle Forms 6i。
现在我想知道如何从Forms菜单中调用Oracle APEX应用程序。
Option 1: Full URL to aplication + parameters username/password - not safe
Option 2: Full URL to aplication log in - not elegant.
我正在寻找的是带参数username,password, aplication ID, ...
并将完整URL返回到应用程序的函数。
这是可能的/最好的方法吗?
答案 0 :(得分:1)
您可能最好看一种新的身份验证方式,避免完全需要密码,但仍然是安全的。一种方法是从Forms应用程序调用一个过程,该过程生成一个特定于用户的单次使用的短期令牌,然后将该令牌与用户名一起传递给APEX。然后,APEX认证方案检查令牌是否是当前的并且对用户有效,如果允许则允许访问。
例如,令牌可以作为随机字符串生成,并以散列形式存储在用户数据库记录中(与用户名一起作为salt)以及生成时间的时间戳。验证方案检查传递的令牌是否与用户记录和上的令牌相同,即用户记录上的时间戳在最后N秒内。然后它可能会在数据库中将令牌重置为NULL。关键点在于它必须是“不可能的”(阅读:非常难),任何人都可以猜出令牌是什么,即使他们可以看到表中的散列值。