Когда я запрашиваю субъектов службы типа приложения как с делегированными разрешениями, так и с разрешениями приложения для MS Graph, разрешения OAuth2 (Oauth2PermissionGrants
) всегда возвращаются как $null
.
$servicePrincipal = Get-MgServicePrincipal -ServicePrincipalId c3c1919a-eb0e-4664-96c7-3a4112345678
Как я могу вернуть разрешения OAuth2 для субъектов-служб?
Примечание. Модуль AzureAD
не работает на Mac на базе Arm64.
@SantiagoSquarzon Спасибо! Это работает, однако в результате не указан ресурс, определяющий область действия. Для областей MS Graph PrincipalId имеет значение NULL, а идентификатор ресурса — это само разрешение. Знаете ли вы, почему это работает, а Get-MgServicePrincipal — нет? Как получить ресурс в результате?
@SantiagoSquarzon Кроме того, не могли бы вы это прокомментировать? serverfault.com/questions/1164279/…
Извините, я не использую командлеты из этого модуля, за исключением Invoke-MgGraphRequest
для прямых запросов к API. Остальные командлеты — чистый мусор. Понятия не имею, почему Get-MgServicePrincipal
не возвращает это, меня это тоже не удивляет.
Invoke-MgGraphRequest выполняет HTTP-запрос, а Get-MgServicePrincipal входит в систему на удаленном компьютере для получения данных. Invoke-MgGraphRequest будет использовать пользователя/роль для получения доступа к данным. Invoke-MgGraphRequest может потребовать от администратора получить доступ к учетной записи другого пользователя.
@jdweng Что вы подразумеваете под «входом на удаленный компьютер»? Я нацелен на Entra ID
Когда вы нацеливаетесь на удаленный компьютер, происходит вход в систему с использованием ваших учетных данных, который выполняется автоматически.
@jdweng Но я не нацелен на удаленный компьютер в случае Entra ID? Разве ваш комментарий не относится только к Active Directory?
Вы работаете от имени администратора? Обязательно запустите командлет PS, щелкнув правой кнопкой мыши ярлык PS и выбрав «Запуск от имени администратора».
Шучжэн: просто игнорируйте все, что говорит пользователь выше. 99/100 комментариев - это чистая чушь. Можете ли вы уточнить, что вы подразумеваете под «в результате не указан ресурс, определяющий область действия»? Я думал, что ресурс, определяющий область действия, — это то, что вы увидите в свойстве resourceId
из ответа API: Learn.microsoft.com/en-us/graph/api/…
Извините, вы правы. resourceId
действительно является идентификатором ресурса, определяющего область действия. Это идентификатор объекта субъекта-службы.
@SantiagoSquarzon Была ли у вас возможность прокомментировать мой вопрос относительно неизменяемых тегов объектов Entra ID, таких как приложения, группы и т. д. Я не хочу, чтобы владельцы могли изменять или удалять теги
Для примера я предоставил приложению Microsoft Entra ID несколько делегированных разрешений и разрешений API приложения:
Чтобы получить делегированные разрешения API, используйте следующую команду:
Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId ServicePrincipalId
Чтобы получить разрешения API типа приложения, используйте следующую команду:
Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId ServicePrincipalId
Спасибо @Rukmini. Как бы вы запросили значение роли приложения для идентификатора роли приложения, например Application.Read.All?
Конечно, пожалуйста, опубликуйте новый вопрос с подробностями, которые помогут вам там.
Вставьте сюда ссылку на новый вопрос со всеми подробностями.
Попробуйте с
Invoke-MgGraphRequest GET v1.0/servicePrincipals/c3c1919a-eb0e-4664-96c7-3a4112345678/oauth2PermissionGrants