2025-12-08
Managed Identity로 PowerShell에서 Microsoft Graph 사용하기

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 환경을 올바르게 구성하는 것이 중요합니다. 다음 단계를 따라 시작하세요:
- 시스템이 요구 사항을 충족하는지 확인하세요: PowerShell 7.2 이상, .NET Framework 4.7.2 이상, 최신 PowerShellGet 모듈.
- 위와 같이 Microsoft Graph PowerShell 모듈을 설치하세요.
- 모듈을 가져오고 필요한 범위로 인증하여 Microsoft 365 테넌트에 연결하세요. 예를 들면:
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"
이 명령은 로그인하라는 메시지를 표시하며, 사용자 및 디렉터리 데이터를 읽고 쓸 수 있는 권한을 세션에 부여합니다. 자동화 요구 사항에 따라 범위를 조정할 수 있습니다.
권한과 범위 이해하기
권한과 범위는 스크립트가 Microsoft 365에서 접근하거나 수정할 수 있는 대상을 정의합니다. Microsoft Graph API는 두 가지 주요 권한 유형을 사용합니다:
- 위임된 권한(Delegated permissions): 로그인한 사용자로 스크립트를 실행할 때 적용됩니다. 사용자가 소유하거나 접근할 수 있는 데이터로 접근을 제한합니다.
- 애플리케이션 권한(Application permissions): 로그인한 사용자 없이도 앱이나 스크립트가 조직 전체의 데이터에 접근할 수 있게 합니다.
일반적인 권한에는 읽기 전용 접근을 위한 *.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 역할을 합니다. 다음 단계를 따라 앱을 등록하세요:
- Azure 포털을 열고 Azure Active Directory > 앱 등록 > 새 등록으로 이동하세요.
- "My Graph App"처럼 의미 있는 이름을 앱에 지정하세요.
- 지원되는 계정 유형을 선택하세요:
- 단일 테넌트: Azure AD 테넌트의 사용자만 로그인할 수 있습니다.
- 다중 테넌트: 모든 Azure AD 테넌트의 사용자가 로그인할 수 있습니다.
- 다중 테넌트 및 개인 계정: Azure AD 사용자와 개인 Microsoft 계정을 포함합니다.
Apple Podcasts · Spotify · YouTube · YouTube Music
Use Managed Identity with PowerShell for Microsoft Graph (English)