Authentication 将我的应用程序与现有的身份验证系统接口

Authentication 将我的应用程序与现有的身份验证系统接口,authentication,authorization,oauth,Authentication,Authorization,Oauth,我正在编写一个基于web的应用程序,它将有自己的授权/身份验证机制(传统的cookie/基于会话的用户/通行证)。但是,根据许可软件的组织,我希望他们能够插入自己现有的内部身份验证系统,以取代我的。理想情况下,他们必须尽可能少地运行代码;我正在努力使它成为一个主要托管的服务。我知道OAuth的存在,但不完全理解如何在更高级别上实现该系统。任何提示都将不胜感激。您开发的平台是什么?PHP、Java、.NET还是其他 除了OAuth之外,还应该研究SAML和OpenID。这些协议用于网站到网站的身份

我正在编写一个基于web的应用程序,它将有自己的授权/身份验证机制(传统的cookie/基于会话的用户/通行证)。但是,根据许可软件的组织,我希望他们能够插入自己现有的内部身份验证系统,以取代我的。理想情况下,他们必须尽可能少地运行代码;我正在努力使它成为一个主要托管的服务。我知道OAuth的存在,但不完全理解如何在更高级别上实现该系统。任何提示都将不胜感激。

您开发的平台是什么?PHP、Java、.NET还是其他

除了OAuth之外,还应该研究SAML和OpenID。这些协议用于网站到网站的身份验证,比OAuth更常见,OAuth主要用于桌面/移动设备上的客户端应用程序。它可以被使用,但这是人们倾向于使用它的原因

一般来说,您被视为服务提供商。其他组织是身份提供者。在SAML中,您将用户重定向到身份提供者,该提供者将对用户进行身份验证(并可能授权)。它们将被重定向回服务提供商,服务提供商将能够让它们登录


有关协议文档的链接,请参阅我的链接。谷歌应用程序也有一个单一的登录SAML的行动

您的问题纠缠着您想要解开的东西(authn/authz,即策略和应用程序)。您要寻找的答案需要将这些问题分开

“标准”答案是将authn/authz策略分开,通常使用PEP(策略实施点)来实施PDP(策略决策点)做出的决策。SAML为两者之间的通信提供了标准

最后,您的应用程序(通常还有许多其他应用程序)由PEP保护。这可以嵌入到应用程序中(例如作为Tomcat拦截器),但更好的是,作为代理在单独的容器中运行。唯一能从外面接触到的就是政治公众人物。这将检查每个请求,确保用户经过身份验证,并且(对于SSO)确保每个请求包含一个安全令牌


如果没有,PEP将请求转发给PDP进行身份验证(登录屏幕)。PDP附加安全令牌并将请求转发回PEP。由于请求现在具有有效令牌,PEP将其转发到防火墙后面的应用程序。

感谢您的回复。模板是在PHP中完成的,但大多数数据处理是在Java中完成的。我可能会使用PHP进行身份验证。但是,我希望大多数主流语言都有客户端lib?我注意到了你的另一篇帖子,希望你能回复:)另外,我应该提到这是一个移动网络应用,最终也需要支持本地应用。