我需要创建一个自己的OAUTH Provider,以验证第三方应用程序请求,我不想使用Google,Twitter,LinkedIn,Microsoft提供商。我必须创建自己的提供程序来验证请求并将访问令牌返回给客户端。但网上的所有帮助都与外部提供商有关(谷歌,LinkedIn,Twitter,Facebook ......)。任何人都可以帮助我创建自己的自定义提供程序吗?
答案 0 :(得分:7)
正如罗兰所说,如果你完成规范,它就会非常直接。
在高级别,您需要做的是支持AuthCode授权模式:
假设: 您的应用程序拥有用户。
当客户端点击授权终点时,如下所示:
/authorize?response_type=code&client_id=<clientID>&state=xyz&redirect_uri=http://thirdparty.com
这里有回调示例
https://thirdparty.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
然后,客户端将使用authcode调用/ token URI,如下所示:
/token?grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=http://thirdparty.com
生成令牌,将其存储在clientID,UserId并使用令牌回复。 像下面的东西
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
当第三方访问您的服务/资源时,针对客户端和用户ID验证令牌并授予或拒绝访问权限。
这是开始使用但可以使用范围和其他OAuth2模式进行更多自定义。