Ошибка, когда Simplesamlphp находится позади балансировщика нагрузки

Мы используем simplesamlphp в качестве поставщика услуг. Мы интегрировались с несколькими Idp. Все отлично работает

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

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,

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

Дайте мне знать, если мне нужно что-то уточнить.

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

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

1

Решение

Джеймс!

Я считаю, что вы используете балансировщик нагрузки в качестве обратного прокси, поэтому убедитесь, что в вашем config / 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)

На самом деле, журнал ошибок был бы признателен, чтобы понять, если мое предположение верно

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]