Попытка реализовать поддержку нескольких ACS с OneLogin - PullRequest
0 голосов
/ 19 февраля 2019

Мы пытаемся внедрить единый вход, используя OneLogin в качестве IdP с нашим кластером Cisco Call Manager, используя единое соглашение для всех серверов в кластере.

Это просто означает, что наш файл метаданных содержит отдельный тег AssertionConsumerService для каждого сервера в кластере.

Однако мы сталкиваемся с проблемой, когда в ответе SAML пункт назначения не распознается как действительный.

Мой вопрос: в случае использования нескольких ACS, как должно выглядеть поле назначения в ответе SAML?Нужно ли IdP распознавать, от какого потребителя поступил запрос, и динамически менять адрес назначения в ответе, чтобы он был правильным для конкретного потребителя?

Сейчас ответ SAML выглядит примерно так:

<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Destination="https://<CUCM_2>:8443/ssosp/saml/SSO/alias/<CUCM_2>https://<CUCM_2>:8443/ssosp/saml/SSO/alias/<CUCM_2>https://<IMP_1>:8443/ssosp/saml/SSO/alias/<IMP_1>https://<IMP_1>:8443/ssosp/saml/SSO/alias/<IMP_1>https://<CUCM_1>:8443/ssosp/saml/SSO/alias/<CUCM_1>https://<CUCM_1>:8443/ssosp/saml/SSO/alias/<CUCM_1>" ID="pfx117d2cec-f554-1fba-ff86-8db77b497e35" InResponseTo="s2ded98fb1a7423ea7bb1fcc95cf5c57ae3bf19684" IssueInstant="2019-02-18T16:06:06Z" Version="2.0">

и мы получаем тот же беспорядок для атрибута Recipient в SubjectConfirmationData

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

Ах, но Cisco особенная, разве вы не знаете?:)

Тем временем мне удалось заставить его работать, и, кто бы ни читал эту ветку в будущем, я могу подтвердить, что OneLogin теперь может поддерживать кластеры Cisco, используя единые метаданные всего кластера.Но для любого другого IdP настройка:

Требования IdP

  • CUCM поддерживает только NameIDFormat, поскольку временные
  • привязки HTTP-POST и HTTP-Redirect SAML должны бытьвключенная
  • Требуется спецификация SAML, которая позволяет определять несколько тегов AssertionConsumerService

Операция

  • При настройке единого входа в пределах сгенерированных метаданныхCUCM, если используется режим SSO для всего кластера, определены несколько тегов AssertionConsumerService.Два для каждого сервера в кластере, один с использованием метода POST и один с помощью Redirect.Каждый ACS также имеет тег Index, который начинается с 0. Это отправляется IdP
  • . При попытке аутентифицировать запрос SAML отправляется IdP, в рамках запроса поле AssertionConsumerServiceIndex устанавливается на Index ofсервер, с которого был сгенерирован запрос, как определено в метаданных, первоначально предоставленных IdP
  • . Затем IdP отправляет обратно ответ SAML, в котором теги Destination и Recipient устанавливаются так, чтобы соответствовать тегу Location изметаданные, соответствующие запрашивающему серверу

enter image description here

0 голосов
/ 12 марта 2019

При правильном кластере у вас будет один URL-адрес ACS, и кластер будет управлять сеансом пользователя между членами кластера за пределами SAML.Я не слышал о нескольких URL-адресах ACS, используемых для одного SAML, поддерживающего SP.IdP (Onelogin) должен точно знать, куда отправлять ответ SAML.Я думаю, что вам нужно взглянуть на конфигурацию вашего кластера и посмотреть, может ли она быть настроена как конечная точка независимо от экземпляра кластера, который инициирует запрос SAML.

...