问题在于:我有一个KB调用的APP1,它将执行一个身份提供者的WebService(集中所有不同应用程序的登录/会话),如果当前WebSession中有一个已登录的用户,它将返回true授予访问应用程序或否则为false。当我在与身份提供者相同的KB上创建一个Web面板时,它工作得很好,当有一个已登录的用户时我得到TRUE,而当没有用户时我得到FALSE。但是当我从APP1调用它时它总是返回false,我认为问题是因为WebSession在通过WS调用时无法正常工作。有关如何解决它的任何想法?
答案 0 :(得分:2)
我的第一个建议是尝试使用GAM Single Sign on(X Evolution 3)
WebServices应该是无状态的。我认为使用数据库而不是WebSession可以完成这项工作。
尽管如此,为了调用一个宁静的WebService,你将不得不做更复杂的事情,如下面的link中所述处理CookieContainers。
答案 1 :(得分:1)
考虑这个解决方案:
App1和IdentityProvider必须共享加密密钥。 考虑一下,如果加密密钥被破坏或破解,任何人都可以冒充其他用户。
根据您对系统的安全程度,您应该研究其他安全问题:
请注意,这不是经过测试的协议,我没有深入研究安全性。我从OpenId获得了一些灵感,但这是一个简化的协议,我可能会缺少安全漏洞。