Возможно захватить Shibboleth Authenticated Username - PullRequest
0 голосов
/ 10 декабря 2011

Я являюсь клиентом приложения с аутентификацией Shibboleth.Как я могу получить аутентифицированное имя пользователя для отображения в моем приложении?

Спасибо.

Ответы [ 3 ]

1 голос
/ 15 декабря 2011

Вы можете получить доступ к атрибутам способом, специфичным для языка и среды вашего приложения.Предпочтительным способом является использование переменных среды, но вы также можете использовать заголовки HTTP-запросов, что может иметь некоторые проблемы с безопасностью, потому что клиенты могут «подделывать» любые заголовки, которые они хотят (однако, некоторые внешние интерфейсы HTTP, такие как nginx, будут отбрасывать заголовки с подчеркиваниемв них это то, что обычно использует Shibboleth Native SP).

Если вы используете Java на Tomcat, например, у вас будет mod_proxy_ajp в Apache HTTP, работающем с mod_shib2, и вынастроит SP для добавления «AJP_» к заголовку / переменным так, чтобы код mod_proxy_ajp помещал их в запрос в качестве атрибутов вместо заголовков.

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

1 голос
/ 10 декабря 2011

Вам необходимо предоставить этот атрибут вам. Обычно он добавляется в качестве заголовка к запросу локальным SP, по крайней мере, так он работает в IIS с расширением ISAPI.

0 голосов
/ 21 декабря 2011

Спецификация класса объекта eduPerson (200806)

2.2.8. eduPersonPrincipalName (определено в eduPerson 1.0); OID: 1.3.6.1.4.1.5923.1.1.1.6


RFC 4512 определение (1.3.6.1.4.1.5923.1.1.1.6

      NAME 'eduPersonPrincipalName'

      DESC 'eduPerson per Internet2 and EDUCAUSE'

      EQUALITY caseIgnoreMatch

      SYNTAX '1.3.6.1.4.1.1466.115.121.1.15' SINGLE-VALUE )

Класс полезности приложения: стандартный; Количество значений: один

Определение

«NetID» данного лица для целей межведомственной аутентификации. Он должен быть представлен в форме «user @ scope», где scope определяет локальный домен безопасности. Использование нескольких символов «@» не рекомендуется, но в любом случае в качестве разделителя между компонентами следует принимать первое вхождение знака «@», начинающегося слева. Таким образом, идентификатор пользователя находится слева, домен безопасности - справа от первого «@». Это правило синтаксического анализа соответствует «жадному» методу устранения неоднозначности POSIX при обработке регулярных выражений. Если областью действия является зарегистрированное доменное имя, в качестве области действия следует принять соответствующую организацию-владельца. Например, francis@trinity.edu будет означать, что идентификация за ePPN имеет «NetID» «francis» в высшем учебном заведении, которое зарегистрировалось под доменным именем «trinity.edu». Если используются другие стили значений, их семантика должна быть профилирована участвующими сторонами. Каждое значение области определяет пространство имен, в котором назначенные имена участников являются уникальными. Учитывая это правило, ни одна пара значений eduPersonPrincipalName не должна конфликтовать. Если они одинаковы, они ссылаются на одного и того же принципала в одном административном домене.

Примечания

Если заполнено, пользователь должен иметь возможность проходить аутентификацию с этим идентификатором, используя локально управляемые сервисы. Локальные системы аутентификации должны быть в состоянии адекватно подтвердить (как для локальных, так и для удаленных приложений), что аутентифицированный принципал является лицом, которому был выдан этот идентификатор.

Первоначальное намерение - использовать этот атрибут в проекте Shibboleth, http://shibboleth.internet2.edu/. Однако быстро стало ясно, что ряд других приложений также могут эффективно использовать этот атрибут (например, видео H.323, программное обеспечение для чата и т. д.). eduPersonPrincipalName (EPPN) будет использоваться следующим образом: владелец ресурса A просматривает запись в каталоге B, чтобы обнаружить EPPN B. Затем A сообщает локальной системе авторизации, что EPPN B разрешено использовать ресурс. Когда B пытается получить доступ к ресурсу, приложение (или инфраструктура управления доступом) проверит идентичность B, сверится с локальной системой авторизации, чтобы убедиться, что B предоставлены соответствующие привилегии доступа, а затем предоставит или запретит доступ.

EPPN выглядит как идентификатор Kerberos (принципал @ realm). Сайт может выбрать локальную реализацию EPPN в качестве принципалов Kerberos. Однако это не является обязательным требованием. Сайт может выбрать аутентификацию любым способом, который является локально приемлемым.

Аналогично, EPPN НЕ следует путать с опубликованным адресом электронной почты пользователя, хотя эти два значения могут совпадать. Некоторые сайты решили сделать пользовательскую часть адресов электронной почты и участников безопасности одной и той же символьной строкой; другие сайты решили не делать этого. Даже если они кажутся одинаковыми, они используются в разных подсистемах и для разных целей, и не требуется, чтобы они оставались одинаковыми.

Атрибут uid объекта пользователя в локальном каталоге белых страниц может также содержать идентификатор входа в систему, субъект безопасности; некоторые системы (например, NDS) могут помещать идентификатор входа в атрибут cn. Эти атрибуты определены в универсальных объектных классах. К сожалению, их использование не предписано достаточно точным и последовательным образом для использования с междоменной авторизацией. Разнообразие систем уже использует эти атрибуты противоречиво; следовательно, мы определили этот новый атрибут.

Предполагается, что EPPN управляются на корпоративной основе univ of univ.edu. Определенный EPPN назначается исключительно для ассоциированного пользователя; это не идентификатор участника безопасности, совместно используемый более чем одним человеком. Наконец, каждый EPPN уникален в локальном домене безопасности.

Как долго, если вообще когда-либо, прежде чем ранее назначенный EPPN будет переназначен другому лицу, является институциональным решением. Некоторые учреждения решат никогда не переназначать EPPN. Другие могут выбрать относительно короткий перерыв перед переназначением. Хотя это усложняет работу проверяющих сторон, это неизбежно, учитывая институциональную автономию. См. Документацию MACE по передовой практике для идентификаторов для дальнейшего обсуждения этих вопросов.

Этот атрибут должен оказаться полезным при создании некоторых приложений, которые основаны на развернутых в настоящее время технологиях и на коде, который в настоящее время не использует LDAP или не требует PKI. Этот атрибут должен помочь создать структуру, способствующую интересному межучрежденческому сотрудничеству между сайтами, использующими разные технологии. Короче говоря, этот атрибут обеспечивает основу для еще одного уровня абстракции.

Примеры приложений, для которых этот атрибут был бы полезен контроль доступа к ресурсам

Пример (фрагмент LDIF) eduPersonPrincipalName: hputter@hsww.wiz

Синтаксис: directoryString; Индексирование: pres, eq, sub


Ссылка: http://middleware.internet2.edu/eduperson/docs/internet2-mace-dir-eduperson-200806.html#eduPersonPrincipalName

...