Что означает параметр SP Entity / IdP Audience в конфигурации saml для поставщика услуг? - PullRequest
0 голосов
/ 08 апреля 2019

В документации по настройке протокола saml для Looker я нахожу свойство SP Entity / IdP Audience , и это меня так смущает, потому что я не понимаю, какому элементу в запросе saml это свойство соответствует. В статье объясняется, как настроить Looker в качестве поставщика услуг. Но, насколько мне известно, мы не отправляем в запрос поставщику удостоверений никакой информации о запрашивающей стороне, кроме Issuer .

Кроме того, у него очень странное описание:
" SP Entity / IdP Audience : Это поле не требуется для Looker, но многим IdP потребуется это поле. Если вы введете значение в это поле, это значение будет отправлено вашему IdP как Looker Идентификатор объекта в запросах на авторизацию. В этом случае Looker будет принимать только ответы на авторизацию, имеющие это значение в качестве аудитории. Если для вашего IdP требуется значение аудитории, введите эту строку здесь. Это значение также используется в качестве поля эмитента в сообщениях, отправляемых в IdP. Итак, если ваш IdP жалуется на то, что он получает сообщение без эмитента , вам необходимо заполнить его. Вы можете использовать любую строку, которая может потребоваться вашему IdP. В большинстве случаев вы можете использовать «Looker». Если это поле присутствует, то ваш IdP должен отправить его как поле аудитория в сообщении, которое он отправляет обратно в Looker. "

Я думал, что EntityId - это значение, которое отправляет элемент Issuer , но это описание делает меня очень глупым. Я имею в виду, я не могу найти ничего подходящего в спецификации. Так может ли кто-нибудь объяснить значение этого таинственного свойства?

Здесь - документация, о которой я пишу токен, и протокол saml спецификация (3.2 Запросы и ответы).

Я должен объяснить, что я не использую Looker, но я ищу примеры конфигураций saml в разных сервисах! Мы планируем добавить поддержку saml для нашего продукта, поэтому я проведу некоторые исследования.

1 Ответ

0 голосов
/ 22 мая 2019

(1) Мы можем получить нижеприведенную информацию по предоставленной вами ссылке для спецификации протокола saml (3.2 Запросы и ответы).
(I) Internet2 является одним из основных участников спецификации протокола SAML.
(II) 3.2 Запросы и ответы
3.2.1 Сложный тип RequestAbstractType

ID [Required]
Version [Required]
IssueInstant [Required]
Destination [Optional]
Consent [Optional]
<saml:Issuer> [Optional] Identifies the entity that generated the request message.
<ds:Signature> [Optional]
<Extensions> [Optional]

Цитируйте ваше сообщение "Я думал, что EntityId - это значение, которое отправляется в Эмитент элемент ".
Ответ :
Да.Ты прав.SAML SP Идентификатор объекта отправляется в элементе Issuer запроса авторизации SAML в IdP SAML (как показано запросом SAML, отправленным Shibboleth SAML SP "https://mycompany.example.org" позже).

(2) Вопрос : «Что означает параметр« SP Entity / IdP Audience »в конфигурации saml для поставщика услуг?»

Цитата " SP Entity / Аудитория IdP : Это поле не является обязательным для Looker, но многим IdP потребуется это поле.Если вы введете значение в это поле, оно будет отправлено вашему IdP как Идентификатор субъекта Looker в запросах на авторизацию.В этом случае Looker будет принимать только те ответы авторизации, которые имеют это значение в качестве аудитории.Если ваш IdP требует значения аудитории, введите эту строку здесь.Это значение также используется в качестве поля эмитента в сообщениях, отправляемых в IdP.Таким образом, если ваш IdP жалуется на то, что получает сообщение без отправителя, вам необходимо заполнить его. Вы можете использовать любую строку, которая может потребоваться вашему IdP.В большинстве случаев вы можете использовать «Looker».Если это поле присутствует, то ваш IdP должен отправить его как поле аудитории в сообщении, которое он отправляет обратно в Looker. "

