다음을 통해 공유


Bicep 템플릿에서 사용할 기존 Microsoft Graph 리소스 온보딩

지원되는 클라이언트 제공 키 속성으로 Bicep 템플릿에서 기존 Microsoft Graph 리소스를 참조할 수 있습니다. HTTP POST를 통해 만든 리소스에는 이 속성이 설정되어 있지 않을 수 있으며 일회성 백필이 필요할 수 있습니다.

일단 설정되면 클라이언트에서 제공하는 키 속성을 사용하면 리소스를 Bicep 파일에서 다시 배포하도록 선언할 수 있습니다. 다시 배포하지 않고 리소스의 속성을 읽으려면 기존 키워드를 사용합니다.

이 문서에서는 키워드 및 클라이언트 제공 키를 사용하여 existing 기존 Microsoft Graph 리소스의 속성을 읽는 방법을 알아봅니다.

Important

Microsoft Graph Bicep은 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Bicep을 사용하면 기존 키워드를 사용하여 기존 리소스를 읽을 수 있습니다. Microsoft Graph 리소스의 경우 먼저 리소스를 클라이언트에서 제공하는 키 속성으로 고유하게 식별해야 합니다.

필수 조건

  • Azure 구독이 있어야 합니다. 계정이 없는 경우 무료 계정에 만들 수 있습니다.
  • 기존 리소스를 읽거나 업데이트하거나 리소스의 소유자가 될 수 있는 최소 권한 또는 역할이 있어야 합니다. 할당해야 하는 역할을 확인하려면 태스크기본 사용자 권한별 최소 권한 역할을 참조하세요.
  • 작성 및 배포를 위한 Bicep 도구를 설치합니다. 이 빠른 시작에서는 작성을 위해 Bicep 확장과 함께 VS Code를 사용하고 배포를 위해 Azure CLI를 사용합니다. Azure PowerShell에 대한 샘플도 제공됩니다.
  • 대화형으로 또는 제로 터치(앱 전용) 배포를 통해 Bicep 파일을 배포할 수 있습니다.

기존 Microsoft Graph 리소스를 온보딩하고 Bicep 파일에서 해당 리소스 사용

예를 들어, Bicep 파일 배포를 통해 생성되지 않은 일부 Microsoft Graph 리소스를 지금 Bicep 파일에서 사용하거나 관리해야 할 수도 있습니다. 예를 들어 기존 애플리케이션을 업데이트하거나 기존 그룹 #2 및 서비스 주체 #2를 멤버로 사용하여 보안 그룹 #1(새 배포 또는 재배포)을 배포하려고 합니다.

Bicep 파일에서 기존 그룹 #2를 참조하려면 uniqueName 속성이 설정되어 있어야 합니다. appId를 모르는 경우 기존 서비스 주체 #2를 참조하려면 부모 애플리케이션에 uniqueName 속성이 설정되어 있어야 합니다.

이 섹션에서는 다음을 수행합니다.

  • Azure CLI 또는 Azure PowerShell을 사용하여 기존 그룹 및 애플리케이션에 대한 uniqueName 속성을 추가합니다.
  • Bicep 파일에서 기존 애플리케이션을 업데이트합니다.
  • 동일한 Bicep 파일의 existing 키워드를 사용하여 기존 그룹 및 서비스 주체의 ID를 가져옵니다.
  • Bicep 파일에서 기존 그룹 및 서비스 주체를 멤버로 사용하고 서비스 주체를 소유자로 사용하여 보안 그룹을 배포하도록 설정을 구성합니다.
  • Bicep 파일을 배포합니다.

1단계: 그룹 및 애플리케이션에 대한 uniqueName 속성 설정

다음 요청은 기존 그룹 및 애플리케이션에 대한 uniqueName 을 각각 및 TestGroup-20241202TestApp-20241202그로 설정합니다.

Important

클라이언트에서 제공하는 키 속성 uniqueName 설정한 후에는 변경할 수 없습니다.

# Sign in to Azure
az login

## Create a resource group
az group create --name exampleRG --location eastus

## Update the uniqueName property of the group and application
## Note: Replace cec00de2-08b9-4081-aaf5-55d78ac9b4c4 and 25ae6414-05a1-4cce-9899-ad11d9eedde2 with IDs for your group and application.
az rest --method patch --url 'https://graph.microsoft.com/v1.0/groups/cec00de2-08b9-4081-aaf5-55d78ac9b4c4' --body '{\"uniqueName\": \"TestGroup-20241202\"}' --headers "content-type=application/json"
az rest --method patch --url 'https://graph.microsoft.com/v1.0/applications/25ae6414-05a1-4cce-9899-ad11d9eedde2' --body '{\"uniqueName\": \"TestApp-20241202\"}' --headers "content-type=application/json"

2단계: 다른 그룹의 구성원 및 소유자에게 기존 그룹 및 서비스 주체 추가

이제 키워드를 existing 사용하여 기존 그룹 #2 및 서비스 주체 #2를 참조하고, ID를 가져온 다음, 다른 그룹의 소유자멤버 컬렉션에 추가할 수 있습니다.

  1. VS Code를 시작하고 main.bicepbicepconfig.json 두 개의 새 파일을 만들어 동일한 폴더에 있는지 확인합니다.

  2. bicepconfig.json 구성 하여 일부 미리 보기 기능을 사용하도록 설정합니다.

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. main.bicep에서 다음 Bicep 코드를 추가합니다.

    extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview'
    
    // TEMPLATE OVERVIEW: Updates an existing app and 
    // uses existing group and existing SP and sets them as members of another group
    
    // existing group #2 to be added as a member
    resource groupMember 'Microsoft.Graph/groups@v1.0' existing = {
      uniqueName: 'TestGroup-20241202'
    }
    
    // existing application to be updated with a new display name
    // and for its SP #2 to be added as a member (to group #1)
    resource application 'Microsoft.Graph/applications@v1.0' = {
      uniqueName: 'TestApp-20241202'
      displayName: 'Updating the displayName to something new'
    }
    resource servicePrincipalMember 'Microsoft.Graph/servicePrincipals@v1.0' existing = {
      appId: application.appId
    }
    
    // Add preceding service principal and group as members of another group
    // Add preceding service principal as owner of the group. 
    // If Group-1 uniqueName doesn't exist, this is a new deployment.
    // If Group-1 uniqueName exists, this is a redeployment/update. For redeployments, existing members and owners are retained.
    resource group 'Microsoft.Graph/groups@v1.0' = {
      displayName: 'Group-1'
      mailEnabled: false
      mailNickname: 'Group-1'
      securityEnabled: true
      uniqueName: 'Group-1'
      members: [groupMember.id, servicePrincipalMember.id]
      owners: [servicePrincipalMember.id]
    }
    
  4. Azure CLI 또는 Azure PowerShell을 사용하여 Bicep 파일을 배포합니다.

    ## Create a resource group
    az group create --name exampleRG --location eastus
    
    ## Deploy the Bicep file
    az deployment group create --resource-group exampleRG --template-file main.bicep
    

배포가 완료되면 배포에 성공했음을 나타내는 메시지가 표시됩니다.