Чтобы получить информацию о входе в систему Win, когда Anon включен CFusion

По сути, я пытаюсь создать страницу, которая будет отображать логин (например, #CGI.AUTH_USER#), если пользователь обращается к странице, прошедшей проверку подлинности. Однако, если пользователь не является авторизованным, я все равно хочу, чтобы пользователь мог получить доступ к странице, но с пользовательским интерфейсом входа.

В настоящее время у меня включен Anon Access и включен режим Windows Authen, но похоже, что это не работает в обоих направлениях.

Если у меня включен Anon Access, он не извлекает CGI.AUTH_USER. Если у меня включена аутентификация Windows, при доступе к странице будет запрашиваться вход пользователя в систему.

Есть ли способ сделать так, чтобы IIS принимал пользователей Anon и мог получать информацию об аутентификации пользователя, если это пользователь Windows Auth?

Спасибо!


person James    schedule 12.01.2012    source источник


Ответы (3)


Я не верю, что это возможно, аутентификация в IIS либо включена, либо выключена. Если вы включите его, вам нужно войти в систему, прежде чем вы увидите что-либо. Если вы выключите его, вы не

Большинство людей просто закодируют свою собственную страницу входа и аутентифицируются таким образом. Вы даже можете использовать <CFLDAP для проверки пользователей в активном каталоге, если хотите.

person Dale Fraser    schedule 12.01.2012
comment
Да, я боялся этого. Я просто хотел иметь возможность проверить, аутентифицирован ли пользователь, и получить имя пользователя, если нет, просто продолжайте. Вся причина, по которой я хочу, чтобы это было так, заключается в том, что когда пользователь получает доступ к веб-сайту со страницей аутентификации окна (не анонимной) через WebVPN, НЕКОТОРЫЕ пользователи вообще не могут загрузить эту страницу. Они получают одну из тех страниц, которые вы получаете, когда нет сетевого подключения. Вот почему я хотел бы также принять анонимных пользователей. - person James; 16.01.2012

Вот как мы это делаем. Мы включаем его для одной страницы CFM, а затем делаем вызов JavaScript для этой страницы. Основываясь на ответе заголовка этой страницы, мы можем увидеть, аутентифицирован ли пользователь на сервере AD, который распознает наш сервер IIS. Если они не аутентифицированы с одного из них, мы предоставим им окно входа, чтобы они могли «ввести» свою информацию для входа.

person Snipe656    schedule 12.01.2012
comment
В своем подходе к javascript вы нашли способ предотвратить запрос входа в систему на основе браузера, который обычно появляется при переходе на защищенный ресурс? Я пробовал именно этот подход (и множество его вариаций), и мне так и не удалось помешать браузеру отображать это раздражающее приглашение для входа в систему. - person Jake Feasel; 12.01.2012
comment
Честно говоря, я не могу сказать, что когда-либо появлялось приглашение для входа в систему. Возможно, это как-то связано с тем, как корпоративные ИТ-специалисты настроили браузеры в своих стандартных образах для машин. - person Snipe656; 12.01.2012
comment
Я совершенно уверен, что нет способа остановить появление запроса на вход в браузер, за исключением некоторых сильно измененных базовых настроек браузера, которые вы упомянули. Однако проблема с тем, чтобы полагаться на эти настройки, заключается в том, что предполагается, что пользователи с настроенными браузерами являются теми же пользователями, которым потребуется подавление диалога, то есть ненадежным пользователям. Однако именно те самые ненадежные пользователи с наименьшей вероятностью будут настраивать свои браузеры (поскольку они, вероятно, находятся вне домена). - person Jake Feasel; 12.01.2012
comment
Вы говорите, что вам всегда предлагается окно проверки подлинности Windows, или это происходит только в том случае, если вы не являетесь частью домена? Я реализовал решение, о котором я упоминал, вероятно, на 1-2 дюжинах серверов в нашей сети, и окно проверки подлинности Windows, насколько мне известно, никогда не появляется. Я знаю, что он не отображается ни у меня, ни у кого-либо из пользователей, с которыми я напрямую общаюсь. Я знаю, что один раз IIS на одном сервере был испорчен, что коробка действительно показывала, и я получил много жалоб, поэтому предположил, что я буду получать жалобы сегодня, если это обнаружится на других. - person Snipe656; 12.01.2012
comment
Я имею в виду, что если вы попытаетесь запросить какой-либо ресурс (прямо или косвенно), для которого требуется проверка подлинности Windows, и ваш компьютер/браузер не является частью того же доверенного домена, на прием которого настроен сервер, браузер запросит учетные данные для входа. . Мне кажется, что все ваши пользователи являются частью доверенного домена, и в этом случае нет причин смешивать анон и win-auth — вы можете использовать 100% аутентификацию Windows. - person Jake Feasel; 12.01.2012
comment
У нас есть причины разрешать SSO (через аутентификацию Windows) и разрешать не-SSO (вводить логин или экраны, не требующие аутентификации). Система аутентификации Windows позволяет нам узнать, кто такой пользователь, а затем посмотреть, к чему у него есть доступ через это. В некоторых из наших доменов мы не можем полагаться на строку аутентификации Windows, которую получает IIS, и с ними мы заставляем пользователя выполнять не-SSO. Я думаю, что способ обойти то, с чем вы сталкиваетесь, - это использовать Flex/Flash. У нас есть решение, похожее на решение JS, но представляющее собой встроенный SWF (который выполняет HTTP-вызов). - person Snipe656; 12.01.2012

Чтобы ответить на ваш конкретный технический вопрос, у вас не может быть единого ресурса, который разрешает как анонимный доступ, так и аутентификацию на основе Windows. Однако у вас может быть главная страница, которая разрешает анонимный доступ, и страница в подпапке, защищенная с помощью проверки подлинности Windows, и обе эти страницы могут совместно использовать одну и ту же область приложения CF. Использование этого базового устройства будет необходимо.

Что касается базовой проблемы, которую вы пытаетесь решить, мы недавно потратили некоторое время на возможность смешивания подхода проверки подлинности Windows с существующими входами в систему на основе веб-форм, как вы описываете. Это на самом деле довольно сложно, поскольку в идеальной ситуации все пользователи могли бы получить доступ к одному и тому же базовому URL-адресу, который они всегда использовали, и автоматически и автоматически входить в систему, когда эта опция была доступна, но также не беспокоиться о входе в систему через браузер. запрос, когда проверка подлинности Windows недоступна. Из того, что мы определили, этот идеал не совсем возможен (из-за некоторых ограничений в протоколе HTTP при доступе к защищенному ресурсу всегда отображается запрос на вход в систему). Тем не менее, мы нашли несколько вариантов, которые могут быть достаточно близки к идеалу, чтобы быть полезными и заслуживающими внимания:

1) У вас может быть специальный URL-адрес, предназначенный для пользователей, которые хотели бы иметь эту функцию автоматического входа в систему; например, что-то вроде https://baseUrl/autologin/ . Пользователи домена могут добавить этот URL-адрес в закладки с компьютеров, входящих в домен, и использовать эту закладку для доступа к сайту. Если кто-либо, кроме пользователя домена на компьютере домена, перейдет по этому URL-адресу, ему будет предложено войти в систему с помощью диалогового окна входа в браузере. Пользователи, не входящие в домен, не смогут выйти из этого диалогового окна, но пользователи домена смогут. Все пользователи (в домене или нет) также могут войти в систему через обычный экран входа в систему на основе форм, который обычно доступен. Если вы выберете этот вариант, вы также можете добавить ссылку на домашнюю страницу для пользователей для «автологина», которая приведет их к этому URL-адресу, что, конечно, будет работать только для пользователей в домене.

