Python 与身份验证服务器对话

Python 与身份验证服务器对话,python,authentication,rest,Python,Authentication,Rest,我正在建立我的创业公司,我正在考虑如何共享服务 到目前为止,我希望允许在一个应用程序上拥有用户帐户的用户能够在另一个应用程序上使用相同的用户帐户。这意味着我必须构建一个身份验证服务器 我想了解一些关于如何允许应用程序与身份验证服务器对话的意见。我应该用卷发吗?我应该使用Python的http LIB吗?所有代码都将使用Python 它所要做的就是询问身份验证服务器是否允许此人使用该应用程序,并且身份验证服务器将返回一个JSON用户对象。所有授权(角色和资源)都将独立于应用程序,因此此应用程序不必

我正在建立我的创业公司,我正在考虑如何共享服务

到目前为止,我希望允许在一个应用程序上拥有用户帐户的用户能够在另一个应用程序上使用相同的用户帐户。这意味着我必须构建一个身份验证服务器

我想了解一些关于如何允许应用程序与身份验证服务器对话的意见。我应该用卷发吗?我应该使用Python的http LIB吗?所有代码都将使用Python

它所要做的就是询问身份验证服务器是否允许此人使用该应用程序,并且身份验证服务器将返回一个JSON用户对象。所有授权(角色和资源)都将独立于应用程序,因此此应用程序不必处理此问题


抱歉,如果这看起来有点生疏;这是我第一次将身份验证与实际应用程序分离。

假设您计划编写自己的身份验证客户端代码,它不是事件驱动的,并且不需要验证https证书,我建议使用python内置的urllib2调用身份验证服务器。这将最大限度地减少依赖性,这将使部署和升级更加容易


也就是说,世界上现有的与auth相关的协议和库不止几个,其中一些协议和库可能会为您节省一些时间,并为您从零开始编写代码带来安全隐患。例如,如果您让auth服务器使用OpenID,许多非自助应用程序和服务器(包括Apache)将已经为您制作了auth客户端插件。

您的问题与其说是编程问题,不如说是架构问题。针对您的具体情况,我建议您为身份验证、授权和记帐(AAA)设置LDAP服务器。然后让您的应用程序使用它(每种语言都有用于LDAP的模块和库)。这是一种可靠、安全、经验证且众所周知的处理此类事情的方法


即使您严格地想要强制实施基于HTTP的身份验证,也可以很容易地在LDAP前面猛击一个身份验证服务器,并就此结束。甚至有现成的代码可以做到这一点,这样你就不必重新发明轮子了。

还有一个你可能不想看的代码,

我认为这个问题需要澄清。中央服务器是用于识别用户(身份验证)还是用于报告允许用户访问的资源(授权)或两者?在考虑现有技术时,差异可能是相关的,例如RADIUS或OpenID。我在帖子中说,这纯粹是身份验证,而不是授权。是的,但你还说你计划“询问身份验证服务器是否允许此人使用该应用”,这是一个授权问题,不是身份验证。这让我感到困惑对于架构问题,我会使用什么其他服务?