authentication - 在 2 个 Grails 应用程序之间共享身份验证

标签 authentication grails oauth

我正在开发 2 个 Grails 应用程序 - A 和 B - 我想支持以下用例

  • 如果用户有 A 的帐户,他们也可以使用它来注册/登录 B(与您可以使用 Twitter、Google 等凭据注册/登录到 http://stackoverflow.com 的方式大致相同)。同理,如果用户有B的账号,可以用来注册/登录A。
  • 用户还可以选择在每个站点上使用单独的帐户,即他们不会被迫在 B 上使用其 A 凭据(反之亦然)
  • 如果用户已使用其 A 凭据向 B 进行身份验证(反之亦然),这将在 2 个站点之间建立信任,允许 A 调用 B 的 API 以检索有关用户的其他信息。需要有一种机制来确保 API 只能被同意在两个站点之间共享身份验证数据的用户调用。

  • 理想情况下,我想使用基于标准的方法,例如通过使每个站点成为 OAuth 消费者/提供者,但我不确定哪些标准是最相关的标准。如果有任何插件可以帮助我实现解决方案,那么了解这也很有用。

    最佳答案

    我认为 Stormpath正是您需要的:

  • 具有不同 SDK 的用户管理 API:node.js、express、java、rest、python、flask。
  • 现成的托管登录:登录、注册和密码重置。
  • 现成的 ID 站点支持跨应用程序的单点登录
  • 用户的 API key ,使用 HTTP Basic Auth 或 OAuth2
  • 进行保护
  • 社交登录:Facebook、谷歌、LinkedIn、Github
  • 与 Shiro 和 Spring Security 集成
  • 与 Active Directory 和 LDAP 集成

  • 在第 3 个项目符号中,您正在谈论 SSO .您可以使用 Stormpath 和 Shiro 实现这一目标。请read here .

    免责声明,我是 Stormpath 的贡献者。

    关于authentication - 在 2 个 Grails 应用程序之间共享身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815502/

    相关文章:

    javascript - 如何使用一个 JWT token 签署第二个 JWT token ?

    php - 如何使用动态用户属性配置用户认证?

    python - 使用 Oauth 对 Gmail 进行身份验证后,有没有办法获取您的电子邮件地址?

    maven - Grails:如何使用 Maven 存储库而不是 ivy-cache

    grails createCriteria 用于日期计算

    node.js - 无法在环回上实现 oauth2

    oauth - 使用 Firebase 进行 oauth 后无法访问 Google plus api

    php - API认证困惑

    java - 与 MongoDB 的 Jelastic 连接在远程 tomcat 上不起作用,但当本地 tomcat 连接到远程 Mongo 时正常

    grails - 无法初始化代理 - 无 session ,正在访问过滤器类中的 session 对象