Как я использую аутентификацию NTLM с Active Directory

Нет, для типовых размеров нет стандарта. Стандарт требует только того, чтобы:

sizeof(short int) <= sizeof(int) <= sizeof(long int)

Лучшее, что вы можете сделать, если вы хотите, чтобы переменные фиксированных размеров использовали макросы, такие как:

#ifdef SYSTEM_X
  #define WORD int
#else
  #define WORD long int
#endif

Затем вы можете использовать WORD, чтобы определить ваши переменные. Не то, чтобы мне это нравилось, но это самый портативный способ.

7
задан 9 revs, 4 users 60% 11 January 2012 в 19:00
поделиться

6 ответов

То, что Вы действительно спрашиваете: Есть ли любой способ проверить "WWW - Пройдите проверку подлинности: NTLM" маркеры, отправленные IE и другими клиентами HTTP при выполнении Единой точки входа (SSO). SSO - когда пользователь вводит их пароль "единственное" время, когда они делают Ctrl-Alt-Del и рабочая станция помнят и используют его по мере необходимости для прозрачного доступа к другим ресурсам, не предлагая пользователю пароль снова.

Обратите внимание, что Kerberos, как NTLM, может также использоваться для реализации аутентификации SSO. При дарившем "WWW - Пройдите проверку подлинности: Согласуйте" заголовок, IE и другие браузеры отправят, SPNEGO перенес Kerberos и / или маркеры NTLM. Больше на этом позже, но сначала я отвечу на вопрос, как спросили.

Единственный способ проверить пароль NTLMSSP "ответ" (как те закодированные в "WWW - Пройдите проверку подлинности: NTLM" заголовки, отправленные IE и другими браузерами), с NetrLogonSamLogon (Исключая) вызовом DCERPC с сервисом СЕТЕВОГО ВХОДА В СИСТЕМУ Контроллера доменов Active Directory, который является полномочиями для или имеет "доверие" с полномочиями для, целевая учетная запись. Кроме того, для надлежащего обеспечения коммуникации СЕТЕВОГО ВХОДА В СИСТЕМУ шифрование Безопасного канала должно использоваться и требуется с Windows Server 2008.

