Какой шаблон oauth следует использовать для суперпользователя, предполагающего личность клиента - PullRequest
0 голосов
/ 14 июля 2020

Я работаю в компании, где у нас есть стандартный токен JWT, выданный конечному пользователю. Этот пользователь получит свой токен доступа JWT, пройдя через поток кода авторизации oauth. Передав свой токен доступа в заголовок авторизации, они могут совершать вызовы в api микросервиса.

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

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

Может ли кто-нибудь порекомендовать хорошее решение, максимально приближенное к стандартам open id connect насколько возможно. Кажется, у Microsoft есть поток oauth с именем on behalf of, который соответствует тому, что я хочу, но похоже, что он обслуживает систему on behalf of пользователя, где я хочу, чтобы пользователь on behalf of другой пользователь.

спасибо

1 Ответ

0 голосов
/ 15 июля 2020

ДОЛГОСРОЧНЫЙ

Доступ, управляемый пользователем может предоставить решения в этой области:

  • Конечный пользователь устанавливает политику при авторизации Сервер для своих личных ресурсов
  • Администратор компании применяет политику на Сервере авторизации для корпоративных ресурсов (для нескольких пользователей)
  • Запрашивающая сторона (приложение) представляет претензии в качестве доказательства того, что они соответствуют политике

РЕАЛЬНЫЙ МИР

Практически ни один сервер авторизации не поддерживает эту возможность, и даже те, которые поддерживают, могут не делать то, что вы хотите. Однако это больше, чем шаблон OAuth, поскольку решение также связано с внутренним поведением.

ЧТО Я БУДЕН СДЕЛАТЬ

Создайте решение на основе требований:

  • Пользователь сервисного центра входит в систему, чтобы установить sh свою личность
  • После входа в систему выполняется поиск запросов, чтобы узнать, есть ли у пользователя права «супер»
  • Если да , ваш пользовательский интерфейс предоставляет возможность действовать от имени другого пользователя.
  • Пользователь сервисного центра вводит в электронном письме информацию о том, кем они действуют
  • Обновить заявки со вторым идентификатором
  • Авторизация необходимо учитывать оба идентификатора
  • Аудит должен регистрировать оба идентификатора

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

См. мои претензии, напишите о том, как вы можете применить этот шаблон для сбора требований из разных мест, а не только токенов доступа. В вашем случае объект ApiClaims может включать идентификаторы пользователей вашей базы данных для обоих пользователей.

...