Diretrizes de Retíduo ACS
Atualizado: 6 de julho de 2015
Aplica-se a: Azure
Microsoft Azure Ative Directory Controlo de Acesso (também conhecido como Controlo de Acesso Service ou ACS) suporta uma série de diferentes pontos finais de emissão e gestão para os quais os clientes podem enviar pedidos simbólicos. Este tópico define orientações para implementar a lógica de relemissão quando os pedidos simbólicos falham.
Cenários Error-Handling
As falhas de pedido de token que devolvem códigos de erro da série HTTP 500 normalmente respondem a recauchutagens. Em alguns cenários, o cliente é uma aplicação ou serviço que faz pedidos automatizados à ACS. Noutros cenários, como a federação baseada na Web que utiliza o protocolo WS-Federation, o cliente é um navegador web e o utilizador final deve voltar a tentar a operação manualmente. Este tópico abrange cenários de tratamento de erros em que o cliente é uma aplicação ou serviço.
Os cenários incluem:
Operações de gestão que utilizam o Serviço de Gestão ACS
Pedidos de Token para serviços web utilizando o protocolo OAuth WRAP (ver Como: Solicitar um Token a partir de ACS através do Protocolo de EMBRULHO OAuth)
Pedidos de Token para Serviços Web utilizando o protocolo OAuth 2.0 (ver Amostra de Código: Autenticação de Certificado OAuth 2.0)
Diretrizes de Retírição
As seguintes orientações explicam como implementar a lógica de retírimento nos cenários de tratamento de erros.
Orientação #1: Implementar lógica de repetição com base em respostas de erro da série HTTP 500
A lógica de relemissão é fortemente recomendada quando o ACS devolve erros da série HTTP 500. A lista seguinte inclui exemplos de erros típicos da série HTTP 500.
ERRO HTTP 500 - Erro interno do servidor
ERRO HTTP 502 - Bad Gateway
HTTP Error 503 - Serviço Indisponível
HTTP Error 504 - Gateway Timeout
Embora os códigos HTTP individuais possam ser enumerados na lógica de relagem, é suficiente invocar uma lógica de relagem se algum erro da série HTTP 500 for devolvido.
A lógica de reagem deve ser desencadeada por códigos de erro HTTP, tais como HTTP 504 (tempo limite de servidor externo) e não por códigos de erro ACS, como ACS90005. Os códigos de erro ACS são informativos e sujeitos a alterações.
Normalmente, a lógica de relagem não é recomendada quando os códigos de erro da série HTTP 400 são devolvidos. Um código de resposta a erros HTTP de série 400 da ACS significa que o pedido é inválido e precisa de ser revisto. Uma exceção é o código de erro 429 ("Demasiados pedidos"), o que indica que o espaço de nome excedeu o limite de taxa de pedido de token por um período prolongado. Para 429 erros, as retrígios com um temporizador de backoff podem resolver o atraso imediato do pedido de token até que o administrador tenha tempo para rever e rever a distribuição da carga de trabalho do espaço de nome. Para mais informações, consulte as Limitações de Serviço ACS.
Orientação #2: As retróscamos devem utilizar um temporizador de back-off para um controlo de fluxo ideal
Quando um cliente recebe um erro da série HTTP 500, o cliente deve aguardar um período de tempo especificado antes de voltar a tentar o pedido. Para obter melhores resultados, recomenda-se que este período de tempo aumente com cada relemisso subsequente. Esta abordagem permite que os erros transitórios sejam resolvidos rapidamente, ao mesmo tempo que otimiza a taxa de pedido para problemas transitórios de rede ou servidor que demoram mais tempo a ser resolvidos.
Por exemplo, utilize um temporizador exponencial de recuo onde o atraso antes de voltar a tentar aumenta exponencialmente a cada instância, como Retry 1: 1 segundo, Retry 2: 2 segundos, Retry 3: 4 segundos, e assim por diante.
Ajuste o número de retrações e o tempo entre cada tentativa com base nos requisitos de experiência do utilizador. No entanto, recomendamos até cinco retrófas durante um período de cinco minutos. Falhas causadas por um intervalo demoram mais tempo a resolver.
Orientação #3: Verifique se o item não existe antes de tentar criá-lo ou eliminá-lo
Ao realizar operações de criação ou eliminação com o Serviço de Gestão ACS, como a criação de uma nova aplicação de partidos dependentes ou a eliminação de uma regra, a lógica de recandidatura deve consultar se o item existe antes de realizar a operação. Em algumas circunstâncias, como uma falha de rede transitória que ocorre durante a entrega da resposta do servidor, uma operação de criação ou eliminação pode ter sucesso mesmo quando o cliente obtém uma resposta de erro.
Se uma operação de criação for novamente julgada sem verificar a existência do item, podem ser criados itens duplicados. , Além disso, o sistema pode devolver um erro HTTP 400 se o item tiver de ser único.
Se uma operação de eliminação for novamente julgada sem verificar a existência do item, o sistema poderá devolver um erro HTTP 400 quando não conseguir encontrar o item.
Consulte também
Conceitos
Códigos de erro ACS
Limitações de serviços ACS
Serviço de Gestão ACS
Como: Solicitar um Token da ACS através do Protocolo de WRAP OAuth
Amostra de código: Autenticação do Certificado OAuth 2.0
Índice de Orientações ACS