2015-12-26 2 views
1

В качестве поставщика услуг мы используем simplesamlphp. Мы объединились с несколькими Idp. Все работает нормально.Неисправность, когда Simplesamlphp находится за балансиром нагрузки

Теперь мы хотим изменить нашу архитектуру сервера на load balancer -> webserver -> database server. Проблема возникает, когда мы помещаем load balancer перед webserver. Ошибка idp получает ошибку.

load balancer завершает работу https, и я считаю, что эта проблема возникает. Поэтому, когда load balancer отправляет запрос на webserver, это обычный запрос http.

Когда я вхожу начальные происходящее я получаю

Я собираюсь упростить xml немного и поставить части, которые отличались

с load balancer

Session: 'idp-name' not valid because we are not authenticated. 
Saved state: '_somelongstringofnumbersandletters' 
Sending SAML 2 AuthnRequest to '{{their info}}' 
Sending message: 
    <samlp:AuthnRequest ... AssertionConsumerServiceURL="http://{{our-info}}"> 
     <saml:Issuer>http://{{our-info}}</saml:Issuer> 
     <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/> 
    </samlp:AuthnRequest> 

Так выше только части которые отличаются друг от друга, указывая на load balancer и webserver - это http и https соответственно.

Не был уверен, был ли способ иметь simplesamlphp только что вернулся https. Или он всегда проверяет текущее состояние запроса и принимает http.

Просто убедитесь, что я даю все данные. Процесс инициализируется SP. Поэтому они просто переходят к URL-адресу, например https://oursite.com/idp-name. И мы всегда используем https.

Сообщите мне, если мне нужно что-то прояснить.

UPDATE

Мы решили эту проблему NOT завершения запроса HTTPS на балансировки нагрузки, и позволяя запрос пройти к серверам. Таким образом, наши SSL-сертификаты находятся непосредственно на наших веб-серверах, а не в балансировщике нагрузки.

Я не мог получить решение, данное работе, но это может быть моей собственной ошибкой. Нам было необходимо быстрое решение, а не расшифровка SSL на балансировщике нагрузки была самым простым способом.

+0

Решена проблема?Я столкнулся с подобной проблемой, было бы здорово, если бы вы могли обновить какое решение сработало для вас. Благодаря!! – wanjarisushil

+0

@wanjarisushil Я сделал обновление к вопросу. Не уверен, что это поможет. – James

ответ

2

James!

Я считаю, что вы используете систему балансировки нагрузки в качестве обратного прокси-сервера, поэтому убедитесь, что в вашей конфигурации/config.php из phpsimplesaml установить правильные переменные, особенно обратите внимание на baseurlpath

$config = array(

/** 
* Setup the following parameters to match the directory of your installation. 
* See the user manual for more details. 
* 
* Valid format for baseurlpath is: 
* [(http|https)://(hostname|fqdn)[:port]]/[path/to/simplesaml/] 
* (note that it must end with a '/') 
* 
* The full url format is useful if your simpleSAMLphp setup is hosted behind 
* a reverse proxy. In that case you can specify the external url here. 
* 
* Please note that simpleSAMLphp will then redirect all queries to the 
* external url, no matter where you come from (direct access or via the 
* reverse proxy). 
*/ 
'baseurlpath' => 'https://sso.yourcompanyname.com/simplesaml/', 
... 

...

Как убедиться, что ответ, который восходит к SP возвращает правильный протокол (HTTPS)

в самом деле, журнал ошибок будет благодарен понять, если мой assump правильность

Смежные вопросы