2

我的组织使用 OpenAM SSO 进行身份验证,我的应用程序是用 Pyramid 编写的。用户 ID 将在 HTTP 标头中传递。我还可以将其配置为传递可以在 acl中使用的组和权限。这使得金字塔中的身份验证变得多余。是否可以完全取消 Authenticaion Policy 并仅使用授权?

4

1 回答 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 回答