2013-08-21 3 views
2

У меня есть защищенное веб-приложение, которое я хочу предоставить партнерам, чтобы их клиенты могли захватывать информацию непосредственно в форме, размещенной в моем приложении.Простая активная федерация от сторонних поставщиков идентификаторов

Форма будет отображаться в iframe, встроенном в веб-приложение партнеров. URL-адрес iframe будет указывать на мое приложение и содержать некоторую форму токена сеанса, который я выдал партнеру, прежде чем они отображали iframe.

Я не хочу хранить учетные данные пользователя в своем приложении. Мне просто нужен механизм для проверки с партнером, что пользователь аутентифицирован ими и уполномочен выполнять действие, которое я принимаю.

Я посмотрел на SAML и oAuth, но оба они кажутся невероятно сложными для реализации поставщика удостоверений. Я бы предпочел реализовать большую часть сложности и предоставить партнеру простые средства интеграции.

т.е. ключ найти решение, которое является простым для провайдера идентификации

Пример:

Партнер запрашивает маркер сеанса у меня через некоторое предопределенной конечной точки (они будут указаны конкретные действия, что их пользователь необходимо выполнить, пользовательское имя пользователя или идентификатор и клиентский токен для проверки ответа).

https://myapp.com/getsession/?username=bob&action=action1&token=CLIENT_SESSION_TOKEN

я возвращаю SERVICE_SESSION_TOKEN.

Партнер встраивает IFRAME со следующей URL в их приложениях:

https://myapp.com/action1/?username=bob&token=SERVICE_SESSION_TOKEN

Я проверить маркер и создать аутентификацию сеанс для пользователя с полномочиями для выполнения ДЕЙСТВИЙ1.

Я возвращаю форму для action1, и она отображается в iframe.

Когда пользователь отправляет форму, я могу уведомить партнера, перенаправив IFRAME на

https://partner.com/action1_callback/?username=bob&token=CLIENT_SESSION_TOKEN&result=RESULT

Есть стандарт, который поддерживает такой протокол? oAuth и SAML делают установку идентичности очень сложной.

ответ

1

Вы просматривали простой веб-токен (SWT)? Маркер имеет простой формат, как, например:

Issuer=partner.com&ExpiresOn=1262304000&Username=Bob&ClientSessionToken=B2202256-76A6-4527-8439-E6C3F017F414&HMACSHA256=AT55%2B2jLQeuigpg0xm%2Fvn7tjpSGXBUfFe0UXb0%2F9opE%3D 

Там есть только один обязательный параметр HMACSHA256, который обеспечивает маркер от несанкционированного доступа. Issuer и ExpiresOn, которые рекомендуется использовать для идентификации эмитента маркера и ограничения срока действия токена. Другие параметры зависят от информации, которую необходимо передать в токене.

+0

Это очень полезно. –

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