Nano Hash - криптовалюты, майнинг, программирование

Аутентификация/авторизация REST с использованием федеративных удостоверений JWT

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

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

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

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

Есть ли у кого-нибудь идеи о способах реализации такого рода федерации удостоверений для служб REST в соответствии со стандартами и простым способом?


Ответы:


1

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

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

26.04.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..