다음을 통해 공유


Azure ID 라이브러리를 사용하여 Azure 서비스에 .NET 앱 인증

앱은 Azure ID 라이브러리를 사용하여 Microsoft Entra ID에 인증할 수 있으며, 이를 통해 앱은 Azure 서비스 및 리소스에 액세스할 수 있습니다. 이 인증 요구 사항은 앱이 Azure에 배포되거나, 온-프레미스에서 호스트되거나, 개발자 워크스테이션에서 로컬로 실행되는지 여부에 적용됩니다. 앞의 섹션에서는 Azure SDK 클라이언트 라이브러리를 사용할 때 다양한 환경에서 Microsoft Entra ID에 앱을 인증하는 권장 방법을 설명합니다.

Microsoft Entra ID를 통한 토큰 기반 인증은 연결 문자열 또는 키 기반 옵션을 사용하는 대신 Azure에 앱을 인증하는 데 권장되는 방법입니다. Azure ID 라이브러리는 토큰 기반 인증을 지원하고 앱이 로컬, Azure 또는 온-프레미스 서버에서 실행되는지 여부에 관계없이 Azure 리소스에 인증할 수 있도록 하는 클래스를 제공합니다.

토큰 기반 인증의 장점

토큰 기반 인증은 연결 문자열에 비해 다음과 같은 이점을 제공합니다.

  • 토큰 기반 인증은 Azure 리소스에 액세스하기 위한 특정 앱만 이 작업을 수행할 수 있도록 하는 반면, 연결 문자열이 있는 모든 앱 또는 모든 앱은 Azure 리소스에 연결할 수 있습니다.
  • 토큰 기반 인증을 사용하면 Azure 리소스 액세스를 앱에 필요한 특정 권한으로만 추가로 제한할 수 있습니다. 이는 최소 권한 원칙을 따릅니다. 반면, 연결 문자열은 Azure 리소스에 대한 모든 권한을 부여합니다.
  • 토큰 기반 인증에 관리 ID 를 사용하는 경우 Azure는 관리 기능을 처리하므로 비밀 보안 또는 회전과 같은 작업에 대해 걱정할 필요가 없습니다. 이렇게 하면 손상될 수 있는 연결 문자열 또는 애플리케이션 비밀이 없으므로 앱이 더 안전해집니다.
  • Azure ID 라이브러리는 Microsoft Entra 토큰을 획득하고 관리합니다.

연결 문자열의 사용은 토큰 기반 인증이 옵션이 아닌 시나리오, 초기 개념 증명 앱 또는 프로덕션 또는 중요한 데이터에 액세스하지 않는 개발 프로토타입으로 제한되어야 합니다. 가능하면 Azure ID 라이브러리에서 사용할 수 있는 토큰 기반 인증 클래스를 사용하여 Azure 리소스에 인증합니다.

다양한 환경에서 인증

앱이 Azure 리소스에 인증하는 데 사용해야 하는 특정 유형의 토큰 기반 인증은 앱이 실행되는 위치에 따라 달라집니다. 다음 다이어그램은 다양한 시나리오 및 환경에 대한 지침을 제공합니다.

앱이 실행되는 위치에 따라 앱에 권장되는 토큰 기반 인증 전략을 보여 주는 다이어그램입니다.

앱이 다음과 같은 경우:

  • Azure에서 호스팅: 앱은 관리 ID를 사용하여 Azure 리소스에 인증해야 합니다. 이 옵션은 서버 환경의인증에 대해 자세히 설명합니다.
  • 개발 중에 로컬로 실행: 앱은 로컬 개발을 위해 애플리케이션 서비스 주체를 사용하거나 개발자의 Azure 자격 증명을 사용하여 Azure에 인증할 수 있습니다. 각 옵션은 로컬 개발 동안인증에 대해 자세히 다룹니다.
  • 온-프레미스에서 호스팅: 앱은 애플리케이션 서비스 주체 또는 Azure Arc의 경우 관리 ID를 사용하여 Azure 리소스에 인증해야 합니다. 온-프레미스 워크플로는 서버 환경의 인증에 대해 자세히 설명합니다.

Azure 호스팅 앱에 대한 인증

앱이 Azure에서 호스트되는 경우 관리 ID를 사용하여 자격 증명을 관리할 필요 없이 Azure 리소스에 인증할 수 있습니다. 관리 ID에는 사용자 할당 및 시스템 할당의 두 가지 유형이 있습니다.

사용자 할당 관리 ID 사용

사용자가 할당한 관리 ID는 독립 실행형 Azure 리소스로 생성됩니다. 하나 이상의 Azure 리소스에 할당할 수 있으므로 해당 리소스가 동일한 ID 및 권한을 공유할 수 있습니다. 사용자 할당 관리 ID를 사용하여 인증하려면 ID를 만들고 Azure 리소스에 할당한 다음 클라이언트 ID, 리소스 ID 또는 개체 ID를 지정하여 인증에 이 ID를 사용하도록 앱을 구성합니다.

시스템 할당 관리 ID 사용

시스템이 할당한 관리 ID는 Azure 리소스에서 직접 사용하도록 설정됩니다. ID는 해당 리소스의 수명 주기에 연결되며 리소스가 삭제되면 자동으로 삭제됩니다. 시스템 할당 관리 ID를 사용하여 인증하려면 Azure 리소스에서 ID를 사용하도록 설정한 다음 인증에 이 ID를 사용하도록 앱을 구성합니다.

로컬 개발 중 인증

로컬 개발 중에 개발자 자격 증명 또는 서비스 주체를 사용하여 Azure 리소스에 인증할 수 있습니다. 이렇게 하면 Azure에 배포하지 않고 앱의 인증 논리를 테스트할 수 있습니다.

개발자 자격 증명 사용

사용자 고유의 Azure 자격 증명을 사용하여 로컬 개발 중에 Azure 리소스에 인증할 수 있습니다. 이 작업은 일반적으로 Azure 서비스에 액세스하는 데 필요한 토큰을 앱에 제공할 수 있는 Azure CLI 또는 Visual Studio와 같은 개발 도구를 사용하여 수행됩니다. 이 메서드는 편리하지만 개발 목적으로만 사용해야 합니다.

서비스 주체를 사용하세요

서비스 주체는 앱을 나타내기 위해 Microsoft Entra 테넌트에 만들어지고 Azure 리소스에 인증하는 데 사용됩니다. 로컬 개발 중에 서비스 주체 자격 증명을 사용하도록 앱을 구성할 수 있습니다. 이 방법은 개발자 자격 증명을 사용하는 것보다 더 안전하며 앱이 프로덕션 환경에서 인증하는 방법에 더 가깝습니다. 그러나 비밀이 필요하기 때문에 관리 ID를 사용하는 것보다 더 이상적이지 않습니다.

온-프레미스에서 호스트되는 앱에 대한 인증

온-프레미스에서 호스트되는 앱의 경우 서비스 주체를 사용하여 Azure 리소스에 인증할 수 있습니다. 여기에는 Microsoft Entra ID에서 서비스 주체를 만들고, 필요한 권한을 할당하고, 자격 증명을 사용하도록 앱을 구성하는 작업이 포함됩니다. 이 방법을 사용하면 온-프레미스 앱이 Azure 서비스에 안전하게 액세스할 수 있습니다.