Как интегрировать ldap в saml2 в Django

У меня есть приложение django, которое изначально использовало LDAP для аутентификации. В связи с изменением времени мне пришлось перевести приложение на использование django-saml2-auth-ai, который, как я изначально думал, был полностью рабочим. Через месяц после того, как я заставил saml "работать", я заметил, что эта часть кода больше не работает

groups_owners=register.user.user_ldap.groups_names

И я продолжаю получать следующую ошибку.

'User' object has no attribute 'ldap_user'

Я использую команду выше, чтобы найти все группы ldap, к которым принадлежал пользователь, использующий систему.

Итак, как мне интегрировать SAML для работы с LDAP или что мне нужно добавить в SAML, чтобы получить группы ldap из аутентификации SAML. Из моего инструмента трассировки saml все группы приходят из login.com/names/groupNames.

Когда я пытаюсь запросить атрибуты из SAML_AUTH, они оказываются пустыми

SAML2_AUTH = {
    # Required setting
    'SAML_CLIENT_SETTINGS': { # Pysaml2 Saml client settings (https://pysaml2.readthedocs.io/en/latest/howto/config.html)
       'entityid': 'https://reg-dev.com', # The optional entity ID string to be passed in the 'Issuer' element of authn request, if required by the IDP.
        'metadata': {
            'remote': [
                {
                    "url": 'https://idp.com/pf/federation_metadata.ping?PartnerSpId=https://reg-dev.com', # The auto(dynamic) metadata configuration URL of SAML2
                },
            ],
        },
    },

    # Optional settings below
    #'DEFAULT_NEXT_URL': '',  # Custom target redirect URL after the user get logged in. Default to /admin if not set. This setting will be overwritten if you have parameter ?next= specificed in the login URL.
    'DEFAULT_NEXT_URL': '/reg/?',  # Custom target redirect URL after the user get logged in. Default to /admin if not set. This setting will be overwritten if you have parameter ?next= specificed in the login URL.
    #'NEW_USER_PROFILE': {
    #    'USER_GROUPS': [],  # The default group name when a new user logs in
    #    'ACTIVE_STATUS': True,  # The default active status for new users
    #    'STAFF_STATUS': True,  # The staff status for new users
    #    'SUPERUSER_STATUS': False,  # The superuser status for new users
    #},
    'ATTRIBUTES_MAP': {  # Change Email/UserName/FirstName/LastName to corresponding SAML2 userprofile attributes.
        'email': 'urn:mace:dir:attribute-def:mail',
        'username': 'urn:mace:dir:attribute-def:eNumber',
        'first_name': 'urn:mace:dir:attribute-def:fName',
        'last_name': 'urn:mace:dir:attribute-def:dName',
        'groups': 'http://login.com/names/groupNames',
    },
    #'TRIGGER': {
    #    'FIND_USER': 'path.to.your.find.user.hook.method',
    #    'NEW_USER': 'path.to.your.new.user.hook.method',
    #    'CREATE_USER': 'path.to.your.create.user.hook.method',
    #    'BEFORE_LOGIN': 'path.to.your.login.hook.method',
    #},
    'ASSERTION_URL': 'https://reg-dev.com', # Custom URL to validate incoming SAML requests against
}

Спасибо всем за любые предложения, я был под прицелом, чтобы заставить saml работать, и я, кажется, пропустил некоторые конфигурации. BTW Я использую Django 1..11.29. django-saml2-auth-ai 2.1.6, django-auth-ldap 1.2.3, python-ldap3.2.0.

Вернуться на верх