다음을 통해 공유


ACS 재시도 지침

게시: 2013년 1월

업데이트 날짜: 2015년 7월

적용 대상: Azure

Microsoft Azure Active Directory 액세스 제어(액세스 제어 서비스 또는 ACS라고도 함)에서는 클라이언트가 토큰 요청을 전송할 수 있는 다양한 토큰 발급 및 관리 끝점을 지원합니다. 이 항목에는 토큰 요청이 실패할 경우 재시도 논리를 구현하는 지침이 나와 있습니다.

오류 처리 시나리오

HTTP 시리즈 오류 코드를 반환하는 토큰 요청 실패는 일반적으로 재시도에 응답합니다. 일부 시나리오에서는 클라이언트가 ACS에 대해 자동화된 요청을 수행하는 응용 프로그램이나 서비스입니다. 또 다른 시나리오에서는 WS-Federation 프로토콜을 사용하는 웹 기반 페더레이션 등과 같이 클라이언트가 웹 브라우저이며 이 경우 최종 사용자가 수동으로 작업을 재시도해야 합니다. 이 항목에서는 클라이언트가 응용 프로그램이나 서비스인, 오류 처리 시나리오에 대해 설명합니다.

이러한 시나리오의 예는 다음과 같습니다.

재시도 지침

다음 지침은 오류 처리 시나리오에서 재시도 논리를 구현하는 방법에 대해 설명합니다.

지침 1: HTTP 500 시리즈 오류 응답을 기준으로 재시도 논리 구현

ACS가 HTTP 500 시리즈 오류를 반환할 경우 재시도 논리를 구현하는 것이 좋습니다. 다음 목록에는 일반적인 HTTP 500 시리즈 오류의 예가 나와 있습니다.

  • HTTP 오류 500 - 내부 서버 오류

  • HTTP 오류 502 - 잘못된 게이트웨이

  • HTTP 오류 503 - 서비스를 사용할 수 없음

  • HTTP 오류 504 – 게이트웨이 시간 초과

재시도 로직에 개별 HTTP 코드를 열거할 수 있지만 HTTP 500 시리즈 오류가 반환되면 재시도 논리를 호출할 수 있습니다.

재시도 논리는 HTTP 오류 코드(예: HTTP 504(외부 서버 시간 초과))에 의해 트리거되어야 하며 ACS 오류 코드(예: ACS90005)에 의해 트리거되면 안 됩니다. ACS 오류 코드는 참고용이며 변경될 수 있습니다.

일반적으로 HTTP 400 시리즈 오류 코드가 반환된 경우에는 재시도 논리를 구현하지 않는 것이 좋습니다. ACS에서 400 시리즈 HTTP 오류 응답 코드가 반환되는 것은 요청이 잘못되었으며 수정해야 하는 경우입니다. 단, 예외로 오류 코드 429("요청 수가 너무 많습니다.")는 네임 스페이스가 장기간 토큰 요청 속도 제한을 초과했음을 나타냅니다. 429 오류의 경우 관리자가 네임스페이스 작업 분포를 검토 및 수정할 때까지 백오프 타이머를 통한 재시도로 즉각적인 토큰 요청 백로그를 해결할 수 있습니다. 자세한 내용은 ACS 서비스 제한를 참조하세요.

지침 2: 재시도 시 최적의 흐름 제어를 위해 백오프 타이머를 사용해야 함

클라이언트가 HTTP 500 시리즈 오류를 수신할 경우 클라이언트는 요청을 재시도하기 전에 일정 기간 기다려야 합니다. 최적의 결과를 위해 각각의 다음 재시도로 이 기간이 늘어나는 것이 좋습니다. 이 방법을 통해 해결하는 데 있어 오래 걸리는 일시적인 네트워크 또는 서버 문제에 대해 요청 속도를 최적화하는 동시에 일시적인 오류를 빠르게 해결할 수 있습니다.

예를 들어 각 인스턴스마다 재시도 전 지연이 기하급수적으로 증가하는 경우 기하급수적 백오프 타이머를 사용합니다(예: 재시도 1: 1초, 재시도 2: 2초, 재시도 3: 4초 등).

사용자 환경 요구 사항을 바탕으로 각 재시도 간 재시도 횟수와 시간을 조정합니다. 단, 5분 동안 최대 5회까지의 재시도를 수행하는 것이 좋습니다. 시간 초과로 인해 실패할 경우 문제를 해결하는 데 시간이 오래 걸릴 수 있습니다.

지침 3: 항목을 만들거나 삭제하기 전에 항목이 존재하지 않는지 확인

ACS 관리 서비스로 만들기 작업이나 삭제 작업을 수행할 때(예: 새 신뢰 당사자 응용 프로그램 만들기, 규칙 삭제 등) 작업을 수행하기 전에 항목이 있으면 재시도 논리를 쿼리해야 합니다. 서버 응답을 전달하는 동안 발생하는 일시적인 네트워크 오류 등과 같이 일부 상황에서는 클라이언트에 오류 응답이 수신되어도 만들기 작업이나 삭제 작업을 수행할 수 있습니다.

항목의 존재 여부를 확인하지 않고 만들기 작업이 재시도될 경우 중복 항목이 만들어질 수 있으며, 항목이 고유해야 하는 경우 시스템에서 HTTP 400 오류가 반환될 수 있습니다.

항목의 존재 여부를 확인하지 않고 삭제 작업이 재시도될 경우 시스템에서 항목을 찾을 수 없으면 HTTP 400 오류가 반환될 수 있습니다.

참고 항목

개념

ACS 오류 코드
ACS 서비스 제한
ACS 관리 서비스
방법: OAuth WRAP 프로토콜을 통해 ACS에서 토큰 요청
코드 샘플: OAuth 2.0 인증서 인증
ACS 지침 색인