0

我必须创建一种方法来保持从应用程序A到应用程序B的会话身份验证,但我不能使用:

  • 单点登录
  • POST 调用

而且,我们知道 GET 不是一个好的选择,但我需要使用它。所以,我认为使用“公钥”之类的东西,你对这种方法有什么看法?

我认为:

  1. 用户在应用程序 A 中进行身份验证。
  2. 进入应用程序A,有一个应用程序B的链接;用户点击此链接
  3. 应用程序 A 打开应用程序 B 页面发送“公钥”(数据库持久认证密钥?)
  4. 应用程序 B 验证此密钥并授权或不授权用户。
4

1 回答 1

1

在第 3 步中,不要考虑“公钥”,而是考虑“会话令牌”。具体来说,A 重定向到 B

http://b.application.com?token=123-3-2-1-3-2-2-1-2-32-3-5-2-4-5245

令牌应该是唯一且短暂的。

B 然后直接联系 A并询问会话令牌背后的身份:

http://a.application.com/userservice/getuser/123-3-2-1-3-2-2-1-2-32-3-5-2-4-5245

因为 B 直接联系 A,所以用户无法伪造无效令牌 - 随机令牌只是指向 A 上不存在的会话。

于 2013-08-14T13:21:16.180 回答