Как соотносятся атрибуты между .NET (ADFS / WIF) и Java (Федерация) - PullRequest
0 голосов
/ 14 марта 2011

Предположим, есть две компании: A.NET, которая является магазином .NET, и B.Java, который является магазином Java.Пользователям каждой компании необходимо получить доступ к веб-сайтам другой компании, поэтому две компании настраивают Федерацию с использованием ADFS и Oracle Identity Federation или OpenSSO Federation.

В мире .NET к атрибутам обращаются как к утверждениям внутри IClaimsPrincipal иIClaimsIdentity.

В мире Java к атрибутам обращаются как к заголовкам HTTP.

Автоматизирует ли инфраструктура федерации это отображение автоматически, т.е.

Если пользователь A.NET обращается кB.Java сайт получает свои атрибуты в качестве утверждений?

Если пользователь B.Java получает доступ к сайту A.NET, они получают свои атрибуты в виде заголовков?

1 Ответ

1 голос
/ 14 марта 2011

Если вы можете использовать WS-Federation с обеих сторон, то в обоих случаях основным артефактом, с которым вы будете иметь дело, является жетон SAML.

В целом, ваша инфраструктура федерации полностью независима от стека приложений.ADFS выдаст токены SAML в любом случае (для приложения Java и для приложения .NET).OIF также должен будет выдавать токены SAML для обоих наборов пользователей.

В мире .NET WIF будет анализировать / проверять и т. Д. Токен SAML в объектную модель .NET, которая представляет информацию в нем (претензии, эмитент и т. д.).Эта объектная модель - ClaimsPrincipal (и все связанные интерфейсы и типы).Вам придется взглянуть на WIF-эквивалент в Java-мире.Но в любом случае входные данные являются токеном SAML.

В вашем сценарии вполне вероятно, что в обоих STS будет преобразование токена:

Для приложения .NET:

1 - пользователь из компании B аутентифицируется на OIF и получает токен SAML для компании. A 2 - пользователь отправляет токен в ADFS. 3 - ADFS считывает токен из B, проверяет и выдает новый токен (потенциально и очень вероятно, добавляя /преобразование / удаление утверждений) 4 - пользователь отправляет преобразованный токен в приложение A

Последовательность действий пользователя из A, обращающегося к приложению java на B, точно такая же.Обратите внимание, что в этом случае существует двустороннее доверие (Компания A доверяет эмитенту в B и наоборот)

...