Interfaces resilientes com processos externos
Neste artigo, fornecemos orientações sobre como planejar e implementar as APIs RESTful no percurso do usuário e tornar seu aplicativo mais resiliente a falhas de API.
Garantir o posicionamento correto das APIs
As políticas do IEF (Identity Experience Framework) permitem chamar um sistema externo usando um perfil técnico da API RESTful. Os sistemas externos não são controlados pelo ambiente de runtime do IEF e são um ponto de falha potencial.
Como gerenciar sistemas externos usando APIs
Ao chamar uma interface para acessar determinados dados, verifique se os dados vão impulsionar a decisão de autenticação. Avalie se as informações são essenciais para a funcionalidade principal do aplicativo. Por exemplo, um comércio eletrônico versus uma funcionalidade secundária, como uma administração. Se as informações não forem necessárias para a autenticação e forem necessárias apenas para cenários secundários, considere mover a chamada para a lógica do aplicativo.
Se os dados necessários para a autenticação forem relativamente estáticos e pequenos, e não tiver nenhuma outra razão comercial para serem externalizados do diretório, considere tê-los no diretório.
Remova as chamadas de API do caminho pré-autenticado sempre que possível. Se não puder, será necessário fazer proteções estritas para negação de serviço (DoS) e ataques de DDoS (negação de serviço distribuída) na frente de suas APIs. Invasores podem carregar a página de logon e tentar inundar sua API com ataques DoS e desabilitar seu aplicativo. Por exemplo, usando CAPTCHA na sua entrada, o fluxo de criação de conta pode ajudar.
Use os conectores de API do fluxo de usuário de criação de conta integrado sempre que possível para integrar com APIs Web, seja depois de federar com um provedor de identidade durante a criação da conta, ou antes de criar o usuário. Como os fluxos dos usuários já foram amplamente testados, é provável que não seja necessário executar testes funcionais, de desempenho ou de escala no nível do fluxo do usuário. Mas ainda é necessário testar seus aplicativos quanto à funcionalidade, desempenho e escala.
Os perfis técnicos da API RESTful do Azure AD B2C não fornecem nenhum comportamento de cache. Em vez disso, o perfil da API RESTful implementa uma lógica de nova tentativa e um tempo limite que é integrado à política.
Para APIs que precisam de dados de escrita, coloque uma tarefa na fila para que essas tarefas sejam executadas por um trabalho em segundo plano. Serviços como filas do Azure podem ser usados. Essa prática fará com que a API retorne com eficiência e aumente o desempenho de execução da política.
Tratamento de erros de API
À medida que as APIs estão fora do sistema Azure AD B2C, é necessário ter o tratamento de erro adequado dentro do perfil técnico. Certifique-se de que o usuário final seja informado adequadamente e se o aplicativo pode lidar com a falha normalmente.
Como tratar normalmente erros de API
Uma API pode falhar por vários motivos. Torne seu aplicativo resiliente a tais falhas. Retorne uma mensagem de erro HTTP 4XX se a API não puder concluir a solicitação. Na política do Azure AD B2C, tente tratar normalmente a indisponibilidade da API e, talvez, renderizar uma experiência reduzida.
Tratar erros transitórios normalmente. O perfil da API RESTful permite configurar mensagens de erro para vários disjuntores.
Monitore proativamente e use a CICD (Integração Contínua/Entrega Contínua), gire as credenciais de acesso à API, como senhas e certificados usados pelo Mecanismo de perfil técnico.
Gerenciamento de APIs - melhores práticas
Embora você implante as APIs REST e configure o perfil técnico RESTful, seguir as melhores práticas recomendadas o ajudará a não cometer erros comuns e coisas que estão sendo ignoradas.
Como gerenciar APIs
O Gerenciamento de API (APIM) publica, gerencia e analisa suas APIs. O APIM também processa a autenticação para fornecer acesso seguro aos serviços de back-end e aos microsserviços. Use um gateway de API para expandir as implantações de API, o cache e o balanceamento de carga.
A recomendação é obter o token correto no início do percurso do usuário em vez de chamar várias vezes para cada API e proteger uma API de APIM do Azure.