다음을 통해 공유


개발하는 디먼 애플리케이션에서 인증 및 권한 부여의 복원력 향상

Microsoft ID 플랫폼 및 Microsoft Entra ID를 사용하여 디먼 애플리케이션의 복원력을 높이는 방법을 알아봅니다. 백그라운드 프로세스, 서비스, 서버-서버 앱 및 사용자가 없는 애플리케이션에 대한 정보를 찾습니다.

Microsoft ID 플랫폼이란?

다음 다이어그램에서는 Microsoft ID 플랫폼을 호출하는 디먼 애플리케이션을 보여 줍니다.

Microsoft ID 플랫폼을 호출하는 디먼 애플리케이션입니다.

Azure 리소스에 대한 관리 ID

Microsoft Azure에서 디먼 앱을 빌드하는 경우 비밀 및 자격 증명을 처리하는 Azure 리소스에 대한 관리 ID를 사용합니다. 이 기능은 인증서 만료, 회전 또는 신뢰를 처리하여 복원력을 향상시킵니다.

Azure 리소스에 대한 관리 ID란?

관리 ID는 Microsoft ID 플랫폼의 수명이 긴 액세스 토큰 및 정보를 사용하여 토큰이 만료되기 전에 새 토큰을 획득합니다. 새 토큰을 획득하는 동안 앱이 실행됩니다.

관리 ID는 서비스 종속성을 통합하여 지역 외부 오류를 방지하는 데 도움이 되는 지역별 엔드포인트를 사용합니다. 지역 엔드포인트는 지리적 영역에 트래픽을 유지하는 데 도움이 됩니다. 예를 들어 Azure 리소스가 WestUS2에 있는 경우 모든 트래픽은 WestUS2에 유지됩니다.

Microsoft 인증 라이브러리

디먼 앱을 개발하고 관리 ID를 사용하지 않는 경우 인증 및 권한 부여에 MSAL(Microsoft 인증 라이브러리)을 사용합니다. MSAL은 클라이언트 자격 증명을 제공하는 프로세스를 용이하게 합니다. 예를 들어 애플리케이션은 인증서 기반 자격 증명을 사용하여 JSON 웹 토큰 어설션을 만들고 서명할 필요가 없습니다.

MSAL(Microsoft 인증 라이브러리) 개요를 참조하세요.

.NET 개발자용 Microsoft.Identity.Web

ASP.NET Core에서 디먼 앱을 개발하는 경우 Microsoft.Identity.Web 라이브러리를 사용하여 권한 부여를 용이하게 합니다. 여기에는 여러 지역에서 실행되는 분산 앱에 대한 분산 토큰 캐시 전략이 포함됩니다.

더 알아보세요:

토큰 캐시 및 저장

인증 및 권한 부여에 MSAL을 사용하지 않는 경우 토큰을 캐싱하고 저장하는 모범 사례가 있습니다. MSAL은 이러한 모범 사례를 구현하고 따릅니다.

애플리케이션은 IdP(ID 공급자)로부터 토큰을 획득하여 보호된 API를 호출하도록 애플리케이션에 권한을 부여합니다. 앱이 토큰을 받으면 토큰이 포함된 응답에는 토큰을 캐시하고 재사용하는 기간을 애플리케이션에 알려주는 속성이 포함 expires\_in 됩니다. 애플리케이션이 이 속성을 사용하여 expires\_in 토큰 수명을 결정하도록 합니다. 애플리케이션이 API 액세스 토큰의 디코딩을 시도하지 않는지 확인합니다. 캐시된 토큰을 사용하면 앱과 Microsoft ID 플랫폼 간의 불필요한 트래픽을 방지할 수 있습니다. 사용자는 토큰의 수명 동안 애플리케이션에 로그인됩니다.

Microsoft Entra ID 백업 인증 시스템은 지원되는 프로토콜 및 흐름을 사용하는 애플리케이션에 복원력을 제공합니다. 백업 인증을 활용하기 위한 애플리케이션 요구 사항에 대한 자세한 내용은 백업 인증 시스템에 대한 애플리케이션 요구 사항을 참조하세요.

HTTP 429 및 5xx 오류 코드

다음 섹션을 사용하여 HTTP 429 및 5xx 오류 코드에 대해 알아봅니다.

HTTP 429

복원력에 영향을 주는 HTTP 오류가 있습니다. 애플리케이션이 HTTP 429 오류 코드, 너무 많은 요청을 수신하는 경우 Microsoft ID 플랫폼은 요청을 제한하여 앱이 토큰을 수신하지 못하게 합니다. 앱이 Retry-After 응답 필드의 시간이 만료될 때까지 토큰 획득을 시도하지 않도록 합니다. 429 오류는 애플리케이션이 토큰을 올바르게 캐시하고 재사용하지 않음을 나타내는 경우가 많습니다.

HTTP 5xx

애플리케이션이 HTTP 5x 오류 코드를 수신하는 경우 앱은 빠른 재시도 루프를 입력하지 않아야 합니다. 애플리케이션이 Retry-After 필드가 만료될 때까지 대기하는지 확인합니다. 응답에서 Retry-After 헤더를 제공하지 않는 경우 응답 후 최소 5초 후에 첫 번째 재시도와 함께 지수 백오프 재시도를 사용합니다.

요청 시간이 초과되면 애플리케이션이 즉시 다시 시도하지 않는지 확인합니다. 이전에 인용된 지수 백오프 재시도를 사용합니다.

다음 단계