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