Данная инструкция содержит описание основных этапов настройки политики согласия
пользователя с условиями использования компонента Shibboleth Identity Provider (IdP) v3.x,
функционирующего в федеративной среде FEDURUS. Информация о всех возможных параметрах
конфигурации содержится на сайте проекта Shibboleth Consortium в разделе
IdPv3 user consent configuration reference.
Инструкция предполагает наличие знаний синтаксиса языка XML.
Технологический компонент Shibboleth IdPv3.x должен быть установлен и настроен в соответствии с Инструкцией по установке Shibboleth Identity Provider (IdP) 3 в контексте федеративной среды FEDURUS.
Для включения однократного (при первом использовании IdP) и однотипного для всех ресурсов (возможно использование различных текстов условий использования для
разных SP) окна согласия с условиями использования (Terms of Use) перед страницей согласия на выпуск (передачу ресурсу) атрибутов пользователя
выполните следующие действия:
/opt/shibboleth-idp/conf/relying-party.xml
в определении компонента shibboleth.DefaultRelyingParty
замените:
<bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" />строкой:
<bean parent="Shibboleth.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />и замените:
<bean parent="SAML2.SSO" p:postAuthenticationFlows="attribute-release" />строкой:
<bean parent="SAML2.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" />и, немного ниже, в определении компонента
RelyingPartyByGroup
замените:
<bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" p:includeAttributeStatement="true"/>строкой:
<bean parent="Shibboleth.SSO" p:postAuthenticationFlows="#{ {'terms-of-use', 'attribute-release'} }" p:includeAttributeStatement="true"/>
/opt/shibboleth-idp/conf/intercept/consent-intercept-config.xml
отключите псевдоним для shibboleth.consent.terms-of-use.Key
. Закомментируйте строку:
<!-- <alias alias="shibboleth.consent.terms-of-use.Key" name="shibboleth.RelyingPartyIdLookup.Simple" /> -->и добавьте следующий раздел, содержащий псевдоним и определение компонента:
<!-- This activates a single Terms of Use text to be presented once before the user sees the first time the attribute release consent dialog. --> <alias alias="shibboleth.consent.terms-of-use.Key" name="shibboleth.SingleTermsOfUseText" /> <bean id="shibboleth.SingleTermsOfUseText" class="com.google.common.base.Functions" factory-method="constant"> <constructor-arg value="my-terms-of-use" /> </bean>
Значение my-terms-of-use
является параметром, используемым в файле consent-messages.properties.
/opt/shibboleth-idp/messages/consent-messages.properties
удалите (или отключите, добавлением в начало строки символа #
) следующие три строки:
https\://sp.example.org = example-tou-1 example-tou-1.title = Example Terms of Use example-tou-1.text = <em>*** This is an example ToU - tailor due to your needs ***</em> \ ... </p>и добавьте три новых параметра, содержащих ваши значения заглавия и текста условий использования (Terms of Use):
my-terms-of-use = my-tou my-tou.title = Example Terms of Use my-tou.text = <p>Example organization Terms of Use (ToU)</p> \ <p>Lorem ipsum dolor sit amet, \ consectetur adipiscing elit. \ </p>
Параметр my-terms-of-use
имеет значение my_tou
, которому сопоставлены название и текст "Условий использования" (Terms of Use).
Вы можете использовать собственные параметры и значения, соблюдая изложенный подход.
Добавление отображения условий использования на различных языках производится таким же способом, как и для файлов messages.properties
.
Вы можете использовать уже готовые файлы consent-messages.properties для различных языков, подготовленные участниками проекта Shibboleth.
Без использования компонента AttributeDisplayOrder
[новый компонент в IdPv3.2.1], определенного в файле
/opt/shibboleth-idp/conf/intercept/consent-intercept-config.xml
, атрибуты отображаются в алфавитном порядке их идентификаторов.
Примечание: В IdPv3.2.0 сортировка достигалась использованием правила разрешения (whitelist).
С версии IdPv3.2.1 в этом больше нет необходимости. Поэтому рекомендуется правило разрешения (whitelist) оставить пустым в связке с логическим выражением MatchExpression
,
как показано в consent-intercept-config.xml
шаблоне , подготовленным проектом FEDURUS.
Без выражения MatchExpression
, в случае не пустого правила разрешения (whitelist), последующие атрибуты будут рассматриваться как запрещенные к отображению (blacklist),
т.е. будут передаваться service provider без отображения в диалоговом окне "Согласие на передачу атрибутов" (Attribute Release Consent)!
В настройках по умолчанию в диалоговом окне "Согласие на передачу атрибутов" отображается весь список передаваемых атрибутов. Исключение к этому правилу составляет список из трех запрещенных (blacklist) к отображению уникальных идентификаторов:
transientId
persistentId
eduPersonTargetedID
Начиная с IdPv3.2 Инструкция по установке Shibboleth Identity Provider (IdP) 3 в контексте федеративной среды FEDURUS содержит шаблон, добавляющий в список запрещенных (blacklist) к отображению уникальных идентификаторов дополнительный набор атрибутов:
eduPersonPrincipalName
eduPersonUniqueId
Дополнительные атрибуты могут быть перечислены в файле /opt/shibboleth-idp/conf/intercept/consent-intercept-config.xml
в конфигурации компонента shibboleth.consent.attribute-release.BlacklistedAttributeIDs
.
FEDURUS не рекомендует запрещать к отображению другие атрибуты пользователя без наличия достаточно веских причин для этого.
Примечание: в IdPv3.2.0, для корректной работы правила запрещения (blacklist), обязательно необходимо так же поместить атрибут и в правило разрешения (whitelist). Это было исправлено в IdPv3.2.1.
Возможно отключение появления диалогового окна с требованием пользовательского согласия с условиями использования
для определенного ресурса и/или группы ресурсов используя параметы schacHomeOrganization (домашняя организация)
и schacHomeOrganizationType (тип организации).
В основном, FEDURUS рекомендует использование настроек по умолчанию, т.е. наличие окна с условиями
использования для всех ресурсов.
Для отключения появления диалогового окна с требованием пользовательского согласия с условиями использования измените /opt/shibboleth-idp/conf/relying-party.xml
в соответствии с инструкциями, содержащимися в самом файле.
Copyright: FEDURUS Автор: support@fedurus.ru Дата: 22.12.2015 журнал изменений