金字塔:是否可以在没有身份验证的情况下使用授权?

时间:2013-05-24 13:33:11

标签: python pyramid

我的组织使用OpenAM SSO进行身份验证,我的应用程序是用金字塔编写的。 用户标识将在HTTP标头中传递。我也可以将其配置为传递组和权限,我可以在 acl 中使用。这使得金字塔中的身份验证变得多余。是否可以完全废除Authenticaion政策并单独授权?

1 个答案:

答案 0 :(得分: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())