다음을 통해 공유


Azure DevOps에 대한 인증 방법

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

이 문서에서는 Azure DevOps 통합을 위한 인증 방법을 설명하고 시나리오에 가장 적합한 옵션을 선택하는 데 도움이 됩니다. Microsoft Entra ID와 같은 최신 인증 접근 방식은 향상된 보안과 새 애플리케이션에 가장 적합한 방법을 제공합니다.

중요합니다

Azure DevOps Services와 통합되는 새 애플리케이션에 대해 Microsoft Entra ID 인증을 사용하는 것이 좋습니다. 개인용 액세스 토큰을 사용하지 않고 Microsoft Entra ID를 사용할 수 없는 경우에만 사용합니다.

OAuth 2.0 및 Microsoft Entra ID 인증은 Azure DevOps Server가 아닌 Azure DevOps Services에만 사용할 수 있습니다.

온-프레미스 시나리오의 경우 .NET 클라이언트 라이브러리, Windows 인증 또는 개인용 액세스 토큰을 사용합니다.

시나리오별 인증 방법

애플리케이션 유형 및 요구 사항에 따라 적절한 인증 방법을 선택합니다.

애플리케이션 유형 설명 예시 권장 방법 코드 샘플
웹/데스크톱 앱 현재 프레임워크를 사용하는 대화형 애플리케이션 React 앱, .NET 데스크톱 앱 MSAL(Microsoft 인증 라이브러리)을 사용하는 Microsoft Entra OAuth 관리되는 클라이언트 콘솔 앱
서비스/백그라운드 앱 사용자 상호 작용 없이 실행되는 애플리케이션 Azure Functions, 백그라운드 서비스 서비스 주체 및 관리 ID 서비스 프린시펄
레거시 클라이언트 앱 클라이언트 라이브러리를 사용하는 기존 애플리케이션 Azure DevOps .NET 라이브러리를 사용하는 콘솔 앱 OAuth를 사용한 .NET 클라이언트 라이브러리 클라이언트 라이브러리 콘솔 앱
헤드리스/CLI 앱 비대화형 명령줄 도구 빌드 스크립트, 자동화 도구 디바이스 권한 부여 흐름 디바이스 프로필
Azure DevOps 확장 Azure DevOps 내에서 실행되는 확장 사용자 지정 대시보드 위젯 및 작업 항목 양식 Azure DevOps 웹 확장 SDK 대시보드 위젯 추가
Azure DevOps Server 앱 온-프레미스 Azure DevOps Server 통합 사용자 지정 서버 확장 .NET 클라이언트 라이브러리 또는 Windows 인증 클라이언트 라이브러리 콘솔 앱
개인/임시 스크립트 개인용 빠른 스크립트 PowerShell 스크립트, curl 명령 개인용 액세스 토큰 REST API 시작

시작하기 위한 제안 사항

다음 섹션에서는 다양한 시나리오에서 시작하기 위한 권장 사항을 제공합니다.

새 애플리케이션

  • 최상의 보안 및 향후 호환성을 위해 Microsoft Entra OAuth 앱과 Azure DevOps 통합을 빌드합니다.
  • 서비스 대 서비스 시나리오에 서비스 주체 또는 관리 ID를 사용합니다.
  • 프로덕션 애플리케이션에서 개인용 액세스 토큰을 사용하지 마세요.

기존 애플리케이션

  • 개인용 액세스 토큰에서 Microsoft Entra ID 인증으로 마이그레이션을 계획합니다.
  • Azure DevOps 개선 및 개인 액세스 토큰 사용 줄이기를 위한 인증 마이그레이션 타임라인 을 고려합니다.
  • 보안 모범 사례에 대해 현재 인증 방법을 검토합니다.

Azure DevOps Server

  • 가능한 경우 Windows 인증과 함께 .NET 클라이언트 라이브러리 를 사용합니다.
  • 허용되는 경우 Azure DevOps Server 시나리오에 개인용 액세스 토큰을 사용합니다.
  • 최신 인증을 활용하도록 향후 Azure DevOps Services 마이그레이션을 계획합니다.

