Azure 리소스(예: 로직 앱, 함수 앱 또는 Azure VM)을 SharePoint Online과 통합할 때는 안전하고 세분화된 액세스 제어가 필요한 경우가 많습니다. 자격 증명을 수동으로 처리하는 대신 관리 ID를 사용하여 Microsoft Graph에 안전하게 인증하고 SharePoint 리소스에 액세스하는 것이 좋습니다.
주요 단계:
1단계: 관리 ID 활성화 (또는 앱 등록)
2단계: Microsoft Entra ID에서 Sites.Selected 권한 부여
3단계: SharePoint 사이트 수준 권한 할당
1단계: 관리 ID 활성화 (또는 앱 등록)
Azure 리소스 (예: 로직 앱)의 경우:
- Azure Portal로 이동합니다.
- 해당 리소스 (예: 로직 앱)로 이동합니다.
- [ID]에서 [시스템 할당 관리 ID]를 활성화합니다.
- [개체 ID]와 [클라이언트 ID]를 기록해 둡니다 (나중에 클라이언트 ID가 필요합니다).
또는 다중 테넌트 또는 재사용 가능한 ID를 선호하는 경우 [앱 등록]을 사용하십시오. Microsoft Entra ID에서 앱을 등록하는 방법 - Microsoft identity platform | Microsoft Learn
2단계: Microsoft Entra에서 Sites.Selected 권한 부여
- [Microsoft Entra ID > 앱 등록]을 엽니다.
- 로직 앱의 관리 ID 또는 앱 등록을 선택합니다.
- [API 권한]에서 [권한 추가] > [Microsoft Graph]를 클릭합니다.
- [애플리케이션 권한]을 선택하고 다음을 추가합니다.
- Sites.Selected
- [관리자 동의 부여]를 클릭합니다.
참고: Sites.Selected는 [최소 권한] 액세스를 보장합니다. 사이트 수준 액세스를 명시적으로 허용해야 합니다.
3단계: SharePoint 사이트 수준 권한 할당
SharePoint Online은 Sites.Selected를 사용하는 앱에 대해 [사이트 수준 동의]가 필요합니다. 아래 스크립트를 사용하여 액세스를 할당합니다.
참고: 이 스크립트를 실행하려면 [SharePoint 관리자]여야 하며 Sites.FullControl.All 권한이 있어야 합니다.
PowerShell 스크립트:
# Replace with your values
$application = @{
id = "{ApplicationID}" # Client ID of the Managed Identity
displayName = "{DisplayName}" # Display name (optional but recommended)
}
$appRole = "write" # Can be "read" or "write"
$spoTenant = "contoso.sharepoint.com" # Sharepoint site host
$spoSite = "{Sitename}" # Sharepoint site name
# Site ID format for Graph API
$spoSiteId = $spoTenant + ":/sites/" + $spoSite + ":"
# Load Microsoft Graph module
Import-Module Microsoft.Graph.Sites
# Connect with appropriate permissions
Connect-MgGraph -Scope Sites.FullControl.All
# Grant site-level permission
New-MgSitePermission -SiteId $spoSiteId -Roles $appRole -GrantedToIdentities @{ Application = $application }
이제 끝났습니다.
- [로직 앱] 또는 Azure 리소스는 이제 [Microsoft Graph API]를 호출하여 특정 SharePoint 사이트와 상호 작용할 수 있습니다 (예: 파일 목록 나열, 문서 업로드).
- 엔터프라이즈 보안 표준을 준수하면서 [중앙 집중식 제어] 및 [최소 권한 액세스]를 유지합니다.
이 방법을 따르면 Azure 서비스에서 SharePoint Online에 대한 안전하고 감사 가능하며 확장 가능한 액세스를 보장할 수 있습니다. 비밀, 사용자 자격 증명 없이 관리 ID가 올바르게 작동합니다.