将身份验证服务器与资源服务器分开是一种好习惯吗?

时间:2015-06-11 01:36:44

标签: security authentication soa

与许多应用程序一样,我的服务的身份验证逻辑存在于应用程序代码中。但是,现在我需要扩展我的身份验证,以便为单点登录合并第三方身份提供程序。

我想保留旧的身份验证行为(数据库查找),但也希望添加对第三方身份提供程序的支持。

随着复杂性的增加,将身份验证逻辑与自己的服务分开是否有意义?在此模型中,应用程序服务器将未经身份验证的用户重定向到身份验证服务器。身份验证成功后,身份验证服务器将重定向回应用程序服务器。

这种方法听起来不错吗?

2 个答案:

答案 0 :(得分:2)

如果您有可用的服务器和基础架构预算,请让您的Web应用程序使用社区维护的库执行身份验证。

一般情况下,不建议您自己构建一个。

将您的用户存储在数据库表中。

使用其他网站进行身份验证问题:

您的访问者可能不希望拥有第三方网站的帐户。

这导致向第三方网站提供过多信息(与其他使用其身份验证机制的网站共享大部分信息)。

答案 1 :(得分:0)

分离您的身份验证逻辑并让不同的服务执行该任务通常是个好主意。对于其他“横切”来说也是如此。诸如授权和SSL卸载等问题。它为您提供了一个更简单的开发环境,并且通常是一个更易于推理的应用程序(例如,您在开发模式下不必担心身份验证,并且您可以独立开发服务,这在很长的路要走生产力和速度方面)。

为了使用您的应用程序组合身份验证服务,最好有第三个组件来相应地编排和路由调用(而不是在应用程序中使用与身份验证相关的代码)。我写了一篇关于如何实现这一目标的简短博文here