我的组织使用 OpenAM SSO 进行身份验证,我的应用程序是用 Pyramid 编写的。用户 ID 将在 HTTP 标头中传递。我还可以将其配置为传递可以在 acl中使用的组和权限。这使得金字塔中的身份验证变得多余。是否可以完全取消 Authenticaion Policy 并仅使用授权?
问问题
388 次
1 回答
4
你需要一种方法来告诉金字塔的授权系统这个人是谁(他们的有效委托人)。这是身份验证策略的责任,即使它像解析标头一样简单。
class CustomAuthenticationPolicy(object):
def effective_principals(self, request):
principals = [Everyone]
identity = request.headers.get('x-identity')
# validate the identity somehow
if is_valid(identity):
principals += [Authenticated, identity, 'g:editors']
return principals
config.set_authentication_policy(CustomAuthenticationPolicy())
于 2013-05-25T04:22:30.647 回答