Само собой разумеется, существует очень немного пакетов, которые реализуют необходимые служебные вызовы СЕТЕВОГО ВХОДА В СИСТЕМУ. Единственные, о которых я знаю:

  1. Windows (конечно),

  2. Samba - Samba является рядом программ для UNIX, который реализует много протоколов Windows включая необходимые служебные вызовы СЕТЕВОГО ВХОДА В СИСТЕМУ. На самом деле Samba 3 имеет специального демона для названного "winbind", с которым другие программы как PAM и модули Apache могут (и делать) интерфейс. В системе Red Hat можно сделать a yum install samba-winbind и yum install mod_auth_ntlm_winbind. Но это - легкая часть - настраивающий эти вещи, другая история.

  3. Jespa - Jespa (http://www.ioplex.com/jespa.html) является 100%-й библиотекой Java, которая реализует все необходимые служебные вызовы СЕТЕВОГО ВХОДА В СИСТЕМУ. Это также обеспечивает реализации стандартных интерфейсов Java для аутентификации клиентов различными способами такой как с Фильтром Сервлета HTTP, сервером SASL, JAAS LoginModule, и т.д.

Остерегайтесь этого существует много получателей аутентификации NTLM, которые не реализуют необходимые служебные вызовы СЕТЕВОГО ВХОДА В СИСТЕМУ, но вместо этого делают что-то еще, что в конечном счете приводит к отказу в одном сценарии или другом. Например, в течение многих лет, способ сделать это в Java было с Фильтром Сервлета Аутентификации HTTP NTLM из проекта под названием JCIFS. Но тот Фильтр использует man-in-the-middle технику, которая была ответственна за давнюю "ошибку отклонения", и, что более важно, он не поддерживает NTLMv2. По этим причинам и другим планируется быть удаленным из JCIFS. Существует несколько проектов, которые были неумышленно вдохновлены тем пакетом, которые теперь также одинаково обречены. Существует также много фрагментов кода, отправленных на форумах Java, которые декодируют маркер заголовка и щипают доменное и имя пользователя, но не делают абсолютно ничего для фактической проверки ответов пароля. Достаточно сказать при использовании одного из тех фрагментов кода Вы могли бы также идти вокруг с Вашими штанами вниз.

Когда я уклонился к ранее, NTLM является только одним из нескольких Поставщиков услуг технической поддержки безопасности Windows (SSP). Существует также Обзор SSP, Kerberos SSP, и т.д. Но Согласовывание SSP, который также известен как SPNEGO, обычно является поставщиком, которого MS использует в их собственных клиентах протокола. Согласовывание SSP на самом деле просто согласовывает или NTLM SSP или Kerberos SSP. Обратите внимание, что Kerberos может только использоваться, если у и сервера и клиента есть учетные записи в целевом домене, и клиент может связаться с контроллером домена достаточно для получения билета Kerberos. Если эти условия не удовлетворены, NTLM SSP используется непосредственно. Таким образом, NTLM ни в коем случае не является устаревшим.

Наконец, некоторые люди упомянули, что использовали LDAP, "простой, связывают" как импровизированный сервис проверки пароля. LDAP действительно не разработан как услуга аутентификации, и поэтому это не эффективно. Также не возможно реализовать SSO, использующий LDAP. SSO требует NTLM или SPNEGO. Если можно найти СЕТЕВОЙ ВХОД В СИСТЕМУ или получателя SPNEGO, необходимо использовать это вместо этого.

Mike

19
ответ дан 6 December 2019 в 07:08
поделиться

Насколько я понимаю.
NTLM является одним из IIS, созданного в методах аутентификации. Если Хост регистрируется на домене упомянутого активного каталога, это должно быть автоматически. Одной вещью не упустить является имя пользователя, должен быть в одном из двух форматов.

  • domain\username
  • username@domain.tld

При попытке идти вразрез с другим активным каталогом, необходимо использовать, формы разрабатывают аутентификацию и некоторый код LDAP.

При попытке сделать Интранет Никакая Нулевая вещь Входа в систему с IIS Интегрированная аутентификация

  • домен должен быть перечислен как надежный сайт в браузере IEx
  • или используйте URL использование имя netbios вместо имени DNS.
  • чтобы это работало в чтении Firefox здесь
2
ответ дан 6 December 2019 в 07:08
поделиться

Источник ModNTLM для Apache может предоставить Вам правильные указатели.

Если возможно, необходимо рассмотреть использование Kerberos вместо этого. Это позволяет Вам аутентифицировать Apache против AD, и это - более активное пространство проекта, чем NTLM.

2
ответ дан 6 December 2019 в 07:08
поделиться

Гм, я не уверен, что Вы пытаетесь выполнить.

Обычно реализация NTLM на внутреннем сайте так же проста, как снятие выделения "Включает Анонимный Доступ" в "Управлении аутентификацией и Управлении доступом" на вкладке "Directory Security" свойств веб-сайта в IIS. Если это будет очищено, то Ваши пользователи веб-приложения будут видеть всплывающее окно диалоговое окно NTLM.

Нет никакой потребности в Вас написать любой код, который взаимодействует через интерфейс с Active Directory. IIS заботится об аутентификации для Вас.

Можно ли быть более конкретны относительно того, что Вы пытаетесь сделать?

0
ответ дан 6 December 2019 в 07:08
поделиться

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

поскольку coldfusion проверяют это http://www.adobe.com/devnet/server_archive/articles/integrating_cf_apps_w_ms_active_directory.html

и cfldap отмечают http://livedocs.adobe.com/coldfusion/6.1/htmldocs/tags-p69.htm#wp1100581

Относительно других языков - другие сделают это с там соответствующими API

0
ответ дан 6 December 2019 в 07:08
поделиться

Обратите внимание на Вафли . Он реализует SSO для серверов Java с использованием Win32 API. Есть сервлет, клапан кота, пружинный предохранитель и другие фильтры.

1
ответ дан 6 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

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