Приложение Azure AD с Application.ReadWrite.OwnedBy не может добавить больше владельцев в созданные приложения. - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть приложение AAD, которое создает другие приложения AAD.Первое приложение (создатель) имеет право Application.ReadWrite.OwnedBy и может обновлять отображаемые имена приложений, которые оно создало, но оно не может добавлять новых владельцев в эти приложения.Нужно ли для этого больше привилегий?

HTTP-запрос на обновление отображаемого имени созданного приложения (успешно):

PATCH https://graph.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/applications/a1236923-6de6-4e78-87dd-494d621fc20c?api-version=1.6 HTTP/1.1
Authorization: Bearer eyJ0eXAi...
Content-Type: application/json; charset=utf-8
Host: graph.windows.net
Content-Length: 45
Expect: 100-continue

{
  "displayName": "test"
}

HTTP-запрос на добавление владельца в созданное приложение (не удается):

POST https://graph.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/applications/a1236923-6de6-4e78-87dd-494d621fc20c/$links/owners?api-version=1.6 HTTP/1.1
Authorization: Bearer eyJ0eXAi...
Content-Type: application/json; charset=utf-8
Host: graph.windows.net
Content-Length: 122
Expect: 100-continue

{
  "url": "https://graph.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/users/ac990eb3-b25a-4e06-ade5-41c7613693ff"
}


HTTP/1.1 403 Forbidden
request-id: 9be47e62-abcd-4768-926f-ffd62544e696
client-request-id: 149115f6-c9b7-4dd4-a267-711a40c51f23
...

{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."}}}

Я проверил, что приложение-создатель действительно имеет Application.ReadWrite.OwnedBy в массиве ролей токена JWT Bearer.

Я также подтвердил, что приложение-создатель присутствует в владельцесписок созданного приложения по телефону GET https://graph.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/applications/a1236923-6de6-4e78-87dd-494d621fc20c/owners/64898a3a-2fb1-45f0-a514-e83fabbc01f2.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Как правило, чтобы добавить владельца, вызывающему приложению (и вызывающему пользователю в случае делегированных разрешений, хотя в данном случае это только приложение) необходимо разрешение на чтение объекта владельца.при добавлении, а также разрешение на чтение и запись для объекта, который передается новому владельцу.

Таким образом, чтобы приложение добавило в качестве владельца объект Пользователь для объекта Application , владельцем которого является вызывающее приложение, приложению необходимо (как минимум) Directory.Read.All (для чтения объекта User нового владельца) и Application.ReadWrite.OwnedBy(для возможности записи в список владельцев объекта Application ).

0 голосов
/ 06 декабря 2018

Согласно вашему сообщению об ошибке у вас недостаточно прав.Насколько мне известно, если вы хотите назначить пользователя приложению AAD с привилегиями приложения, вам необходимо иметь следующие привилегии: Application.ReadWrite.OwnedBy и Directory.Read.All, Application.ReadWrite.All и Directory.Read.All.

Кроме того, Microsoft настоятельно рекомендует использовать Microsoft Graph вместо API-интерфейса Azure AD Graph для доступа к ресурсам Azure Active Directory.Для более подробной информации, пожалуйста, обратитесь к статье .Если вы хотите использовать Microsoft graph api для назначения пользователя приложению AAD, см. Документ .

.
...