RESTful服务中的自定义手动Oauth2身份验证

时间:2016-05-05 19:42:48

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

我正在使用Spring Boot为我们的移动应用程序开发一些RESTful服务。我通过用户名和密码注册成功实现了Oauth2身份验证。用户可以使用用户名和密码进行身份验证。我们的客户也希望使用自定义令牌进行身份验证。他们有一个Web服务,您发送令牌和响应是真是假。

我的第一个想法是,我可以编写像 / custom-login 这样的服务,该服务接受自定义令牌。在我的服务中,我可以使用外部服务检查此令牌,如果它有效,我调用oauth2身份验证并返回oauth2身份验证响应。

如何实现自定义身份验证oauth2?

1 个答案:

答案 0 :(得分:1)

OAuth2.0规范允许自定义授权类型

因此,您的auth服务器可以创建自定义授权类型

例如:假设您希望使用Google访问令牌向Google进行身份验证,因此您将创建名为 google_token 的新grant_type

现在,当您的用户想要使用Google访问令牌进行身份验证时,他们会像

一样通过
grant_type=google_token&client_id=clientId&client_secret=secret&google_token=google-access-token

然后,您的身份验证服务器可以通过Google验证访问令牌,并可选择验证客户端是否已发出等,一旦验证,它就可以返回您自己的访问令牌

这适用于第三方授权服务器,因此您可以创建多个自定义授权类型