Использование параметра WHR с проверкой подлинности SharePoint 2010 и SAML
Исходная статья опубликована в четверг, 15 сентября 2011 г.
Исправления в SharePoint 2010 SP1 с июньским накопительным пакетом обновления, позволяющим использовать параметр WHR, вызвали много вопросов и путаницы (я даже сам немного растерялся). Эта технология сейчас работает, но для этого необходимо выполнить некоторые действия.
- Настроить SPTrustedIdentityTokenIssuer.
SPTrustedIdentityTokenIssuer теперь имеет свойство с именем UseWHomeRealmParameter; его необходимо установить равным true, чтобы SharePoint передавал параметр WHR в IdP. Вот фрагмент PowerShell, который я использовал для этого:
$ap = get-sptrustedidentitytokenissuer -identity "ADFS with Roles"
$ap.UseWHomeRealmParameter = $true
$ap.Update()
Все очень просто — теперь SharePoint будет отправлять любой найденный параметр WHR.
- Написать или сделать что-либо, чтобы добавить параметр WHR.
В моем случае я написал HttpModule, чтобы добавить параметр WHR. Вот как я это сделал.
- В переопределении Init я добавил обработчик для события BeginRequest.
- В коде для события BeginRequest я проверяю следующее:
- что запрос направлен в _trust/default.aspx, И
- что в запрос еще НЕ включен параметр WHR.
- Если запрос соответствует этим двум условиям, то я создаю перенаправление обратно в _trust/default.aspx. При этом я:
- добавляю все параметры строки запроса, которые были раньше;
- добавляю в конце свой параметр WHR;
- выполняю Response.Redirect обратно в _trust/default.aspx.
Вот и все. Я проверял это с использованием сеанса браузера InPrivate в IE, поскольку он не будет использовать файлы проверки подлинности cookie, которые могли бы сбросить результаты тестирования. До сих пор все тесты работали как ожидалось — я также проверил в Fiddler, что теперь параметр WHR перетекает в ADFS (в моем случае), как и требовалось. Я добавил к этой статье исходный код для этого маленького проекта, чтобы помочь вам начать работу.
Это локализованная запись блога. Исходная статья находится по ссылке Using the WHR Parameter with SharePoint 2010 and SAML Auth