Я работаю над созданием токенов Bearer и OAuth / OAuth2 уже несколько лет. И я чувствую, что у меня это прилично понято, но когда я ищу, как сделать то, что я хочу, я не могу это найти.
Общее понимание. Есть сервер, который ПРЕДОСТАВЛЯЕТ токены (и также проверяет / аннулирует / обновляет токены). И затем есть серверы (или приложения), которые используют токен. Я ничего не делаю с внешними API-библиотеками, но у нас есть несколько сайтов компании, и я хочу создать один сервер входа, который предоставляет токены доступа.
Таким образом, у меня будет 1 сервер для предоставления токенов, а затем отдельный сервер API, который использует этот токен для авторизации пользователя на конечных точках и, конечно, на входной части. Но проблема, с которой я сталкиваюсь, заключается в том, чтобы выяснить, как настроить сервер для использования токена. Кажется, что каждый просто объясняет, как создать сервер, который его предоставляет. Это круто, и я знаю, как получить токен от Google и использовать его. Но я хочу создать сервер, который предоставляет авторизацию через токены доступа.
Итак, мое приложение SPA, скажем, реагирует, запрашивает токен доступа с сервера A, который является сервером OAuth2. Мы используем поток учетных данных, поскольку его компания / зарегистрированные пользователи входят в систему. Если они успешны, им предоставляется токен доступа и идентификационные данные. Здорово. Храните те на переднем конце. Затем я хочу запросить мои ... встречи с сервера B, сервера API веб-сайтов. Я передаю указанный токен доступа как токен на предъявителя. Сервер B должен быть настроен как сервер OAuth 2, но только как клиентский сервер. Если область действия и клиент токена доступа (и, разумеется, секрет) не соответствуют токену доступа, пользователю будет отказано в доступе к конечным точкам сервера B. Сервер B НЕ НУЖЕН проверять токен доступа, так как ему известно о секрете, используемом с сервера A. Он может проверить его сам.
Это правильно, или я массово смотрю на OAuth2 неправильно?