M365Con 2027 – 무료 온라인 컨퍼런스 · 11–22 Jan 2027 · 120 sessions→ m365con.net

2025-12-08

Managed Identity로 PowerShell에서 Microsoft Graph 사용하기

Managed Identity로 PowerShell에서 Microsoft Graph 사용하기
2025년에도 MSOnline 및 AzureAD 모듈로 PowerShell을 작성하고 계신가요? 이번 에피소드에서는 이 스택이 레거시인 이유와 순수 REST 및 Microsoft Graph를 활용한 API 우선 방식으로 전환하는 방법을 설명합니다. 핵심 패턴인 '토큰, 헤더, REST 호출'을 살펴보고, 세 가지 실제 인증 흐름(디바이스 코드, 인증서 기반 클라이언트 자격 증명, 관리 ID)과 대부분의 Graph 스크립트를 깨뜨리는 토큰 대상(audience) 함정도 다룹니다. 취약한 모듈 종속성 없이 Linux, 컨테이너, GitHub Actions, Azure Functions, Azure Automation에서 깔끔하게 실행되는 크로스 플랫폼 Graph 자동화를 구축하는 방법도 알아봅니다. 이후 이 패턴을 Intune 디바이스 정리, ID 온보딩, 규정 준수 드리프트 감지 및 복구 등 엔터프라이즈 시나리오에 적용하며, 최소 권한 Graph 권한, 견고한 재시도 로직, 페이지네이션 헬퍼, Log Analytics의 전체 감사 추적을 함께 다룹니다. Azure, Intune 또는 Microsoft 365 관리자라면 꼭 확인해 보세요.

As businesses increasingly rely on Microsoft 365, automating management tasks becomes essential. You can enhance efficiency and save valuable time by integrating PowerShell + Graph API. This powerful combination unlocks robust management capabilities that streamline operations.

However, many users encounter challenges. For instance, some key functionalities lack documented endpoints, complicating automation efforts. Additionally, legacy APIs may lead to silent failures, hindering your scripts' maintainability. Don't worry! This post will break down these complex concepts into easy, actionable steps, guiding you through the process with clear solutions.

핵심 요약

  • PowerShell을 Graph API와 통합하여 Microsoft 365 작업을 자동화하고 효율성을 높이세요.
  • 원활한 실행을 위해 PowerShell 7 이상 및 최신 Microsoft Graph 모듈 같은 사전 요구 사항을 충족하세요.
  • 최소 권한 원칙에 따라 권한과 범위를 이해하여 스크립트가 Microsoft 365에서 접근할 수 있는 대상을 통제하세요.
  • Azure AD에 앱을 등록하여 스크립트를 위한 안전한 ID를 만들고, Microsoft Graph에 안전하게 접근하도록 하세요.
  • 액세스 토큰을 효과적으로 보호하기 위해 장치 코드 흐름(Device Code Flow) 또는 관리 ID 흐름(Managed Identity Flow) 같은 적절한 인증 흐름을 선택하세요.
  • PowerShell로 올바른 형식의 HTTP 요청을 구성하여 Microsoft Graph API와 상호작용하고 데이터를 가져오세요.
  • 스크립트가 원활하게 실행되고 중단을 피하도록 오류와 API 제한을 신중하게 처리하세요.
  • 선택적 속성 조회와 요청 일괄 처리(batching)를 사용하여 스크립트를 최적화하고 성능을 개선하며 리소스 소비를 줄이세요.

PowerShell + Graph API를 위한 사전 요구 사항

PowerShell + Graph API로 Microsoft 365 작업을 자동화하기 전에 시스템과 환경을 제대로 준비해야 합니다. 이 준비 과정은 원활한 실행과 Microsoft Graph 리소스에 대한 안전한 접근을 보장합니다.

PowerShell 모듈 설치

Microsoft Graph API와 상호작용하려면 올바른 PowerShell 모듈을 설치해야 합니다. Microsoft Graph PowerShell SDK는 이 통합에 필요한 모든 cmdlet을 제공합니다. 오류를 피하려면 시스템이 다음 최소 요구 사항을 충족하는지 확인하세요:

