2014-10-03 3 views
0

Вопрос мой сводится к тому, могу ли я обновить претензии пользователя при переключении между приложениями? Из того, что я могу сказать, ответ скорее всего «нет». Я сделал танец, чтобы добавить «ClaimTypeRequired», но это не полезно.Требования к удостоверениям подлинности Windows Identity от AD FS

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

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

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

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

ответ

0

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

1

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

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

+0

Поскольку я продолжаю изучать это, ClaimsAuthenticationManager может оказаться лучшим вариантом. Любой шанс, который вы получаете, может объяснить немного больше о вашей первой точке? – MisterIsaak

+0

Если сервером ADFS является IdP (учетная запись находится в AD), вы можете запросить свой SQL в правиле преобразования Acceptance. Тогда заявки на все RP будут там (большие проблемы с токеном и т. Д.). Если вы делаете это только в правилах преобразования (для RP), то каждый RP имеет свой собственный набор требований. (Маленький печенье в ADFS, маленький cookie на RP.) – paullem

+0

А теперь, я понимаю, о чем вы говорили. Спасибо за объяснение. – MisterIsaak

1

Wrt, «Refresh», то есть значение Value1 изменяется между доступом к App1 и App2, а затем нет - вы должны выйти из системы, хотя и «под капотом».

С точки зрения больших файлов cookie один раз (WIF 3.5) был «Режим сеанса», то есть Switching to WIF SessionMode in ASP.NET.

Смежные вопросы