oauth2与简单登录的优势?

时间:2016-02-24 08:14:10

标签: authentication login oauth-2.0 authorization

如果目标是为各种断开连接的应用程序提供登录功能,那么将其构建为oauth2提供程序(例如openid connect)与提供简单登录相比是否有优势?

换句话说,我看到两个选项,每个选项都会触发各种应用程序的窗口:

选项#1:"登录"打开一个登录页面,提示后端的oauth2流并最终返回成功(使用用户ID和访问令牌)或失败。成功时,令牌用于后续通信(即获取配置文件数据或其他)

选项#2:"登录"打开一个登录页面,它只是检查数据库的用户名/密码并返回成功(使用userid)或失败。成功时,它会为后续通信创建会话(即获取配置文件数据或其他内容)

选择#1是否有任何实际优势?假设第三方应用程序不向全世界开放,而是可以使用任何一种方法的协作项目

1 个答案:

答案 0 :(得分:0)

使用选项1(OpenID Connect),您将获得

  1. 在每个客户端应用程序之间单点登录
    • 自我解释
  2. 用于与共享资源服务器(API)通信的用户特定访问令牌
    • 假设选项2(没有OAuth),则不一定会有任何令牌(尽管可能存在)......只是每个登录的客户端应用程序的会话cookie。
  3. 一个id令牌JWT,它本身包含用户信息
    • 小优点,但不是通过身份验证然后请求配置文件数据(在选项2中),使用JWT,您可以获取配置文件数据作为身份验证响应的一部分
  4. 单个身份验证机制,用于将该关注点与每个客户端应用程序分开
    • 在选项2中,每个客户端应用程序都需要使用DB处理身份验证。在选项1中,授权服务器在一个位置处理此问题。