Azure AD cmdlet untuk bekerja dengan atribut ekstensi

Tentang atribut ekstensi

Atribut ekstensi menawarkan cara mudah untuk memperluas direktori Azure AD Anda dengan atribut baru yang dapat Anda gunakan untuk menyimpan nilai atribut untuk objek di direktori Anda. Anda dapat melampirkan atribut ekstensi ke jenis objek berikut:

  • users
  • detail penyewa
  • devices
  • aplikasi

Properti ekstensi terdaftar pada objek Aplikasi dalam direktori pengembang. Setelah aplikasi disetujui oleh pengguna atau admin di direktori pengembang, properti ditambahkan ke jenis direktori target dan segera dapat diakses di direktori pengembang. Untuk aplikasi multi-penyewa, ketika aplikasi diberikan persetujuan oleh pengguna atau admin di organisasi lain, properti ekstensi menjadi segera dapat diakses pada jenis direktori target di direktori organisasi lain.

Jika organisasi menyetujui izin "baca saja" untuk aplikasi dengan ekstensi terdaftar, properti masih akan dapat diakses di direktori organisasi lain. Selain itu, properti ekstensi dapat diakses oleh aplikasi yang disetujui dalam organisasi, bukan hanya untuk aplikasi tempat mereka terdaftar. Aplikasi lain yang disetujui dalam organisasi tersebut dapat membaca atau menulis nilai untuk properti ekstensi baru jika memiliki izin yang memadai.

Jika aplikasi dihapus atau persetujuan dihapus di direktori organisasi lain, properti ekstensi menjadi tidak dapat diakses pada objek direktori target. Jika ekstensi dihapus oleh aplikasi, ekstensi juga menjadi tidak dapat diakses pada objek direktori target. Jika aplikasi multi-penyewa menambahkan properti ekstensi tambahan setelah persetujuan diberikan, properti ini menjadi segera dapat diakses di direktori organisasi lain.

Catatan

Jika nilai properti ekstensi diatur pada objek dan properti tersebut menjadi tidak dapat diakses dalam direktori objek tersebut, properti masih dihitung berdasarkan batas 100 nilai properti ekstensi objek tersebut. Satu-satunya cara untuk menghapus nilai properti dari pertimbangan setelah ditetapkan adalah dengan secara eksplisit mengaturnya ke null. Anda tidak dapat melakukan ini jika properti ekstensi tidak dapat diakses.

Anda dapat membaca selengkapnya tentang properti ekstensi di artikel ini.

Contoh

Dalam contoh ini kita akan menggunakan objek pengguna dan bekerja dengan properti ekstensi. Pertama-tama kita akan menemukan ObjectId pengguna sehingga kita dapat dengan mudah merujuknya nanti:

$UserId = (Get-AzureADUser -Searchstring <UPN of the user we're working with>).ObjectId 

Mendapatkan semua nilai properti pengguna

(Get-AzureADUser -ObjectId $UserId).ToJson()

Mendapatkan pengguna dan menampilkan semua properti ekstensi

Get-AzureADUser -ObjectId $UserId | Select -ExpandProperty ExtensionProperty

Cmdlet ini mengembalikan semua properti ekstensi pengguna dengan nilai mereka saat ini:

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 

Mengambil nilai properti ekstensi tertentu untuk pengguna

(Get-AzureADUserExtension -ObjectId $UserId).get_item("extension_e5e29b8a85d941eab8d12162bd004528_wWWHomePage")

Mengambil semua properti ekstensi yang ditentukan dalam penyewa Anda

Get-AzureADApplication | Get-AzureADApplicationExtensionProperty 

Membuat properti ekstensi baru

Properti ekstensi selalu dibuat untuk aplikasi tertentu. Jika Anda hanya ingin menambahkan properti generik ke direktori, Anda dapat membuat aplikasi tempat penampung:

$MyApp = (New-AzureADApplication -DisplayName "My Properties Bag" -IdentifierUris "https://dummy").ObjectId 

Perhatikan bahwa Anda perlu membuat perwakilan layanan untuk aplikasi ini di direktori Anda juga, sehingga Anda dapat membuat properti ekstensi baru:

New-AzureADServicePrincipal -AppId (Get-AzureADApplication -SearchString "My Properties Bag").AppId 

Sekarang kita dapat menggunakan aplikasi ini untuk membuat properti ekstensi baru:

New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "User" 

Ketika cmdlet berhasil diselesaikan, cmdlet mengembalikan objek atribut ekstensi baru:

ObjectId                             Name                                                     TargetObjects
--------                             ----                                                     -------------
91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty {User}

Catatan

Nama properti baru dihasilkan dari format "Extension_" + <objectID aplikasi> tempat penampung Anda + "_" + <nama properti> baru Anda. Oleh karena itu, nilai nama yang tepat akan berbeda untuk berbagai aplikasi yang Anda buat. Anda dapat menetapkan properti ke lebih dari satu jenis objek. Dalam contoh kami, kami hanya menggunakan satu TargetObject, "Pengguna", tetapi Anda juga dapat menentukan "Pengguna","Grup", ini akan menetapkan objek ke objek pengguna dan grup.

Mengatur nilai untuk properti ekstensi

Menggunakan properti ekstensi yang kita gunakan dalam contoh sebelumnya, kita sekarang dapat menetapkan nilai untuk itu:

Set-AzureADUserExtension -ObjectId $UserId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue" 

Mengambil semua atribut ekstensi yang ditentukan untuk aplikasi Anda

Anda dapat mengambil daftar atribut ekstensi yang telah ditentukan untuk aplikasi Anda:

Get-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectId 

Cmdlet ini mengembalikan daftar properti ekstensi di aplikasi Anda:

ObjectId                             Name                                                      TargetObjects
--------                             ----                                                      -------------

91ec8ae5-6813-4453-afd7-31680a484892 extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty  {User}

Menghapus properti ekstensi

Jika Anda tidak lagi memerlukan properti ekstensi, Anda dapat menghapusnya:

Remove-AzureADApplicationExtensionProperty -ObjectId (Get-AzureADApplication -SearchString "My Properties Bag").ObjectID -ExtensionPropertyId 91ec8ae5-6813-4453-afd7-31680a484892 

Catatan

Anda tidak dapat menghapus atribut dari Azure AD setelah diperpanjang atau menghapus Tenant Schema Extension App tanpa menaikkan permintaan ke Tim PayOps. Selain itu, menonaktifkan opsi ekstensi direktori dari wizard Azure AD tidak akan menghapus atribut atau memungkinkan Anda menyingkirkan aplikasi.