일반적인 질문에 대한 답변

다음 섹션에서는 자주 묻는 질문에 대한 답변을 제공합니다.

Microsoft Entra ID OAuth 또는 개인용 액세스 토큰을 사용해야 하나요?

다음 시나리오에서 Microsoft Entra ID OAuth를 사용합니다.

  • 새 애플리케이션 및 통합
  • 강력한 보안이 필요한 프로덕션 워크로드
  • 엔터프라이즈 ID 통합이 필요한 애플리케이션
  • 규정 준수 요구 사항이 있는 장기 프로젝트

다음 시나리오에서는 개인용 액세스 토큰만 사용합니다.

  • 개인 스크립트 및 임시 작업
  • 마이그레이션 계획 중 레거시 애플리케이션
  • 최신 인증을 사용할 수 없는 Azure DevOps Server 시나리오

인증에 서비스 주체 또는 사용자 위임을 사용해야 하나요?

다음 시나리오에서 서비스 주체 또는 관리 ID를 사용합니다.

  • 독립적으로 작동하는 애플리케이션을 빌드합니다(백그라운드 서비스, 자동화).
  • 사용자 상호 작용이 필요하지 않은 앱을 만듭니다.
  • 서비스 간 통신을 구현합니다.
  • CI/CD(지속적인 통합 및 지속적인 업데이트) 파이프라인 또는 자동화된 워크플로를 빌드합니다.

다음 시나리오에서는 사용자 위임(사용자 동의가 있는 OAuth)을 사용합니다.

  • 사용자에 대해 작동하는 애플리케이션을 빌드합니다.
  • 사용자가 자신의 자격 증명으로 로그인하는 대화형 앱을 만듭니다.
  • 사용자별 권한이 필요한 기능을 구현합니다.
  • 사용자의 개별 액세스 권한을 존중하는 앱을 빌드합니다.

Azure DevOps Services와 Azure DevOps Server를 모두 사용하여 인증하려면 어떻게 해야 하나요?

모범 사례는 별도의 인증 경로를 만드는 것입니다.

  • Azure DevOps Services: Microsoft Entra ID OAuth를 사용합니다.
  • Azure DevOps Server: Windows 인증 또는 개인용 액세스 토큰과 함께 .NET 클라이언트 라이브러리를 사용합니다.

이 메서드를 requestContext 사용하여 서비스 유형을 검색하고 적절한 인증 방법을 적용합니다.

내 서비스 계정이 Azure DevOps API에 액세스할 수 없는 이유는 무엇인가요?

서비스 계정 액세스에 영향을 줄 수 있는 몇 가지 일반적인 문제는 다음과 같습니다.

  • 서비스 계정이 "구체화"되지 않음: 올바른 로그인 방법을 사용합니다. 서비스 계정에는 대화형 로그인 권한 또는 적절한 Microsoft Entra ID 등록이 필요합니다.
  • 권한 부족: 서비스 계정에 적절한 Azure DevOps 권한이 있는지 확인합니다.
  • 인증 방법: 서비스 계정으로 인증하는 대신 서비스 주체 또는 관리 ID를 사용합니다.

개인용 액세스 토큰에서 최신 인증으로 마이그레이션하려면 어떻게 해야 하나요?

아래 단계를 수행하세요.

  1. 애플리케이션에서 현재 개인용 액세스 토큰 사용량을 식별합니다.

  2. 대체 인증 방법을 선택합니다.

    • 사용자 위임 시나리오에 대한 Microsoft Entra ID OAuth
    • 서비스 대 서비스 시나리오에 대한 서비스 주체
  3. Azure DevOps 마이그레이션 인증 샘플을 사용하여 인증 코드를 업데이트합니다.

  4. 개인 액세스 토큰 종속성을 제거하기 전에 변경 내용을 철저히 테스트합니다.

  5. 새 인증 방법을 모니터링하고 유효성을 검사합니다.

구현 절차

시나리오에 대한 인증 방법을 선택한 후 구현을 완료합니다.