Arhn - архитектура программирования

Аутентификация Django через внешнего провайдера

Я только изучаю python и django и создал довольно приличный веб-сайт для управления базой данных, а также страницей поиска. Новое требование, которое меня сейчас немного смущает, заключается в том, что аутентификация должна выполняться через внешнего провайдера (пока неизвестно, но, вероятно, LDAP или Kerberos Tickets).

Моя идея состояла в том, чтобы аутентифицировать пользователей через эту службу и в случае успеха добавить пользователя в мою базу данных, созданную django, с помощью syncdb (где у меня есть разрешения и группы), а затем обойти этого пользователя как аутентифицированного, чтобы позволить ему выполнять действия на сайте.

Это звучит разумно? Существует ли «принятый» подход к такой аутентификации? Я не уверен, что мне придется писать собственное представление аутентификации.

Спасибо.


  • Ответьте на аналогичный вопрос: stackoverflow.com /questions/19896703/ — содержит пример Backend класса для аутентификации через внешнюю службу и локального создания User объектов. 21.11.2013

Ответы:


1

Django поддерживает подключение других механизмов аутентификации.

Я считаю, что вам придется написать свой собственный сервер аутентификации или использовать сторонний сервер, если вы выполняете аутентификацию через какой-то общий интерфейс, такой как LDAP.

Документы объясняют, как написать серверную часть аутентификации, здесь: https://docs.djangoproject.com/en/1.5/topics/auth/customizing/

Если вы планируете использовать LDAP, я предлагаю вам взглянуть на django-auth-ldap (https://pypi.python.org/pypi/django-auth-ldap).

21.11.2013
  • Спасибо за ответ. Я закончил настройку django_cas, и все заработало. 05.02.2014

  • 2

    Это звучит вполне разумно. Есть несколько способов добиться этого: использовать стороннюю библиотеку, такую ​​как django-social-auth, которая обрабатывает использование сторонних приложений для аутентификации пользователей с помощью пользовательской модели Django. Другой способ сделать это — написать собственный бэкенд, который использует протокол OAuth2 для аутентификации пользователей через стороннее приложение (например, Twitter) и сохраняет/авторизует их как пользователя Django для вашего приложения. Это может показаться трудным, но это довольно легко. Я написал пример приложения Django, чтобы продемонстрировать эту функциональность, а также предоставить руководство по пользовательской внутренней аутентификации. В этом приложении/учебнике используется Django 1.5: djangoauth.thecloutenproject.com/

    13.02.2014
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..