2013-01-18 31 views
0

我们的应用程序已经是委托给多个授权服务器的客户端。重点是我们有用户帐户,但我们不存储任何凭证。我们的用户来自Facebook/Google /等认证,并且他们的本地帐户是自动创建的。我的OAuth2客户端是否也可以发出自己的访问令牌?

现在,随着此应用程序的发展,其他应用程序希望与我们的API集成,因此我们希望提供我们自己的OAuth2端点。我们正在实施一个全面的OAuth2服务器,将委托给Facebook/Google/whatnot的部分保存下来,否则就像普通服务器一样工作(释放我们自己的访问令牌,刷新令牌等)。这是预期的事情吗?在这个用例的特定标准中是否有任何内容?

回答

0

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

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

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

+0

是的,我们这样做,直到第三方开始要求使用我们的API集成他们的系统。这就要求我们走得更远,成为一名OAuth提供商。 –

+0

祝你好运!开始有一些体面的产品用于构建(例如,如果您使用的是.Net,则使用ThinkTexture IdentityServer) –

相关问题