요구 사항 설명
PowerShell 버전 PowerShell 버전 7 이상이 필요합니다.
.NET Framework macOS에서는 .NET Framework 4.7.2 이상이 필요합니다.
PowerShellGet PowerShellGet을 최신 버전으로 업데이트하세요.
실행 정책 실행 정책을 RemoteSigned 이하로 제한적인 수준으로 설정하세요.

다음 명령으로 PowerShellGet을 업데이트하고 Install-Module PowerShellGet -Force, Set-ExecutionPolicy RemoteSigned로 실행 정책을 설정할 수 있습니다. 이후 다음을 사용하여 Microsoft Graph 모듈을 설치하세요:

Install-Module Microsoft.Graph -Scope CurrentUser

이 명령은 최신 안정 버전의 모듈을 다운로드하여 Microsoft Graph 엔드포인트를 쉽게 호출할 수 있게 해줍니다.

Microsoft 365 환경 설정

자동화를 위해서는 Microsoft 365 환경을 올바르게 구성하는 것이 중요합니다. 다음 단계를 따라 시작하세요:

  1. 시스템이 요구 사항을 충족하는지 확인하세요: PowerShell 7.2 이상, .NET Framework 4.7.2 이상, 최신 PowerShellGet 모듈.
  2. 위와 같이 Microsoft Graph PowerShell 모듈을 설치하세요.
  3. 모듈을 가져오고 필요한 범위로 인증하여 Microsoft 365 테넌트에 연결하세요. 예를 들면:
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"

이 명령은 로그인하라는 메시지를 표시하며, 사용자 및 디렉터리 데이터를 읽고 쓸 수 있는 권한을 세션에 부여합니다. 자동화 요구 사항에 따라 범위를 조정할 수 있습니다.

권한과 범위 이해하기

권한과 범위는 스크립트가 Microsoft 365에서 접근하거나 수정할 수 있는 대상을 정의합니다. Microsoft Graph API는 두 가지 주요 권한 유형을 사용합니다:

일반적인 권한에는 읽기 전용 접근을 위한 *.Read.All과 전체 읽기/쓰기 기능을 위한 *.ReadWrite.All이 있습니다. 예를 들어 SecurityActions.Read.All은 보안 작업을 조회할 수 있게 하고, SecurityActions.ReadWrite.All은 이를 수정할 수 있게 합니다.

애플리케이션 권한에는 관리자 동의가 필요합니다. 보안을 보장하려면 테넌트 관리자가 이러한 권한을 승인해야 합니다. 또한 민감한 데이터에 접근하려면 Security Reader 같은 적절한 Microsoft Entra 역할이 사용자에게 필요합니다. 이러한 역할 기반 접근은 추가적인 보안 계층을 제공합니다.

Microsoft Graph PowerShell SDK로 연결할 때는 스크립트에 필요한 범위만 지정하세요. 이 방식은 최소 권한 원칙을 따르며 보안 위험을 줄입니다. 앱에 부여된 권한은 해당 앱의 모든 사용자에게 적용된다는 점을 기억하고, 정기적으로 검토하고 관리하세요.

권한을 신중하게 이해하고 구성하면 환경을 보호하면서 PowerShell + Graph API로 강력한 자동화를 구현할 수 있습니다.

Azure AD의 앱 ID

새 앱 등록하기

PowerShell과 Graph API로 Microsoft 365 작업을 자동화하려면 먼저 Azure Active Directory(Azure AD)에 애플리케이션을 등록해야 합니다. 이 앱은 스크립트가 Microsoft Graph에 안전하게 접근할 때 사용하는 ID 역할을 합니다. 다음 단계를 따라 앱을 등록하세요:

  1. Azure 포털을 열고 Azure Active Directory > 앱 등록 > 새 등록으로 이동하세요.
  2. "My Graph App"처럼 의미 있는 이름을 앱에 지정하세요.
  3. 지원되는 계정 유형을 선택하세요:
    • 단일 테넌트: Azure AD 테넌트의 사용자만 로그인할 수 있습니다.
    • 다중 테넌트: 모든 Azure AD 테넌트의 사용자가 로그인할 수 있습니다.
    • 다중 테넌트 및 개인 계정: Azure AD 사용자와 개인 Microsoft 계정을 포함합니다.

Apple Podcasts · Spotify · YouTube · YouTube Music

Use Managed Identity with PowerShell for Microsoft Graph (English)