Требуемые утверждения Windows Identity Foundation из AD FS

Мой вопрос сводится к тому, могу ли я обновить претензии пользователя при переключении между приложениями? Из того, что я могу сказать, ответ, скорее всего, «нет». Я сделал танец, чтобы добавить «claimTypeRequired», но это бесполезно.

Скажем, у меня есть несколько приложений: App1, App2, App3, App4, App5.

Похоже, что AD FS больше не срабатывает после того, как вы проходите аутентификацию в каком-либо приложении, и нет другого выхода, кроме выхода из системы, да? Таким образом, я должен получить все претензии для всех приложений, независимо от того, в какое приложение я вхожу. В качестве примечания я создаю эти утверждения с помощью хранимой процедуры SQL из AD FS. usp_GetAppClaims @AppID = 1, @UserGuid = 'GUID'

Я храню набор утверждений для каждого приложения в соответствующем URI, который содержит несколько значений. Аналогично утверждению «Роли». Например:

Я делаю это более трудным, чем это должно быть? Меня немного беспокоит размер токена, если мне нужно иметь все претензии. 20 приложений, каждое с 10-50 претензиями... Максимум 4kb Cookie, верно? Может быть, это не имеет значения по большей части.


person MisterIsaak    schedule 03.10.2014    source источник


Ответы (3)


Если вы выполняете запрос утверждений в последних «Правилах преобразования выдачи», то каждое приложение всегда получает свой собственный набор утверждений.

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

person paullem    schedule 04.10.2014
comment
Поскольку я продолжаю изучать это, ClaimsAuthenticationManager может оказаться лучшим вариантом. Есть ли у вас шанс объяснить немного больше о вашем первом пункте? - person MisterIsaak; 06.10.2014
comment
Если сервер ADFS является IdP (учетная запись находится в AD), вы можете запросить свой SQL в правиле преобразования Acceptance. Тогда претензии для всех RP будут там (проблемы с большими токенами и т. д.). Если вы сделаете это только в правилах преобразования выдачи (для RP), тогда каждая RP будет иметь свой собственный набор утверждений. (Маленький файл cookie в ADFS, маленький файл cookie в RP.) - person paullem; 06.10.2014
comment
А, хорошо, теперь я понял, о чем ты говорил. Спасибо за объяснение. - person MisterIsaak; 07.10.2014

Скажем, «Обновить», т.е. значение Value1 меняется между доступом к App1 и App2, затем нет — вам нужно выйти из системы, хотя и «под капотом».

Что касается больших файлов cookie, когда-то (WIF 3.5) существовал «режим сеанса», т.е. asp-net/" rel="nofollow">Переключение на WIF SessionMode в ASP.NET.

person rbrayb    schedule 05.10.2014

Проблема закончилась тем, что два приложения использовали один и тот же файл cookie. Выяснилось, что вы должны дать файлу cookie уникальное имя в файле web.config, иначе вы не будете перенаправлены обратно в AD FS при переключении между приложениями.

person MisterIsaak    schedule 14.10.2014