Я пытаюсь сделать единый вход (SSO) с помощью веб-приложения для интрасети, написанного на Pylons, и я хотел бы использовать repoze.what для авторизации.Я настроил Apache с mod_sspi, и он правильно аутентифицирует пользователя и устанавливает переменную среды REMOTE_USER.Однако я не могу понять, как убедить repoze.who, что пользователь действительно аутентифицирован.
Я попытался создать Идентификатор, который выглядит следующим образом:
class NtlmIdentifier(object):
def identify(self, environ):
if environ['AUTH_TYPE'] == 'NTLM':
return { 'repoze.who.userid': environ['REMOTE_USER'] }
return None
def remember(self, environ, identity):
pass
def forget(self, environ, identity):
pass
И регистрацияпозднее промежуточное программное обеспечение выглядит следующим образом:
return setup_auth(app, groups, permissions, identifiers=identifiers, authenticators=[], challengers=[])
Но кажется, что метод identify
моего идентификатора никогда не вызывается средой.
Как интегрировать SPNEGO / SSPI с repoze.who и repoze.what?