【问题标题】:Can my OAuth2 client also emit its own access tokens?我的 OAuth2 客户端也可以发出自己的访问令牌吗?
【发布时间】:2013-01-01 23:36:10
【问题描述】:

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

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

【问题讨论】:

    标签: oauth-2.0


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我们一直在这样做,直到第三方开始要求使用我们的 API 集成他们的系统。这要求我们自己加倍努力成为 OAuth 提供者。
    • 祝你好运!开始有一些不错的产品可供构建(例如 ThinkTexture IdentityServer,如果你在 .Net 上)
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2021-09-05
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多