Ответ :

(I) SAML SP Looker НЕ отправляет идентификатор объекта SP в элементе Issuer запроса авторизации SAML в IdP SAML, если вы оставите поле " SP Entity / IdP Audience (необязательно) " пустым по умолчанию.

(II) «если ваш IdP жалуется, что он получает сообщение без отправителя, вам необходимо заполнить его».
Это означает, что вам необходимо заполнить SAML SP Entity ID (например, «https://mycompany.looker.com/") в поле " SP Entity / IdP Audience (необязательно) " через графический интерфейс администратора Looker, чтобы Looker мог отправлять ID объекта SP (например, "https://mycompany.looker.com/") in Issuer элемент запроса авторизации SAML к IdP SAML.

(III) "Если это поле присутствует, тогда ваш IdP должен отправить его как поле аудитории в сообщении, которое он отправляет обратноto Looker. "
Это означает, что IdP SAML отправит SAML SP Entity ID (например,"https://mycompany.looker.com/") в поле аудитория ответа SAML для Looker SAML SP.

(3) SAML Пример : Цитата" Okta теперь предлагает LookerПриложение, которое является рекомендуемым способом совместной настройки Looker и Okta. "

(I) Как собрать и запустить Shibboleth SAML IdP и SP с использованием контейнера Docker в репозитории GitHub, что позволяет запускатьShibboleth SAML IdP (параллельно Okta SAML IdP) и Shibboleth SAML SP (параллельно Looker SAML SP) на вашей собственной машине.
Internet2 предоставил значительные ресурсы для разработки Shibboleth SAML IdP и Shibboleth SAML SP.

(II) Без потери общности мы создаем демонстрацию взаимодействия SAML между IdP Okta SAML и SAML SP Shibboleth, чтобы продемонстрировать, как запрос SAML содержит ID объекта SP в элементе Issuer и какОтвет SAML содержит SP Entity ID в поле аудитория .

Следующий запрос SAML и усеченный ответ SAML извлекаются из успешного единого входа SAML (SSO), предоставляемого Okta SAML IdP до Shibboleth SAML SP (которыйпараллельно Looker SAML SP ).
SAML Shibboleth Идентификатор объекта SP равен https://mycompany.example.org/Shibboleth.sso/Metadata

Запрос SAML, отправленный SAML SP Shibboleth to Okta SAML IdP

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
AssertionConsumerServiceURL="https://mycompany.example.org/Shibboleth.sso/SAML2/POST"
Destination="https://dev-806230.oktapreview.com/app/mycompany_shibbolethspdemo/exdgpcskkbjCPYTX90h7/sso/saml"
ID="_9f70ad26f1e69244fade279bc57f7e23"
IssueInstant="2019-05-21T18:40:06Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Version="2.0">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://mycompany.example.org/Shibboleth.sso/Metadata</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="1" />
</samlp:AuthnRequest>

Truncated ответ SAML, отправленный Okta SAML IdP на Shibboleth SAML SP (отображает связанные элементы только для демонстрационной цели)

<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
Destination="https://mycompany.example.org/Shibboleth.sso/SAML2/POST"
ID="id63794486675331821511177658"
InResponseTo="_9f70ad26f1e69244fade279bc57f7e23"
IssueInstant="2019-05-21T18:40:43.033Z"
Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">http://www.okta.com/exdgpcskkbjCPYTX90h7</saml2:Issuer> 
<saml2p:Status xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"> <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" /></saml2p:Status> 
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="id63794486676092501915396379"
IssueInstant="2019-05-21T18:40:43.033Z"
Version="2.0">
<saml2:Conditions NotBefore="2019-05-21T18:35:43.034Z" NotOnOrAfter="2019-05-21T18:45:43.034Z" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> 
<saml2:AudienceRestriction>
<saml2:Audience>https://mycompany.example.org/Shibboleth.sso/Metadata</saml2:Audience> 
</saml2:AudienceRestriction>
</saml2:Conditions> 
</saml2:Assertion>
</saml2p:Response>
...