猿问

API认证设计

我计划构建一个由两台服务器组成的 Web 服务——一个 API 后端(RESTful 和无状态)和一个 Web 服务器前端。后端将使用 Go 构建,Web 服务器使用 PHP 或 Java 构建。

基本上,我希望多个用户通过使用他们的 facebook 或 google 凭据使用他们的网络浏览器登录,我知道我必须使用 OAuth。

然而,我对如何设计身份验证深感困惑。我可以简单地单独在网络服务器上实现 OAuth,然后使用 API 密钥/秘密来验证网络服务器与我的 API 并通过两者之间的加密连接进行通信。这是否安全并且工作正常,还是应该以其他方式实施身份验证?

我制作了一个简单的 diregram,展示了我如何做到这一点的想法。

慕莱坞森
浏览 189回答 1
1回答

拉风的咖菲猫

解决问题的两种常见方法:可信子系统模型与委托模型可信子系统使用可信子系统模型,为前端的每个用户维护单独的密钥和秘密可能不切实际,可信子系统模型基本上声明具有 api 权限的系统(Web 服务器)负责或受信任进行身份验证/授权用户访问该 api,并被授予这样做的权限。您所做的是为 Web 服务器提供一个帐户,并允许 Web 服务器授权对 api 的访问。委托模式如果您可以控制 api 的身份验证方式,则可以使用与前端相同的方法,并重用最终用户安全主体对后端 api 进行身份验证。
随时随地看视频慕课网APP

相关分类

Go
我要回答