Как добавить свойства расширений для объектов устройств Azure-AD с помощью PowerShell?
Я хочу добавить свойства расширения для объектов устройств в Azure AD с помощью Power-Shell. Я много искал, но нашел примеры только для пользовательских объектов. Я написал скрипт, и он успешно работает для пользовательских объектов, но я не могу установить свойства расширения для устройства.
Команда Set-AzureADUserExtension
существует для пользователя, но для устройств, таких команд нет, например
Set-AzureADDeviceExtension
(нет команды, как это). Может кто-нибудь помочь мне, как добиться этого? Как я могу установить свойства расширения для объектов устройства? Я хочу добиться чего-то вроде этого:
New-AzureADApplicationExtensionProperty -ObjectId $MyApp -Name "MyNewProperty" -DataType "String" -TargetObjects "Device";
Set-AzureADDeviceExtension -ObjectId $deviceId -ExtensionName "extension_0380f0f700c040b5aa577c9268940b53_MyNewProperty" -ExtensionValue "MyNewValue";
0 ответов
Я искал точно то же самое и ничего не нашел ни тогда, ни сегодня. Мне пришлось использовать Microsoft Graph API, чтобы добавить новые расширения к объекту устройства. То же самое для консалтинга.
Шаг 1. Установите или импортируйте модуль Azure.
Install-Module AzureAD
or
Import-Module AzureAD
Шаг 2: Поиск объекта и сохранение ObjectID.
$ObjectID = (Get-AzureADDevice -SearchString 'Object-Name').ObjectId
Примечание. "Id" в запросе - это свойство "id" устройства, а не "deviceId".
Шаг 3: Создать приложение
https://portal.azure.com - Azure Active Directory - App registrations - New registration
Имя: YourAppName
Поддерживаемые типы учетных записей: учетные записи только в этом организационном каталоге (каталог по умолчанию)
URI перенаправления: (WEB) https://login.microsoftonline.com/common/oauth2/nativeclient
Шаг 4. Настройка приложения
https://portal.azure.com - Azure Active Directory - App registrations - YourAppName
Сертификаты и секреты - Новый секрет клиента
- Сохранить секретное значение клиента
API-разрешения - Добавить разрешение - Microsoft Graph - Делегированные разрешения
- Directory.AccessAsUser.All
Шаг 5: Получить access_token
## Directory.AccessAsUser.All : Minimun privilege for Get, add, update and delete extensions. (https://docs.microsoft.com/en-us/graph/api/opentypeextension-post-opentypeextension?view=graph-rest-1.0)
$scopes = "Directory.AccessAsUser.All"
$redirectURL = "https://login.microsoftonline.com/common/oauth2/nativeclient"
$clientID = "YourAppIdClient"
$clientSecret = [System.Web.HttpUtility]::UrlEncode("YourAppClientSecret")
$authorizeUrl = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
$requestUrl = $authorizeUrl + "?scope=$scopes"
$requestUrl += "&response_type=code"
$requestUrl += "&client_id=$clientID"
$requestUrl += "&redirect_uri=$redirectURL"
$requestUrl += "&response_mode=query"
Write-Host
Write-Host "Copy the following URL and paste the following into your browser:"
Write-Host
Write-Host $requestUrl -ForegroundColor Cyan
Write-Host
Write-Host "Copy the code querystring value from the browser and paste it below."
Write-Host
$code = Read-Host -Prompt "Enter the code"
$body = "client_id=$clientID&client_secret=$clientSecret&scope=$scopes&grant_type=authorization_code&code=$code&redirect_uri=$redirectURL"
$tokenUrl = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
$response = Invoke-RestMethod -Method Post -Uri $tokenUrl -Headers @{"Content-Type" = "application/x-www-form-urlencoded"} -Body $body
$token = $response.access_token
Получить расширение устройства
$apiUrl = 'https://graph.microsoft.com/v1.0/devices/<ID-Object>/extensions' ## change <ID-Object> for your ObjectID.
(https://docs.microsoft.com/en-us/graph/api/device-get?view=graph-rest-1.0&tabs=cs)
$Data = Invoke-RestMethod -Headers @{Authorization = "Bearer $accessToken"} -Uri $apiUrl -Method Get
$Data.Value | fl
Добавить устройство расширения
$apiUrl = 'https://graph.microsoft.com/v1.0/devices/<ID-Object>/extensions'
$body = '{
"@odata.type": "microsoft.graph.openTypeExtension",
"id": "test.extension",
"name_extension": "example"
}'
Invoke-RestMethod -Headers @{Authorization = "Bearer $token"; "Content-type" = "application/json"} -Uri $apiUrl -Method Post -Body $body
Обновление расширения устройства
## Actualizar datos de una extensión
$apiUrl = 'https://graph.microsoft.com/v1.0/devices/<ID-Object>/extensions/test.extension' ## Extension ID to update
$body = '{
"@odata.type": "microsoft.graph.openTypeExtension",
"id": "test.extension",
"name_extension": "new_value"
}'
Invoke-RestMethod -Headers @{Authorization = "Bearer $token"; "Content-type" = "application/json"} -Uri $apiUrl -Method Patch -Body $body
Удалить расширение устройства
$apiUrl = 'https://graph.microsoft.com/v1.0/devices/<ID-Object>/extensions/test.extension'
Invoke-RestMethod -Headers @{Authorization = "Bearer $token"; "Content-type" = "application/json"} -Uri $apiUrl -Method Delete