2013-04-23 6 views
5

Я ищу разработку приложения, которое предоставляет услуги с использованием REST. Эти службы будут доступны через браузер и не-браузерные клиенты. Я ожидаю, что будет множество установок этого программного обеспечения, которые принадлежат и управляются различными группами. Я хочу, чтобы пользователи из одной системы обращались к службам с другой. Они не будут использовать один и тот же хранилище. Я бы хотел, чтобы пользователь мог аутентифицироваться на свой экземпляр, а затем использовать токен, чтобы делать запросы к их экземпляру и удаленным экземплярам. Это похоже на использование JSON Web Tokens (JWT). Каждая система должна быть настроена так, чтобы доверять другим токенам, которые подписываются сертификатами.Аутентификация/авторизация REST с использованием федеративных идентификаторов JWT

Я читал, что это можно сделать, используя OAuth с токенами-носителями JWT, но это кажется более накладным, чем необходимо. Зачем заменять токен-носитель для токена доступа вместо того, чтобы просто использовать токены-носители? Я задаюсь вопросом, подходит ли OAuth независимо от того, не контролирует ли система доступ к данным пользователя, где, как и многие примеры в Интернете, но имеет ли пользователь доступ к данным, хранящимся в системе.

Следующая часть проблемы заключается в определении того, как создавать эти жетоны JWT, похоже, что что-то вроде WS-Trust STS было бы уместным. Я не видел ничего простого и просто аутентифицировал пользователей и возвращал токены. Потенциально может быть полезно также иметь поддержку для продления срока действия токена и проверки токенов?

В прошлом я был в состоянии включить этот тип возможностей, используя SOAP с WS-Security и SAML Assertions. Я хочу посмотреть, может ли это быть выполнено с помощью маркеров REST и JWT. В Интернете есть много сообщений, которые советуют не создавать собственные рамки безопасности, поэтому я немного не решался продвигаться вперед. Я видел, что Microsoft добавила обработчиков, чтобы позаботиться о защите сервисов с помощью токенов JWT, поэтому кажется, что они видят определенную ценность в этом подходе.

У кого-нибудь есть идеи о том, как добиться такого рода федерации удостоверения личности для служб REST в соответствии с стандартами и простой способ?

ответ

4

Да, это тот подход, который я рекомендую своим клиентам. Фактически, JWT - это то, как Windows Azure Mobile Services обеспечивает защиту своих конечных точек. JWT относительно просты в обращении (по сравнению с жетонами SAML, например), но сохраняют интересные свойства по сравнению с access_tokens (например, имеют подпись).

This doc показывает пример того, как это сделать с помощью WebApi и нашего продукта (если вы используете технологии MS). Однако принципы носят общий характер, и вы можете применять независимо от того, используете ли вы нашу STS или нет.

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

  • Нет связанных вопросов^_^