Как создать интеграцию LDAP для моего веб-приложения?

Мне удалось открыть PDF-файл, используя requests.

Страница ищет правильное значение User-Agent, поэтому я установил ее на Chrome MacOS.

h = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" }

r = requests.get(url, stream=True, headers=h)

И это сработало.

tmp/project/1> file metadata.pdf
metadata.pdf: PDF document, version 1.4
34
задан Bob Aman 20 September 2009 в 00:56
поделиться

6 ответов

несколько вариантов. Если вы действительно имеете в виду LDAP, а не только Active Directory, я бы, вероятно, посмотрел на использование System.DirectoryServices.Protocols для выполнения привязки LDAP с использованием предоставленных учетных данных через защищенный канал.

Строго говоря, это не единый знак - На. SSO означает, что вам нужно отправить свои кредиты только один раз при первом входе в систему. Это просто упрощает работу пользователей, имея только один идентификатор. Как правило, для клиентов Windows в корпоративной среде с сочетанием платформ и технологий единый вход достигается с помощью клиента, добавленного к рабочему столу, который управляет аутентификацией в различных системах. В среде только для MS вы можете достичь единого входа, если все ваши веб-приложения находятся на IIS, вы используете IE и используете встроенную аутентификацию Windows, олицетворение и все такое.

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

12
ответ дан 27 November 2019 в 17:15
поделиться

Как всегда, не забудьте проверить проверку подлинности, чтобы убедиться, что отправленный пароль не пуст.

Связывание с именем пользователя и без пароля считается анонимным связыванием, согласно стандарту, и похоже, что оно успешно выполнено! Когда на самом деле это действительно не так.

Это проблема для приложения, так как сервер LDAP просто следует стандарту, раздражающему стандарту, но, тем не менее, стандарту.

5
ответ дан 27 November 2019 в 17:15
поделиться

Вам необходимо решить, как вы планируете связать пользователя LDAP с учетной записью в вашем приложении.

Например, вы можете потребовать, чтобы имя пользователя в системе LDAP совпадало с именем пользователя в вашем приложении, или вы могли бы потребовать, чтобы кто-то явно указывал имя пользователя LDAP в каждой учетной записи пользователя в вашем приложении.

Как только вы выяснили эту ссылку, Вы можете просто выполнить привязку LDAP для проверки учетных данных пользователя.

1
ответ дан 27 November 2019 в 17:15
поделиться

Возможно, рассмотрим аутентификацию против авторизации

Аутентификация - какой это пользователь? Авторизация - кто должен иметь возможность использовать приложение, указанные пользователи, группы?

В настоящее время вы подразумеваете авторизацию посредством аутентификации, потому что только те, кто зарегистрирован в вашем приложении, могут использовать его.

Если вместо этого вы используете каталог вашего пользовательского хранилища данных, затем

  • используйте метод подключения к каталогу для аутентификации пользователя
  • вы (можете) получить аутентификацию бесплатно - пользователь известен Windows, Windows может идентифицировать iis и sqlserver, возможно, нет необходимости спрашивать пользователь, который они есть.
  • вы будете знать о большем количестве пользователей, чем имеют авторизацию, и вам необходимо применить ограничения - ограничить подключения к определенной группе.
  • может хранить данные пользователя в каталоге, а не с данными вашего приложения в sql сервер.

Если вашим пользователям действительно нужен общий LDAP, то вам нужно изучить (C) ldap_connect,ldap_bind_s (C #) LDAPConnection System.DirectoryServices.Protocols

Или еще раз вернемся к AD, это Demystified .Net App Single Sign on может помочь

2
ответ дан 27 November 2019 в 17:15
поделиться

The way this works in our system:

  • When a user navigates to the web app, the REMOTE_USER server variable is assumed to be the user token
  • The login code connects to the ldap directory with a search-specific account
  • The login code looks for an ldap account that "matches" the REMOTE_USER
  • The login code then tries to match that account with an account in our system
  • If matching is possible all the way through, assume the user logged in as the matched account, continue normally

This way the user can reuse their windows domain authentication inside our app.

1
ответ дан 27 November 2019 в 17:15
поделиться

Вот одна полезная часть программного обеспечения, которое позволяет доступ к каталогам LDAP через Интернет, используя JSON-RPC: Json2Ldap

1
ответ дан 27 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: