확장 특성으로 작업할 cmdlet Azure AD
확장 특성 정보
확장 특성은 디렉터리에 있는 개체의 특성 값을 저장하는 데 사용할 수 있는 새 특성으로 Azure AD 디렉터리를 확장하는 편리한 방법을 제공합니다. 확장 특성을 연결할 수 있는 개체 유형은 다음과 같습니다.
- 사용자
- 테넌트 세부 정보
- 디바이스
- 애플리케이션
확장 속성은 개발자 디렉터리의 애플리케이션 개체에 등록됩니다. 개발자 디렉터리의 사용자 또는 관리자가 애플리케이션을 승인한 후에는 속성이 대상 디렉터리 형식에 추가되고 개발자 디렉터리에서 즉시 액세스할 수 있게 됩니다. 다중 테넌트 애플리케이션의 경우 다른 조직의 사용자 또는 관리자가 애플리케이션을 승인하면 확장 속성에서 다른 조직의 디렉터리에 있는 대상 디렉터리 형식에 즉시 액세스할 수 있습니다.
조직에서 등록된 확장이 있는 애플리케이션에 대한 "읽기 전용" 권한을 승인하면 다른 조직의 디렉터리에서 계속 액세스할 수 있습니다. 또한 확장 속성은 등록된 애플리케이션뿐만 아니라 승인된 조직의 애플리케이션에서도 액세스할 수 있습니다. 승인된 해당 조직의 다른 애플리케이션에 충분한 권한이 있으면 새 확장 속성에 대한 값을 읽거나 쓸 수 있습니다.
애플리케이션을 삭제하거나 다른 조직의 디렉터리에서 승인을 제거하면 확장 속성이 대상 디렉터리 개체에 액세스할 수 없게 됩니다. 또한 애플리케이션에서 확장을 삭제하는 경우에도 확장 속성이 대상 디렉터리 개체에 액세스할 수 없게 됩니다. 승인된 후에 다중 테넌트 애플리케이션에서 추가 확장 속성을 추가하면 이러한 속성은 다른 조직의 디렉터리에서 즉시 액세스할 수 있게 됩니다.
참고
개체에 대해 확장 속성 값을 설정했는데 해당 개체 디렉터리에서 이 속성에 액세스할 수 없게 되어도 해당 개체의 확장 속성 값 제한인 100개에는 이 속성이 계속 포함됩니다. 속성 값을 설정한 후 고려 대상에서 제거할 수 있는 유일한 방법은 해당 값을 명시적으로 null로 설정하는 것입니다. 확장 속성에 액세스할 수 없는 경우에는 이 작업을 수행할 수 없습니다.
확장 속성에 대한 자세한 내용은 이 문서를 참조하세요.
예제
이 예제에서는 사용자 개체와 확장 속성을 사용합니다. 먼저 나중에 쉽게 참조할 수 있도록 다음과 같이 사용자의 ObjectId를 찾습니다.
$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId
사용자의 모든 속성 값 가져오기
(Get-AzureADUser -ObjectId $UserId).ToJson()
사용자 가져오기 및 모든 확장 속성 표시
Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty
이 cmdlet은 현재 값을 포함한 사용자의 모든 확장 속성을 반환합니다.
Key Value
--- -----
odata.metadata https://graph.windows.net/85b5ff1e-0402-400c-9e3c-0f9e965325d1/$metad...
odata.type Microsoft.DirectoryServices.User
thumbnailPhoto@odata.mediaContentType image/Jpeg
extension_e5e29b8a85d941eab8d12162bd004528_extensionAttribute13 Test
사용자의 특정 확장 속성 값을 검색합니다.
(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")
테넌트에 정의된 모든 확장 속성 검색
Get-AzureADApplication | Get-AzureADApplicationExtensionProperty
새 확장 속성 만들기
확장 속성은 항상 특정 애플리케이션에 대해 만들어집니다. 디렉터리에 일반 속성만 추가하려면 자리 표시자 애플리케이션을 만들 수 있습니다.
$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId
또한 이 애플리케이션에 대한 서비스 주체도 디렉터리에 만들어야 하므로 새 확장 속성을 만들 수 있습니다.
New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId
이제 이 애플리케이션을 사용하여 새 확장 속성을 만들 수 있습니다.
New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User"
cmdlet이 성공적으로 완료되면 새 확장 특성 개체를 반환합니다.
ObjectId Name TargetObjects
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
참고
새 속성의 이름은 자리 표시자 애플리케이션>의 "Extension_" + objectID + <새 <속성의 이름에서 생성됩니다>. 따라서 사용자가 만드는 애플리케이션마다 이름의 정확한 값이 다릅니다. 둘 이상의 개체 형식에 속성을 할당할 수 있습니다. 이 예제에서는 "User"라는 하나의 TargetObject만 사용했지만 "User", "Group"도 지정할 수 있습니다. 이 경우 사용자와 그룹 개체 모두에 해당 개체를 할당합니다.
확장 속성 값 설정
이제 이전 예제에서 사용한 확장 속성을 사용하여 값을 할당할 수 있습니다.
Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue"
애플리케이션에 정의된 모든 확장 특성 검색
애플리케이션에 대해 정의된 확장 특성 목록을 검색할 수 있습니다.
Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId
이 cmdlet은 애플리케이션의 확장 속성 목록을 반환합니다.
ObjectId Name TargetObjects
-------- ---- -------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}
확장 속성 삭제
확장 속성이 더 이상 필요하지 않으면 삭제할 수 있습니다.
Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
참고
확장된 Azure AD 특성을 제거하거나 PayOps 팀에 요청을 제기하지 않고는 을 삭제 Tenant Schema Extension App
할 수 없습니다. 또한 Azure AD 마법사에서 디렉터리 확장 옵션을 해제해도 특성이 제거되거나 앱이 제거되지 않습니다.