Инструкция по настройке Политики согласия пользователя для Shibboleth IdPv3

    Данная инструкция содержит описание основных этапов настройки политики согласия пользователя с условиями использования компонента Shibboleth Identity Provider (IdP) v3.x, функционирующего в федеративной среде FEDURUS. Информация о всех возможных параметрах конфигурации содержится на сайте проекта Shibboleth Consortium в разделе IdPv3 user consent configuration reference.
    Инструкция предполагает наличие знаний синтаксиса языка XML.

    Обязательное условие

    Технологический компонент Shibboleth IdPv3.x должен быть установлен и настроен в соответствии с Инструкцией по установке Shibboleth Identity Provider (IdP) 3 в контексте федеративной среды FEDURUS.

    Активация окна "Условия использования" (Terms Of Use)

    Для включения однократного (при первом использовании IdP) и однотипного для всех ресурсов (возможно использование различных текстов условий использования для разных SP) окна согласия с условиями использования (Terms of Use) перед страницей согласия на выпуск (передачу ресурсу) атрибутов пользователя A single example Terms of Use text
    выполните следующие действия:

    1. в файле /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"/>
    2. В файле /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.

    3. В файле /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.

    Отображение атрибутов в окне "Соглание на передачу атрибутов" (Attribute Release Consent)

    Без использования компонента 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)!

    Отключение отображения атрибутов в окне "Согласие на передачу артибутов" (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.

    Отключение согласия для 'доверяемых' Service Providers

    Возможно отключение появления диалогового окна с требованием пользовательского согласия с условиями использования для определенного ресурса и/или группы ресурсов используя параметы schacHomeOrganization (домашняя организация) и schacHomeOrganizationType (тип организации).
    В основном, FEDURUS рекомендует использование настроек по умолчанию, т.е. наличие окна с условиями использования для всех ресурсов.

    Для отключения появления диалогового окна с требованием пользовательского согласия с условиями использования измените /opt/shibboleth-idp/conf/relying-party.xml в соответствии с инструкциями, содержащимися в самом файле.

    Информация о версии документа

    Copyright:	FEDURUS
    Автор:		support@fedurus.ru
    Дата:		22.12.2015 
    		журнал изменений
    
    Последние изменения страницы 2017-05-23 09:59