Служба B - это многопользовательский API.Как обрабатывать связь сервера с сервером для многопользовательского отдыха api?
Служба A - это служба, которая должна выполнять работу от имени любого арендатора.
Что вы рекомендуете для аутентификации/авторизации A -> B связи?
Текущая настройка службы B (остаточный API): все данные находятся в одной базе данных и одной схеме с столбцом идентификатора арендатора в каждой таблице. Мы используем oauth 2, чтобы дать пользователям доступ к токенам после входа в форму. Маркер доступа включает требование, в котором есть идентификатор арендатора. Когда пользователи делают запросы, мы выясняем их идентификатор арендатора из заявки и добавляем этот идентификатор арендатора как часть предложения «где» для извлечения только своих данных.
Теперь скажите, что служба A должна выполнить некоторую работу для арендатора «foo». Наивный подход заключается в том, чтобы войти в систему как пользователь, связанный с арендатором «foo» и отправить этот токен доступа.
Любые лучшие подходы?
Если вы уже используете oauth2, не можете обслуживать A, просто получите «правильный» билет через oauth для доступа к сервису B от имени пользователя? –
Да, это то, что мы делаем сейчас. Но это означает, что каждый раз, когда Служба А должна выполнять работу для другого арендатора, ей нужно получить новый токен. В идеале я бы хотел, чтобы он получил один токен и просто получил разрешение на доступ к любым данным от любого арендатора. Это похоже на то, что поток учетных данных клиента может быть тем, что я хочу ... https://tools.ietf.org/html/rfc6749#section-4.4 –