我正在尝试实施OAuth2 Provider,它使用自定义登录对用户进行身份验证。 为了理解,我查看了Spring Boot OAuth2 Tutorial。 我不太了解,如何实现我自己的身份验证机制,以便从我的服务器使用OAuth2 SSO。
我想添加自定义身份验证机制(例如“用户必须回答身份验证问题”或“用户必须输入身份验证和点击按钮进行身份验证”),而不是Facebook和Github示例。
我读到了关于实现我自己的AuthenticationProvider的信息,但是如果我把所有的拼图部分组合在一起我就陷入了困境。
答案 0 :(得分:0)
让我们一步一步走。 OAuth只是authz提供商,所以不要谈论身份验证。现在特别针对您的用例,如果您希望对用户进行身份验证,那么基于OAuth authz代码的流程是有意义的(您甚至可以选择隐式流程,请查看rfc 6749)。现在,这将如何为您服务。为了简单起见,我正在接受隐式流程,Authz流程只是它的扩展,终端客户端获取临时代码,稍后它与Identity Server交换以获取访问令牌。以下是步骤:
客户端应用程序根据rfc 6749使用数据命中/授权uri
验证提交的数据后,服务器会将用户转发到“登录”页面(或其他用于身份验证的页面)。身份验证后,cookie将在浏览器中设置,或者数据存储在服务器中以将用户标记为已通过身份验证。