web-dev-qa-db-fra.com

Comment configurer un fournisseur d'authentification OAuth2 avec AWS API Gateway?

AWS a une API Gateway , qui facilite la configuration, la gestion et la surveillance de votre API . Toutefois, les paramètres d’autorisation de sécurité que vous pouvez définir pour les méthodes de ressources sont limités à AWS-IAM (lequel ma compréhension est un rôle de vpn interne?). 

Il semble que mes recherches sur ce sujet m’aient orienté vers la création d’un AWS Cognito pool , mais lorsque je vais en configurer un dans ma console aws, les options pour les fournisseurs sont les suivantes: Amazon, Facebook, Google+, Twitter, OpenID, et Custom. Je suppose que dans ce cas, j'utiliserais Custom? Configurez ensuite ma propre instance EC2 en tant que serveur de fournisseur d'authentification OAuth2. 

Étant donné que Oauth2 est si populaire ces jours-ci, cela me surprend de ne pas avoir de service AWS pour cela; il semble qu’ils aient choisi l’ensemble de la route OpenId ou SAML. Cela me surprend également par le manque de guides sur la configuration rapide d'un fournisseur Oauth2 dans le cloud. 

Toute aide serait appréciée.

41
cosbor11

(1) Souhaitez-vous implémenter des noeuds finaux OAuth 2.0 ( noeud final d'autorisation et noeud final de jeton ) sur la passerelle API? En d'autres termes, souhaitez-vous vraiment implémenter un serveur OAuth 2.0 ( RFC 6749 ) sur API Gateway?

(2) Ou souhaitez-vous protéger vos API Web implémentées sur API Gateway par OAuth 2.0 jeton d'accès ?

Ces deux choses sont complètement différentes.

Parce qu'il semble que vous vouliez choisir OAuth 2.0 au lieu de AWS-IAM, je suppose que ce que vous vouliez faire est de (2). Si tel est le cas, vous pouvez trouver un exemple ici: Amazon API Gateway + AWS Lambda + OAuth


Mis à jour le 2016-avr-6

Le 11 février 2016, une entrée de AWS Compute Blog , " Présentation des autoriseurs personnalisés dans Amazon API Gateway ", annonçait que Custom Authorizer avait été introduit dans Amazon API Gateway. Grâce à ce mécanisme, une API construite sur Amazon API Gateway peut déléguer la validation d'un jeton de support (tel qu'un jeton OAuth ou SAML) présenté par une application client à un autoriseur externe.

Comment protéger les API construites sur des jetons d'accès Amazon API Gateway by OAuth utilisant le nouveau mécanisme, Author Authorier, est décrite dans " Passerelle Amazon APi Gateway Custom Authorizer + OAuth ".


FYI:

OAuth 2.0 est un mécanisme d'autorisation, pas d'authentification. Mais les gens utilisent souvent OAuth 2.0 pour l'authentification et de nombreuses bibliothèques de logiciels et services utilisent OAuth 2.0 pour l'authentification.

Cognito (Identity) est une solution liée à l'authentification, pas à l'autorisation.

Custom dans Cognito permet de spécifier les fournisseurs OpenID Connect. OpenID Connect est une solution d'authentification. Ce qui rend les choses compliquées, c’est "OpenID Connect est construit sur OAuth 2.0". Voir Site OpenID Connect pour plus de détails.

30
Takahiko Kawasaki

AWS API Gateway prend en charge les étendues Amazon Cognito OAuth2 now . Vous pouvez créer un autorisateur de pool d'utilisateurs Amazon Cognito et le configurer en tant que votre méthode Authorization dans API Gateway. Pour utiliser les étendues OAuth, vous devez configurer un serveur resource et des étendues personnalisées avec votre pool d'utilisateurs Cognito . Vous pouvez configurer plusieurs clients app dans le pool d'utilisateurs Cognito avec différentes demander différentes portées à votre code d'application tout en authentifiant les utilisateurs de votre groupe d'utilisateurs. Selon la portée reçue dans le jeton access de Cognito, API Gateway autorisera/refusera l'appelant de vos API. Un guide pas à pas pour mettre en œuvre cette fonctionnalité est disponible ici

1
stackOp