#c# #iis-6 #shibboleth
#c# #iis-6 #shibboleth
Вопрос:
Я успешно установил Shibboleth SP на наш сервер (server 2003 IIS6), и он работает со сторонним IDP. Я знаю, что это работает, поскольку значение /Session возвращает нужные мне атрибуты.
На данный момент я не могу получить доступ к этим переменным сеанса из приложения .net. переменные не помещаются в head.
Любая помощь с благодарностью.
—Обновить — В attribute-map.xml У меня есть следующее, связанное с нужным мне атрибутом (принадлежность)
<Attribute name="urn:mace:dir:attribute-def:eduPersonScopedAffiliation" id="affiliation" aliases="Shib-EP-Affiliation">
<AttributeDecoder xsi:type="ScopedAttributeDecoder" caseSensitive="false"/>
</Attribute>
<Attribute name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" id="affiliation" aliases="Shib-EP-Affiliation">
<AttributeDecoder xsi:type="ScopedAttributeDecoder" caseSensitive="false"/>
</Attribute>
Есть ли что-то дополнительное, что я должен добавить сюда?
Ответ №1:
Насколько я помню, атрибуты должны быть доступны в Request.ServerVariables
коллекции или Request.Headers
с ключами, которые вы указываете в своем Attribute-Map.xml конфигурация. Однако имейте в виду, что при использовании IIS и ASP.NET при этом они, как правило, получают префикс, добавляемый к настроенным вами именам, и некоторые другие вещи, которые также происходят. Самый надежный подход к выяснению фактических значений ключей — запустить тестовую страницу, которая перебирает содержимое коллекции ServerVariables
or Headers
и отображает их.
Комментарии:
1. Я просмотрел обе эти коллекции и не вижу связанной с shibboleth переменной :(. Я добавил информацию о attibute-map.xml выше.
2. Сама конфигурация Shibboleth несколько выходит за рамки исходного вопроса, поскольку вы спросили, как получить доступ к атрибутам в asp.net приложение. Тем не менее, я могу сказать, что по опыту очень легко получить неправильную конфигурацию Shibboleth, и проблема может быть даже в другом месте, кроме Attibute-Map.xml досье. Я бы посоветовал вам включить наиболее подробный уровень ведения журнала в shibd. logger, перезапустите демон и просмотрите журнал, чтобы узнать, какие атрибуты поступают и сопоставляются при аутентификации и перенаправлении. Однако группа Shibboleth Google была бы лучшим местом для вопросов о конфигурации.
3. У меня была неправильно настроена конфигурация, поэтому она работала, но не там, где я ожидал.
Ответ №2:
Вам понадобится IIS для передачи заголовков Shibb вашему приложению — см. Описание здесь: https://spaces.ais.ucla.edu/display/iamucla/InstallShibSPOnWindowsIIS
Ответ №3:
У меня была такая же проблема, и в конце концов я обнаружил проблему в своем shibboleth2.xml
.
В моем <Host>
элементе мне не хватало authType="shibboleth"
атрибута. Мое приложение смогло декодировать запросы SAML, и я мог видеть свои атрибуты /Shibboleth.sso/Session
, но атрибуты не заполняли переменные среды или заголовки. Как только я добавил authType
атрибут, все встало на свои места.
Кроме того, было очень полезно создать .aspx
страницу, содержащую только
<% @ Page Language="C#" Trace="true" %>
во время поиска атрибутов Shibboleth.
Ответ №4:
Я столкнулся с аналогичной проблемой, и оказалось, что мой <Host>
элемент в shibboleth2.xml
файле указывал путь, который был недопустим для того места, где я тестировал. Если я посещал URL-адрес под путем, заголовки были доступны.
Обновление атрибута ‘path’ до допустимого пути для сайта решило эту проблему для меня.