Microsoft Graph API에는 다음과 같은 두 가지 고유한 관계 모델이 있습니다.
-
엔터티 형식 간의 관계: 이 관계 형식의 경우 API는 서로 다른 두 형식 간에 "링크"를 제공합니다. 정식 예제는 a
group
및 해당members
. 구성원(기존 사용자, 서비스 주체, 디바이스 및 그룹)을 그룹에서 추가 및 제거하여 멤버 자격을 관리할 수 있습니다. 사용자 멤버가 포함된 그룹의 경우 그룹 및 사용자에게 독립적인 수명 주기가 있으므로 그룹을 삭제해도 그룹의 구성원인 사용자는 삭제 되지 않습니다. -
부모-자식 관계: 이 관계 유형의 경우 자식 리소스는 부모 리소스 내에 "포함"되며 자식 리소스의 수명 주기는 부모에 연결됩니다. 예를 들어,
federatedIdentityCredentials
는application
인스턴스의 자식 컬렉션입니다. 애플리케이션이 삭제되면 애플리케이션federatedIdentityCredentials
도 삭제됩니다.
이 문서에서는 이러한 관계 유형이 Microsoft Graph Bicep 형식에서 어떻게 노출되는지와 Microsoft Graph Bicep 확장에서 제공하는 추가 기능을 자세히 살펴봅니다.
엔터티 유형 간의 관계
비고
명시적으로 언급하지 않는 한 이 섹션에 설명된 관계 모델링 환경에는 Microsoft Graph Bicep 형식 버전 v0.2.0-preview 이상을 사용해야 합니다.
이러한 관계는 MicrosoftGraphRelationship 유형을 사용하여 모델링됩니다. 이 예제에서는 그룹 members
및 owners
속성에 대한 모델링을 보여 줍니다(다른 필수 그룹 속성은 간결하게 표시되지 않음). 배열 속성에는 relationships
다른 Microsoft Graph 리소스에 대한 정식 ID(기본 키 ID) 목록이 포함되어 있습니다.
resource group 'Microsoft.Graph/groups@v1.0' = {
members: {
relationships: [id1, id2, id3]
}
owners: {
relationships: [id4, id5]
}
}
관계 동작 제어
기본적으로 모든 관계 업데이트는 추가 의미 체계를 사용합니다. 관계가 아직 없는 경우 목록에 있는 각 ID에 대한 관계를 추가합니다. 이는 Microsoft Graph API의 기본 기본 동작을 반영합니다. 또는 바꾸기 의미 체계를 사용하여 관계 업데이트를 설정할 수 있습니다. 의미 체계를 바꾸면 서비스에 있는 모든 것이 Bicep 템플릿에 지정된 관계로 완전히 바뀝니다. 이 예제에서 그룹의 기존 멤버는 id1
, id2
, id3
로 교체됩니다.
resource group 'Microsoft.Graph/groups@v1.0' = {
members: {
relationshipSemantics: 'replace'
relationships: [id1, id2, id3]
}
owners: {
relationships: [id4, id5]
}
}
관계 동작은 extension
문에서 템플릿 수준으로 설정할 수도 있습니다.
extension graphV1 with {
relationshipSemantics: 'replace'
}
그러면 Bicep 템플릿의 모든 관계가 의미 체계 바꾸기를 사용하도록 설정됩니다. 이 전역 동작은 각 관계 선언에서 재정의할 수 있습니다.
Microsoft Graph Bicep 확장 기능
v0.2.0-preview를 사용하여 Microsoft Graph Bicep 확장은 대체 의미 체계 논리를 오케스트레이션하여 관계에서 추가 및 제거할 멤버를 파악합니다. 또한 Microsoft Graph Bicep 확장은 일괄 처리 관계 요청을 오케스트레이션하여 읽기 및 쓰기 모두에 대한 Microsoft Graph API 요청 제한을 극복합니다.
부모-자식 관계
Bicep에서 부모-자식 관계는 템플릿 파일에서 다양한 방법으로 선언할 수 있습니다. 부모-자식 선언의 가장 일반적인 방법은 부모 리소스 아래에 자식 리소스를 중첩하는 것입니다. 중첩된 자식의 좋은 예는 연합 신원 자격 증명입니다.