WSO2 API Manager - Autentica o usuário do cliente API

Sep 08 2020

Estou desenvolvendo um conjunto de microsserviços expostos como REST por meio do gerenciador de API WSO2.

Agora, eu gostaria de ligar para esses serviços no front end Angular. Qual é a melhor maneira de lidar com a autenticação e autorização do usuário?

Descobri que isso pode ser feito por meio da Concessão de senha OAuth2, conforme descrito aqui .

Quando o usuário efetua login, as credenciais do usuário serão enviadas para o endpoint específico WSO2 APIM (/ token), ele valida, gera o token e este token será enviado no cabeçalho para chamadas subsequentes.

Esta é a melhor abordagem para este caso?

Desde já, obrigado,

Respostas

2 SushilkumarYadav Sep 14 2020 at 21:23

Conforme mencionado em sua pergunta, https://apim.docs.wso2.com/en/next/learn/api-security/oauth2/grant-types/password-grant/Este método só funcionará quando você tiver o nome de usuário e a senha do proprietário do recurso .

Considere um exemplo, suponha que você publicou as APIs e criou um usuário (proprietário do recurso) no armazenamento WSO2. este usuário está inscrito na API usando o aplicativo. o aplicativo terá um ID de cliente e um segredo, que serão usados ​​para gerar o token OAuth2.0. este token será usado para invocar as APIs.

Agora, em seu projeto angular, uma maneira é codificar permanentemente o base64 (clientid: clientsecret) e chamar a API de token para gerar o token de portador OAuth2.0. use o token gerado para chamar as APIs integradas no WSO2. Para proteger suas APIs do ataque, use a limitação de taxa com base no IP

Agora, considere outra situação, se você deseja que o usuário se autentique primeiro, gere o JWT tokenpara esse usuário usando o tipo de concessão de senha (usando o nome de usuário e a senha do usuário real) e, usando esse JWT, gere o OAuth2.0 Bearer tokenque será usado para chamar as APIs.

Etapas a serem realizadas para a segunda situação:

  1. durante o registro (do Angular), internamente onboard o usuário no Servidor de Identidade WSO2. (Existe uma API WSO2 para o mesmo)
  2. Após o registro, gere o token JWT do servidor de identidade autenticando o nome de usuário e a senha. (Novamente, para isso, WSO2 API está lá)
  3. agora usando este token JWT, gere o token OAuth2.0 do WSO2 APIM
  4. use este token para chamar as APIs

A segunda abordagem é a abordagem ideal para autenticação e autorização de usuário para serviço usando WSO2 como gateway, enquanto a primeira abordagem concentra-se principalmente na autenticação e autorização de serviço para serviço

Espero que isso responda sua pergunta

Link de referência: https://medium.com/wso2-learning/how-to-protect-your-apis-with-self-contained-access-token-jwt-using-wso2-api-manager-and-wso2-75673d8a4686