Конечно, он не предоставит исходное разрешение, когда вы создаете приложение и предоставляете разрешение API, это разрешение и разрешение в Exchange
- это совершенно два разных разрешения от разных API, независимо от того, какие appRoleId
они использовали.
Чтобы предоставить full_access_as_app
разрешение приложения для вашего приложения, выполните следующие действия.
1. Перейдите к своему приложению AD на портале - ›Manifest
-› requiredResourceAccess
, получите resourceAppId
и id
, обратите внимание на id
как appRoleId
.
2. Перейдите к Azure Active Directory
на портале - ›Enterprise applications
-› найдите resourceAppId
, полученный на шаге 1, затем вы найдете Office 365 Exchange Online
- ›щелкните по нему -› _14 _- ›получите Object ID
, запишите его как resourceId
.
Примечание. Object ID
отличается в разных клиентах AAD.
3. Перейдите в свое приложение AD - ›щелкните Managed application in local directory
, затем получите Object ID
, запишите его как principalId
.
4. Затем вызовите используемый вами Microsoft Graph - Предоставьте объекту службы appRoleAssignment, используйте полученные ранее значения.
POST https://graph.microsoft.com/v1.0/servicePrincipals/<resourceId>/appRoleAssignedTo
{
"principalId": "<principalId>",
"resourceId": "<resourceId>",
"appRoleId": "<appRoleId>"
}
Я тестирую его в Graph Explorer:
Результат проверяйте на портале, все работает нормально.
person
Joy Wang
schedule
13.10.2020