API 认证设计
API authentication design
我计划构建一个由两台服务器组成的 Web 服务 - API 后端(RESTful 和无状态)和 Web 服务器前端。后端将使用 Go 构建,Web 服务器使用 PHP 或 Java。
基本上我希望多个用户通过使用他们的 facebook 或 google 凭据使用他们的 Web 浏览器登录,据我所知我必须使用 OAuth。
然而,我对如何设计身份验证深感困惑。
我可以简单地单独在网络服务器上实现 OAuth,然后使用 API-key/secret 与我的 API 验证网络服务器并通过两者之间的加密连接进行通信。那是安全的并且可以正常工作还是我应该以其他方式实施身份验证?
我制作了一个简单的方向图,展示了我对如何做到这一点的想法。
我真的希望你们能给我指出正确的方向。
解决问题的两种常见方法:
可信子系统模型与委派模型
可信子系统
使用受信任的子系统模型,为前端的每个用户维护单独的密钥和秘密可能是不切实际的,受信任的子系统模型基本上声明系统(Web 服务器)有权访问 api 负责或信任 authenticate/authorise 用户访问 api,并有权这样做。
您要做的是为 Web 服务器提供一个帐户,并允许 Web 服务器授权访问 api。
委托模型
如果您可以控制 api 的身份验证方式,您可以使用与前端相同的方法并重新使用最终用户安全主体对后端进行身份验证 api。
我计划构建一个由两台服务器组成的 Web 服务 - API 后端(RESTful 和无状态)和 Web 服务器前端。后端将使用 Go 构建,Web 服务器使用 PHP 或 Java。
基本上我希望多个用户通过使用他们的 facebook 或 google 凭据使用他们的 Web 浏览器登录,据我所知我必须使用 OAuth。
然而,我对如何设计身份验证深感困惑。 我可以简单地单独在网络服务器上实现 OAuth,然后使用 API-key/secret 与我的 API 验证网络服务器并通过两者之间的加密连接进行通信。那是安全的并且可以正常工作还是我应该以其他方式实施身份验证?
我制作了一个简单的方向图,展示了我对如何做到这一点的想法。
我真的希望你们能给我指出正确的方向。
解决问题的两种常见方法:
可信子系统模型与委派模型
可信子系统
使用受信任的子系统模型,为前端的每个用户维护单独的密钥和秘密可能是不切实际的,受信任的子系统模型基本上声明系统(Web 服务器)有权访问 api 负责或信任 authenticate/authorise 用户访问 api,并有权这样做。
您要做的是为 Web 服务器提供一个帐户,并允许 Web 服务器授权访问 api。
委托模型
如果您可以控制 api 的身份验证方式,您可以使用与前端相同的方法并重新使用最终用户安全主体对后端进行身份验证 api。