我希望尽可能避免在我的服务器上进行基于密码的身份验证。为此,我考虑使用OAuth2作为主要访问机制,允许查看成员受限内容。
现在,我希望我的用户能够通过ssh或其他具有强大身份验证功能的非基于网址的渠道向特定客户发放某种形式的授权。然后应将这些内容提供给客户端(例如我的网站的Web界面),用于生成OAuth2定义的访问令牌。
这就是我的意思
# E.g. In bash or any other client
$ ssh auth.example.com
[authorization code]
# Now in a web browser form at forums.example.com
# User enters the code
<input type="text">[authorization code]</input>
# Some redirects occur
# Now at forums.example.com with a valid OAuth2 access token
在我看来,这似乎完全符合OAuth2的规范,不知道是否已经存在实现相同(或非常类似)协议的标准方法?
答案 0 :(得分:0)
首先,OAuth2没有定义应该如何通过站点进行身份验证,只定义授权。像OpenID Connect这样的规范定义了身份验证。
如果您使用的是OpenID Connect,则可以将用户重定向到与提供商进行身份验证,例如google.com。这实际上是带外的,因为它不再是您的用户密码或输入的网站。此外,如果提供商使用ssl(他们应该),我相信它是相当安全的。如果您有一个机密服务器,您只需设置提供程序,使用您将为代币交换的授权代码直接重定向到您的服务器,并存储在用户的会话中。阅读更多here。