代码之家  ›  专栏  ›  技术社区  ›  Diogo Ferreira

使用apacheshiro在Webapp和REST API之间进行SSO

  •  0
  • Diogo Ferreira  · 技术社区  · 11 年前

    我正在尝试在webapp和REST API之间设置SSO,为此我使用了Apache Shiro+Jasig CAS,但现在遇到了与REST API身份验证相关的问题。 我在Webapp中使用CASRealm+CASFilter,并尝试使用在那里创建的会话来访问REST API,我尝试了两种方法:

    1. 通过请求头将CAS服务票证从webapp传播到REST API(不起作用,它说服务票证无效,因为它属于另一个应用程序,也许TGT会起作用)

    2. 将用户名和密码存储在webapp中,并在http基本身份验证中使用它们(这可能是一个很大的安全漏洞,我正在努力避免)

    我可以使用什么其他方法在REST API中验证用户?

    我想这主要是一个架构问题。 如果你不理解我的问题(或我的英语),请提问

    2 回复  |  直到 11 年前
        1
  •  1
  •   jleleu    11 年前

    看起来您想使用第一个CAS服务作为REST API的代理:您可以使用CAS代理机制: https://wiki.jasig.org/display/CAS/Proxy+CAS+Walkthrough 。虽然Shiro CAS模块中不提供代理支持,但您应该使用 布吉-帕奇4j 扩展,这里有一个关于这个主题的很好的讨论: http://shiro-user.582556.n2.nabble.com/Shiro-cas-proxying-td7579694.html .

        2
  •  1
  •   fnkbz    11 年前

    您可以在CAS上启用OAuth2.0配置,然后使用OAuth2.0保护REST服务。例如,您可以使用带有oauth的rest服务进行用户身份验证。这里有一些有用的链接。

    OAuth configuration

    Securing REST

    OAuth and REST