我的OAuth2客户端也可以发出自己的访问令牌吗?

时间:2013-01-18 09:28:30

标签: oauth-2.0

我们的应用程序已经是一个委托给多个授权服务器的客户端。关键是我们有用户帐户,但我们不存储任何凭据。我们的用户通过Facebook / Google / etc进行身份验证,并自动创建其本地帐户。

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

1 个答案:

答案 0 :(得分:0)

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

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

很多网站采用这种双重方式(例如StackOverflow本身 - 您可以使用Facebook或SO帐户登录)。它比完整的OAuth 2授权服务器更省力。