Результаты поиска
Окончательное руководство по проверке подлинности веб-сайта на основе форм
Аутентификация на основе форм для веб-сайтов
Мы считаем, что Stack Overflow должен быть не только ресурсом для очень конкретных технических вопросов, но и для общих руководящих принципов по решению вариаций общих проблем. "Form based authentication for websites" должно быть прекрасной темой для такого эксперимента.
Он должен включать такие темы, как:
- Как войти в систему
- Как выйти из системы
- Как оставаться в системе
- Управление файлами cookie (включая рекомендуемые настройки)
- Шифрование SSL/HTTPS
- Как хранить пароли
- Использование секретных вопросов
- Забытый логин / пароль функциональность
- Использовать специальные слова, чтобы предотвратить подделка межсайтовых запросов (CSRF)
- OpenID
- "Remember me" checkbox
- Автозавершение браузером имен пользователей и паролей
- Секретный URLs (публичный URL защищен дайджестом)
- Проверка надежности пароля
- Проверка электронной почты
- и многое другое о проверке подлинности на основе форм ...
Он не должен включать в себя такие вещи, как:
- Роли и разрешения
- HTTP обычной проверки подлинности
Пожалуйста, помогите нам:
- Предлагая подтемы
- Отправка хороших статей на эту тему
- Редактирование официального ответа
Контрольный список для IIS 6/ASP.NET Windows аутентификации?
У меня возникли проблемы с тем, чтобы мое приложение ASP.NET автоматически регистрировало пользователей на сайте интрасети, который я создаю. Независимо от того, что я гуглил или экспериментировал, всегда есть окно входа, отображаемое IE7.
Я установил режим аутентификации Windows в Web.config, отключил анонимный доступ и настроил правильный домен по умолчанию в IIS, но он все еще просит пользователя войти в систему и, что еще более раздражает, пользователь должен также предоставить домен ( DOMAIN\auser ), что вызывает проблемы с нетехническими посетителями. Спасибо Zeus за функциональность запоминания паролей.
Я не являюсь администратором сети, поэтому вполне возможно, что что-то в Active Directory настроено неправильно, или это может быть просто я пропустил что-то очень простое. Обратите внимание, что я не хочу выдавать себя за пользователя, мне просто нужно знать, что свойство IPrincipal.Name совпадает с действительной записью в моей базе данных пользователей, следовательно, аутентификация пользователя в моем приложении.
С этой целью было бы очень полезно иметь контрольный список всех требований к конфигурации для AD, ASP.NET и IIS, чтобы работать вместе таким образом в качестве справочного материала для отладки и, надеюсь, уменьшить некоторые трения пользователей.
Как я могу получить аутентифицированное имя пользователя под Apache, используя обычную HTTP аутентификацию и PHP?
Во-первых, давайте избавимся от соображений безопасности. Я использую простую аутентификацию под Apache для одноразового, только внутреннего использования, не подключенного к интернету lan, php веб-приложения.
Как я могу получить HTTP аутентифицированное имя пользователя в PHP?
Должен ли я использовать имя пользователя или ID пользователя для ссылки на аутентифицированных пользователей в ASP.NET
Поэтому в моем простом учебном веб-сайте я использую встроенную систему аутентификации ASP.NET.
Теперь я добавляю таблицу пользователей, чтобы сохранить такие вещи, как его zip, DOB и т. д. Мой вопрос таков:
- В новой таблице ключом должно быть имя пользователя (строка) или пользователь ID, который является тем номером GUID, который они используют в
asp_ tables. - Если лучше всего использовать этот уродливый guid, кто-нибудь знает, как его получить? похоже, он не так легко доступен, как имя (
System.Web.HttpContext.Current.User.Identity.Name) - Если вы предлагаете мне не использовать ни один из них (ни guid, ни поля userName, предоставляемые ASP.NET authentication), то как это сделать с ASP.NET authentication? Один из вариантов, который мне нравится, - это использовать адрес email пользователя в качестве логина, но как сделать так, чтобы система аутентификации ASP.NET использовала адрес email вместо имени пользователя? (или там нечего делать, это просто я решил, что я "know" userName на самом деле адрес email?
Пожалуйста, обратите внимание:
- Я не спрашиваю о том, как получить GUID в .NET, я просто ссылаюсь на столбец userID в
asp_ tablesкак guid. - Имя пользователя является уникальным при проверке подлинности ASP.NET.
OpenID обмен атрибутами-должен ли я его использовать?
Мой сайт будет использовать только OpenID для аутентификации. Я хотел бы вытащить сведения о пользователе через обмен атрибутами, но обмен атрибутами, похоже, вызвал много горя для StackOverflow.
Каково текущее состояние дел в отрасли? Делает ли любой провайдер OpenID достойную работу по обмену атрибутами?
Должен ли я просто держаться подальше от OpenID attribute exchange вообще?
Как я могу справиться с несогласованной поддержкой функциональности?
OpenID аутентификация в Ruby на Rails
Я неофит с Ruby на Rails, но я создал несколько небольших приложений. В любом случае, я действительно заинтересован в OpenID и хотел бы реализовать аутентификацию OpenID и, возможно, некоторые вещи Sreg в приложении Rails. Все исследования, которые я провел, пришли к статьям, которые устарели или просто не работают для меня. Поскольку я так новичок в Rails, мне трудно отлаживать проблемы таким образом...
Как лучше всего реализовать OpenId в Rails?
Только принимать определенные ajax запросы от пользователей, прошедших проверку подлинности
Как лучше всего убедиться, что определенные вызовы ajax на определенные страницы принимаются только от аутентифицированных пользователей?
Например:
Допустим, у меня есть главная страница под названием blog.php (я знаю, творчество изобилует). Предположим также, что существует страница с именем delete.php , которая ищет параметр post_id , а затем удаляет некоторую запись из базы данных.
В этом очень надуманном примере есть некоторый механизм на blog.php, который отправляет запрос через ajax к delete.php, чтобы удалить запись.
Теперь этот механизм будет доступен только аутентифицированным пользователям на blog.php. Но что мешает кому-то просто позвонить delete.php с кучей случайных чисел и удалить все на сайте?
Я сделал быстрый тест, где я установил переменную сеанса в blog.php, а затем сделал вызов ajax в delete.php, чтобы вернуться, если переменная сеанса была установлена или нет (это не было) .
Каков общепринятый способ справиться с такими вещами?
OK. Должно быть, я сошел с ума, когда впервые попробовал это сделать.
Я просто сделал еще один тест, как тот, который я описал выше, и он работал отлично.
Каков наилучший способ аутентификации через WCF?
Каков наилучший способ реализации аутентификации через WCF?
Я бы предпочел не использовать WS-*, поскольку он должен быть независимым от транспорта.
Должен ли я "свернуть свой собственный"? Есть ли какие-либо рекомендации для этого (articles/blog сообщений)?
Или есть какой-то способ (и должен ли я) использовать встроенные поставщики членства и профилей ASP.NET на стороне сервера?
Как бы вы реализовали аутентификацию на основе FORM без резервной базы данных?
У меня есть сценарий PHP, который работает как программа CGI, а заголовок HTTP Authenticate съедается и выплевывается. Поэтому я хотел бы реализовать какую-то аутентификацию на основе FORM. В качестве дополнительного ограничения отсутствует база данных, поэтому данные сеанса не могут быть сохранены.
Я очень открыт для того, чтобы иметь мастер-имя пользователя и пароль. Мне просто нужно защитить приложение от злоумышленника, который не знает эти учетные данные.
Так как бы вы это реализовали?
Печенье?
Я могу представить форму, и если она подтвердится, я могу отправить обратно файл cookie, который является hash из IP адреса и секретного кода. Тогда я могу запретить отображение страниц, если вещь не расшифровывается правильно. Но я понятия не имею, как реализовать это в PHP.
Получение имени компьютера клиента? (Windows авт)
У меня есть приложение ASP.net, которое работает во внутренней сети (Ну, на самом деле он работает на Sharepoint 2007).
Мне просто интересно:
Могу ли я каким-то образом получить имя PC, которое использует клиент?
У меня будет доступ к Active Directory, если это поможет.
Дело в том, что люди используют несколько PCs, поэтому я не могу использовать ручное/статическое отображение.
Если возможно, я не хочу использовать какой-либо код на стороне клиента (читай: JavaScript), но если это невозможно сделать на стороне сервера, JavaScript также будет OK.
(ActiveX абсолютно исключено)
Проверка подлинности с помощью форм в приложениях
Я работаю над внутренним веб-инструментом для своей компании. Частью этого инструмента является другое приложение (Панель управления круиз-контролем), которое работает в своем собственном виртуальном каталоге под моим корневым приложением.
Я хотел ограничить доступ к этому внутреннему приложению, настроив аутентификацию форм на нем и имея форму входа в корневое приложение.
Я поместил следующее в корневые приложения web.config:
<location path="ccnet">
<system.web>
<authentication mode="Forms">
<forms loginUrl="/default.aspx" timeout="5000"/>
</authentication>
<authorization>
<allow users="?"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
Однако проверка подлинности форм не работает, она не перенаправляется обратно на страницу входа, когда я получаю доступ к этому приложению напрямую.
У меня такое чувство, что у меня есть теги <allow> и <deny>, установленные неправильно. Может кто-нибудь прояснить?
Для чего использовать Windows CardSpace?
Я делаю какую-то фанковую аутентификацию (и да, я знаю, open-id потрясающий, но опять же мой open-id не работает прямо сейчас!).
Натыкаясь на Windows CardSpace мне было интересно, использовал ли кто-нибудь это в реальной системе продукта. Если вы использовали его, каковы были плюсы и минусы для вас? И как я могу использовать его в моем open-id?
Как использовать проверку подлинности NTLM с Active Directory
Я пытаюсь реализовать аутентификацию NTLM на одном из наших внутренних сайтов,и все работает. Единственный кусочек головоломки, которого у меня нет, - это то, как взять информацию из NTLM и пройти аутентификацию в Active Directory.
Существует хорошее описание NTLM и шифрования, используемого для паролей, которые я использовал для реализации этого, но я не уверен, как проверить, является ли пароль пользователя действительным.
Я использую ColdFusion, но решение этой проблемы может быть на любом языке (Java, Python, PHP и т. д.).
Редактировать:
Я использую ColdFusion на Redhat Enterprise Linux. К сожалению, мы не можем использовать IIS для управления этим и вместо этого должны написать или использовать сторонний инструмент для этого.
Update - я получил эту работу, и вот что я сделал
Я пошел с библиотекой JCIFS из samba.org.
Обратите внимание, что приведенный ниже метод будет работать только с NTLMv1 и не работает с NTLMv2. Если вы не можете использовать NTLMv1, вы можете попробовать Jespa, который поддерживает NTLMv2, но не является открытым исходным кодом, или вы можете использовать Kerberos/SPNEGO.
Вот мой web.xml:
<web-app>
<display-name>Ntlm</display-name>
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>dc01.corp.example.com</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>CORP.EXAMPLE.COM</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
</web-app>
Теперь все URLs совпадающие /admin/* будут требовать NTLM аутентификации.
Аутентификация на веб-сайте авторизации форм ASP.Net из консольного приложения
Я пытаюсь создать консольное приложение C#, чтобы автоматизировать захват определенных файлов с нашего сайта, в основном, чтобы сэкономить клики и, честно говоря, просто сделать это. Но я попал в ловушку, для которой я не смог найти рабочего решения.
Веб-сайт, к которому я пытаюсь подключиться, использует авторизацию форм ASP.Net, и я не могу понять, как аутентифицировать себя с ним. Это приложение является полным Хак, так что я могу жесткий код моего имени пользователя и пароля или любой другой необходимой информации auth, и само решение не должно быть что-то, что является достаточно жизнеспособным, чтобы освободить для обычных пользователей. Другими словами, если единственным возможным решением является взлом, я в порядке с этим.
В принципе, я пытаюсь использовать HttpWebRequest, чтобы вытащить сайт, который имеет список файлов, повторяя этот список, а затем загружая то, что мне нужно. Таким образом, фактическая работа на сайте довольно тривиальна, как только я могу заставить сайт считать меня авторизованным.
Лучшее решение для аутентификации в Ruby на Rails
Я ищу готовое решение, которое можно использовать в моем приложении RoR. В идеале я ищу что-то похожее на проверку подлинности ASP.NET форм, которая обеспечивает проверку email, элементы управления регистрацией и позволяет пользователям сбрасывать свои пароли. Ах да, и легко позволяет мне вытащить пользователя, который в данный момент вошел в приложение.
Я начал просматривать уже написанные фрагменты, но обнаружил, что это действительно сбивает с толку. Я посмотрел на LoginGenerator, RestfulAuthentication, SaltedLoginGenerator, но, похоже, нет ни одного места, где есть отличные учебники или их сравнение. Если есть сайт, который я просто еще не обнаружил, или если есть стандарт де-факто, которым пользуется большинство людей, я был бы признателен за помощь.
Почему я не могу подключиться к моему серверу CAS с Perl AuthCAS?
Я пытаюсь использовать существующий сервер CAS для аутентификации входа в веб-скрипт Perl CGI и использую модуль AuthCAS Perl (v 1.3.1). Я могу подключиться к серверу CAS, чтобы получить билет службы, но когда я пытаюсь подключиться, чтобы проверить билет, мой скрипт возвращается со следующей ошибкой из модуля IO::Socket::SSL:
500 Can't connect to [CAS Server]:443 (Bad hostname '[CAS Server]')
([CAS Server] substituted for real server name)
Symptoms/Tests:
- Если я наберу сгенерированный URL для аутентификации в строке местоположения веб-браузера, он вернется просто отлично с ожидаемым фрагментом XML. Так что это не плохое имя хоста.
- Если я создаю сценарий без использования модуля AuthCAS, но используя модуль IO::Socket::SSL непосредственно для запроса сервера CAS для проверки созданного билета службы, сценарий Perl будет работать нормально из командной строки, но не в браузере.
- Если я добавлю модуль AuthCAS в скрипт в пункте 2, скрипт больше не будет работать в командной строке и по-прежнему не будет работать в браузере.
Вот голые кости скрипт, который производит ошибку:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use AuthCAS;
use CGI::Carp qw( fatalsToBrowser );
my $id = $ENV{QUERY_STRING};
my $q = new CGI;
my $target = "http://localhost/cgi-bin/testCAS.cgi";
my $cas = new AuthCAS(casUrl => 'https://cas_server/cas');
if ($id eq ""){
my $login_url = $cas->getServerLoginURL($target);
printf "Location: $login_url\n\n";
exit 0;
} else {
print $q->header();
print "CAS TEST<br>\n";
## When coming back from the CAS server a ticket is provided in the QUERY_STRING
print "QUERY_STRING = " . $id . "</br>\n";
## $ST should contain the received Service Ticket
my $ST = $q->param('ticket');
my $user = $cas->validateST($target, $ST); #### This is what fails
printf "Error: %s\n", &AuthCAS::get_errors() unless (defined $user);
}
Есть идеи, где может быть конфликт?
Сообщение об ошибке поступает от линии непосредственно над Cebjyre фрагмент процитировал именно
$ssl_socket = new IO::Socket::SSL(%ssl_options);
а именно: создание сокета. Все входные параметры верны. Я отредактировал модуль, чтобы ввести отладочные операторы и распечатать все параметры непосредственно перед этим вызовом, и все они в порядке. Похоже, мне придется глубже погрузиться в модуль IO::Socket::SSL.
Прокси, который требует аутентификации с помощью эмулятора Android
Удалось ли кому-нибудь заставить эмулятор Android работать за прокси, который требует аутентификации?
Я попытался установить аргумент-http-proxy в значение
http://DOMAIN/USERNAME:PASSWORD@IP:PORT
но у меня ничего не получается.
Я пытался следовать документам, но безрезультатно. Я также пробовал установку -verbose-proxy , но этого больше не существует.
Есть какие-нибудь указания?