Share via


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

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

Microsoft ID 플랫폼이 무엇인가요?를 참조하세요.

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

A daemon application making a call to Microsoft identity platform.

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 플랫폼 사이에 불필요한 트래픽이 방지됩니다. 사용자는 토큰의 수명 동안 애플리케이션에서 로그인 상태를 유지합니다.

HTTP 429 및 5xx 오류 코드

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

HTTP 429

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

HTTP 5xx

애플리케이션이 HTTP 5x 응답 오류를 수신하는 경우 앱은 빠른 다시 시도 루프에 들어가지 않아야 합니다. 다음 시간 후 다시 시도 필드가 만료될 때까지 애플리케이션이 대기하는지 확인합니다. 응답에서 다음 시간 후 다시 시도 헤더를 제공하지 않는 경우 응답 후 5초 이상이 지나고 첫 번째 다시 시도로 지수 백오프 다시 시도를 사용합니다.

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

다음 단계