BasicAuth и SSO через OpenAM - PullRequest
       32

BasicAuth и SSO через OpenAM

0 голосов
/ 07 ноября 2011

Можно ли одновременно использовать защиту BasicAuth и SSO (единый вход)? Мы используем междоменную единую регистрацию (CDSSO), хотим скрыть наш промежуточный сервер от общедоступного через BasicAuth и хотим включить вход через SSO. Каждый раз, когда мы вводим соответствующую запись VHost для защиты сервера, SSO больше не работает. Наша запись виртуального хоста для Apache выглядит следующим образом

<Directory /home/my_user/sites/my_site>
  Options -MultiViews
  AllowOverride All
  Order deny,allow
  Deny from all
  Allow from 192.168.0.0/16
  AuthType Basic
  AuthBasicProvider file
  AuthName "MyBasicAuth"
  AuthUserFile /home/my_user/etc/htpasswd
  Require valid-user
  Satisfy Any
</Directory>

Файл журнала агента веб-политики для OpenAM предполагает наличие какого-то ошибка авторизации во время dsame_check (возможно, своего рода сообщение сердцебиения, чтобы увидеть, жив ли агент?):

2011-11-04 16:48:16.069    Info 27773:7fb5259550e0 all: 
dsame_check_access(): starting...
2011-11-04 16:48:16.069   Debug 27773:7fb5259550e0 all: 
get_request_url(): ..
..
2011-11-04 16:48:16.069   Debug 27773:7fb5259550e0 all: 
get_request_url(): Returning request URL = 
http://..:80/error/HTTP_UNAUTHORIZED.html.var.

В журнале доступа Apache для компьютера с агентом политики мы получаем 401 Unauthorized HTTP-ошибки (192.168.1.1 - локальный IP-адрес сервера OpenAM):

192.168.1.1 - "" [07/Nov/2011:12:42:58 +0100] 
"POST /UpdateAgentCacheServlet?shortcircuit=false HTTP/1.1" 401 - "-" "Java/1.6"

Как мы можем изменить конфигурацию, чтобы включить BasicAuth и SSO? Или это вообще невозможно? Если мы удалим защиту для веб-сервера Apache, проверка dsame и SSO снова будут работать.

1 Ответ

0 голосов
/ 23 июля 2012

Можно добавить защиту BasicAuth на более высоком уровне через саму платформу Rails с помощью модуля HttpAuthentication .

Это решило проблему для меня, так как Apache и агент Apache не знают о защите на этом уровне.

class ApplicationController
http_basic_authenticate_with :name => "..", :password => ".." 

Можно добавить if Rails.env.staging?, чтобы включить эту защиту только для определенной среды.

...