【问题标题】:Spring security oauth2 : grant_type=password AuthenticationSpring security oauth2:grant_type=password 身份验证
【发布时间】:2015-11-25 20:55:21
【问题描述】:

我正在使用Spring Oauth 2 来保护 Web 应用程序并实施三足安全系统,当涉及到使用

grant_type=password

我注意到用于获取用户令牌的 URL 是:

Method : POST + Basic-Authentication header for the client

http://host:port/api/oauth/token?grant_type=password&username=xxxxx&password=xxxx

还有我的问题:

这种方法是否足够安全,因为它在 URL 上共享用户的凭据,如果不是,有什么替代或改进?

向主机添加SSL 认证是否可以解决这个问题?

谢谢

【问题讨论】:

    标签: java spring spring-security oauth-2.0 spring-security-oauth2


    【解决方案1】:

    通过加密媒体进行明文身份验证并不少见 - 因此通过加密连接使用未加密密码。

    但是,我不会在 URL 中发送凭据。它看起来很糟糕,同一用户可能会为该 URL 添加书签。

    您可以将凭据放在 HTTP 标头 中,只要您通过加密连接发送它们就可以了。


    您的另一个选择是:

    1. 让服务器为自己创建公钥和私钥
    2. 使用身份验证/登录页面发送公钥
    3. JavaScript 使用公共密钥对用户名和密码进行加密
    4. 通过 HTTP 或 HTTPS 发送(我仍然会将其放在标头而不是 URL 中)
    5. 服务器使用私钥解密和验证凭据

    tl;dr
    最简单的解决方案是 HTTP 标头中的 HTTPS 和明文凭据

    【讨论】:

    • 当您请求访问令牌时,使用 Oauth2,grant_type,用户名和密码需要成为 URL 或正文的一部分,HTTPS 具有安全性,您不能将这些参数放在标头中
    猜你喜欢
    • 2015-04-10
    • 2019-01-28
    • 2015-04-27
    • 2018-01-08
    • 1970-01-01
    • 2014-09-15
    • 2017-06-14
    • 1970-01-01
    • 2016-04-22
    相关资源
    最近更新 更多