Хотели бы спросить рекомендации по предоставлению сторонним лицам доступа к нашим конечным точкам API - PullRequest
0 голосов
/ 02 апреля 2019

Мы планируем предоставить нашим партнерам доступ к нашим API-интерфейсам без необходимости создания учетной записи (наши учетные записи предназначены для клиентов).

Я хочу найти способ лучше подходить кthis.

Я планирую создать службу разработчика (AWS API Gateway + AWS Lambda + AWS Dynamo), которая позволит нашим партнерам зарегистрироваться в качестве разработчика и создавать «приложения».

Мы дадим им "clientId" и "секрет клиента" (или, может быть, "секрет приложения")

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Все зависит от того, может ли ваш партнер использовать API в качестве клиента или нет.

Если доступен только анонимный доступ, вы можете добавить простой Auth на основе ключа API и / или IP.

В противном случае стандартом является Oauth2 или комбинированное решение.

Oauth2 - это большая система, которая позволяет вам и вашим пользователям управлять доступом.

В комбинированном решении вы можете написать свой собственный простой Oauth2. Добавить табличное пользовательское приложение при хранении токенов JWT, которые может использовать этот партнер.

ОБНОВЛЕНИЕ (JWT)

Вкратце: JWT - это токен, который содержит данные + подпись + информацию о действии токена.

Чаще всего это пользовательские данные, но никто не может запретить вам вводить ваш партнерский ID и разрешения там.

Правильное использование JWT позволяет облегчить базу данных. Я предлагаю вам использовать 2 JWT.

1 - долгосрочный, который содержит идентификатор партнера. После проверки правильности токена и наличия у партнера прав, он используется для создания краткосрочного токена JWT.

2 - краткосрочный, который не использует базу данных для проверки себя и получения разрешений из базы данных, он используется для связи с API

0 голосов
/ 02 апреля 2019

Вы можете использовать JWT (JSON Web Tokens) и дать им ключ API.Это довольно стандартный механизм и очень легкий.

...