0

我们的应用程序已经是委托给多个授权服务器的客户端。关键是我们有用户帐户,但我们不存储任何凭据。我们的用户来自 Facebook / Google / 等,他们的本地帐户是自动创建的。

现在,随着该应用程序的发展,其他应用程序希望与我们的 API 集成,因此我们希望提供自己的 OAuth2 端点。我们正在实现一个成熟的 OAuth2 服务器,将部分委托给 Facebook/Google/whatnot,否则作为普通服务器工作(发出我们自己的访问令牌、刷新令牌等)。这是预期的事情吗?标准中有什么特定于这个用例的吗?

4

1 回答 1

0

你的做法很正常。今天你实现了资源服务器,谷歌等是授权服务器。您正计划实施一个新的授权服务器。从逻辑上讲,这将与资源服务器完全不同,即使它可能位于同一物理服务器上。

但是,实现授权服务器相对复杂,因为它旨在支持多个独立的客户端。如果您不想支持其他第 3 方客户端,您可以为自己的身份验证选择更简单的成员资格提供程序类型模型,并为外部身份验证提供程序保留 OAuth 部分。也就是说,只需在您的应用程序中有一个登录页面,将用户名和散列凭据保存在您的数据库中并使用应用程序会话。提供一些 UI 让用户选择使用您的会员提供商“本地”登录,还是使用外部的。

许多网站采用这种双重方法(例如 StackOverflow 本身 ​​- 您可以使用 Facebook 或 SO 帐户登录)。这将比成熟的 OAuth 2 授权服务器更省力。

于 2013-06-24T22:51:23.920 回答