2) Вы можете попытаться определить определенные сегменты сети в вашей среде, из которых есть очень большая вероятность того, что пользователи, запрашивающие эти веб-сайты, будут делать это на компьютере доверенного домена. Вы можете структурировать приложение таким образом, чтобы пытаться автоматически входить в систему этих пользователей, когда они приходят из этих идентифицированных сетей. В случае, когда есть запрос из этих сетей, которые не являются доверенными, худшее, что может случиться, это то, что пользователю будет неожиданно представлен запрос имени пользователя и пароля на основе браузера. Если бы они получили это приглашение, они могли бы либо проигнорировать его, нажав кнопку «Отмена» и перейти на обычную страницу входа в систему, либо они могли бы ввести свои учетные данные домена и войти в систему (в этом случае, вероятно, это произошло бы из-за того, что рабочий стол не был настроен правильно по какой-то причине - иначе он автоматически вошел бы в систему). Этот сетевой метод обнаружения можно реализовать с помощью модуля перезаписи URL-адресов для IIS.

person Jake Feasel    schedule 12.01.2012
comment
Спасибо, Джейк. В основном я вставлю то, что написал для Дейла выше. Да, я боялся этого. Я просто хотел иметь возможность проверить, аутентифицирован ли пользователь, и получить имя пользователя, если нет, просто продолжайте. Вся причина, по которой я хочу, чтобы это было так, заключается в том, что когда пользователь получает доступ к веб-сайту со страницей аутентификации окна (не анонимной) через WebVPN, НЕКОТОРЫЕ пользователи вообще не могут загрузить эту страницу. Они получают одну из тех страниц, которые вы получаете, когда нет сетевого подключения. Вот почему я хотел бы также принять анонимных пользователей. - person James; 16.01.2012
comment
И добавляя дополнительный комментарий к вашему альтернативному маршруту, как я понял в своем предыдущем комментарии, все пользователи, которые подключаются к этой странице, находятся в одном и том же домене (подключены к VPN и всем пользователям доверяют). Однако по какой-то странной причине это нормально для большинства людей (либо обнаруживает автоматический вход пользователя в систему, либо запрашивает вход в Windows, что также нормально), но для меньшинства они даже не получают всплывающее окно входа в Windows. Они получают страницу, которую вы получаете, когда у вас нет подключения к Интернету. Когда они заходят на страницы с включенным Anon, все в порядке. - person James; 16.01.2012
comment
Вы можете убедиться, что пользователи, у которых это не работает, добавили сайт в свою конфигурацию надежных сайтов. Я обнаружил, что иногда помогает автоматический вход в систему. - person Jake Feasel; 16.01.2012