Подтвердить что ты не робот

Как настроить провайдер аутентификации OAuth2 с помощью AWS API Gateway?

AWS имеет API-шлюз, что упрощает настройку, управление и мониторинг вашего API. Однако параметры авторизации безопасности, которые вы можете установить для методов ресурсов, ограничены AWS-IAM (что, на мой взгляд, является внутренней ролью vpn?).

Похоже, что мои исследования по этому вопросу указывали на создание AWS Cognito pool, но когда я перехожу к настройке в моей консоли aws, Варианты для поставщиков: Amazon, Facebook, Google+, Twitter, OpenID и Custom. Наверное, в этом случае я бы использовал Custom? Затем настройте мой собственный экземпляр EC2 как сервер поставщика аутентификации OAuth2.

Учитывая, что Oauth2 настолько популярен в наши дни, он удивляет меня тем, что для этого нет службы AWS; кажется, что они отправили весь маршрут OpenId или SAML. Это также удивляет меня тем, что отсутствует руководство по быстрой настройке Oauth2 Provider в облаке.

Любая помощь будет оценена.

4b9b3361

Ответ 1

(1) Вы хотите реализовать конечные точки OAuth 2.0 (конечная точка авторизации и конечная точка токена) на API-шлюзе? Другими словами, действительно ли вы хотите реализовать сервер OAuth 2.0 (RFC 6749) на шлюзе API?

(2) Или вы хотите защитить свои веб-API, реализованные на шлюзе API, с помощью OAuth 2.0 токен доступа?

Эти две вещи совершенно разные.

Потому что кажется, что вы хотели выбрать OAuth 2.0 вместо AWS-IAM, я предполагаю, что вы хотели сделать (2). Если это так, вы можете найти здесь пример: Amazon API Gateway + AWS Lambda + OAuth

<ч/" > Обновлено 2016-Apr-6

11 февраля 2016 года запись в блоге AWS Compute Blog, Внедрение пользовательских авторизаторов в шлюзе API Amazon", объявили, что Custom Authorizer был введен в Amazon API Gateway. Благодаря этому механизму API, построенный на Amazon API Gateway, может делегировать проверку маркера Bearer (например, токена OAuth или SAML), представленного клиентским приложением внешним авторизатором.

Как защитить API-интерфейсы, построенные на шлюзе API Amazon, через токены доступа OAuth, используя новый механизм, Custom Authorier, описано в разделе "Amazon APi Gateway Custom Authorizer + OAuth".


FYI:

OAuth 2.0 - это механизм авторизации, а не аутентификация. Но люди часто используют OAuth 2.0 для аутентификации, и существует множество программных библиотек и служб, использующих OAuth 2.0 для аутентификации.

Cognito (Identity) - это решение, связанное с аутентификацией, а не с авторизацией.

Пользовательский интерфейс в Cognito - это место, где можно указать поставщиков OpenID Connect. OpenID Connect - это решение для аутентификации. Что усложняет ситуацию: "OpenID Connect построен поверх OAuth 2.0". Подробнее см. сайт OpenID Connect.

Ответ 2

AWS API Gateway теперь поддерживает области действия Amazon Cognito OAuth2. Вы можете создать авторизатор пула пользователей Amazon Cognito и настроить его в качестве метода авторизации в API Gateway. Чтобы использовать области OAuth, необходимо настроить сервер ресурсов и пользовательские области с помощью своего пользовательского пула Cognito. Вы можете настроить несколько клиентов приложений в пуле пользователей Cognito с разными областями или запросить разные области из кода приложения, одновременно аутентифицируя пользователей из своего пула пользователей. В зависимости от области действия, полученной в токене доступа от Cognito, API Gateway разрешит/запретит абоненту ваших API. Пошаговое руководство по реализации этой функции можно найти здесь