При регистрации приложения Microsoft Entra вы предоставляете ему разрешение на доступ к различным API. По мере изменения потребностей может потребоваться настроить эти разрешения. В этой статье показано, как это сделать.
Примечание.
Разрешения приложения Microsoft Entra применимы только для следующих сценариев:
-
Внедрение для организации
-
Встраивание для клиентов с помощью метода аутентификации главного пользователя
Изменение параметров разрешений в приложении Microsoft Entra
Изменения разрешений можно вносить программным способом или в портал Azure.
В портал Azure вы можете просмотреть приложение и внести изменения в его разрешения.
Войдите на портал Azure.
Выберите клиент Microsoft Entra, выбрав свою учетную запись в правом верхнем углу страницы.
Выберите регистрации приложений. Если этот параметр не отображается, найдите его.
На вкладке "Принадлежащие приложения " выберите свое приложение. Приложение откроется на вкладке "Обзор ", где можно просмотреть идентификатор приложения.
Перейдите на вкладку "Просмотр разрешений API ".
Выберите "Добавить разрешение".
Чтобы добавить разрешения, выполните следующие действия (обратите внимание, что первый шаг отличается для приложений GCC):
На вкладке API Майкрософт выберите службу Power BI.
Примечание.
Для приложений GCC выберите вкладку "API моей организации" и выполните поиск в облаке сообщества Microsoft Power BI для государственных организаций ИЛИ fc4979e5-0aa5-429f-b13a-5d1365be5566.
Выберите делегированные разрешения и добавьте или удалите необходимые разрешения.
По завершении нажмите кнопку "Добавить разрешения" , чтобы сохранить изменения.
Чтобы удалить разрешение, выполните следующие действия.
Выберите многоточие (...) справа от разрешения.
Выберите "Удалить разрешение".
Во всплывающем окне "Удалить разрешение " нажмите кнопку "Да", удалите ее.
Чтобы изменить разрешения приложения Microsoft Entra программным способом, вам потребуется получить существующие субъекты-службы (пользователи) в клиенте. Дополнительные сведения о том, как это сделать, см. в разделе servicePrincipal.
Чтобы получить все субъекты-службы в клиенте, вызовите Get servicePrincipal
API без {ID}
.
Проверьте сервисный принципал с идентификатором приложения в качестве appId
свойства. (displayName
является необязательным.)
Post https://graph.microsoft.com/v1.0/servicePrincipals HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"accountEnabled" : true,
"appId" : "{App_Client_ID}",
"displayName" : "{App_DisplayName}"
}
Предоставьте приложению разрешения Power BI, назначив одно из следующих значений consentType
:
AllPrincipals
— Может использоваться администратором Power BI только для предоставления разрешений от имени всех пользователей в клиенте.
Principal
— Используется для предоставления разрешений от имени конкретного пользователя. Если вы используете этот параметр, добавьте principalId={User_ObjectId}
свойство в текст запроса.
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
Примечание.
- Если вы используете основного пользователя, чтобы избежать запроса на согласие от Microsoft Entra ID, необходимо предоставить разрешения основной учетной записи.
- Он
resourceId
зависит от арендатора и не является универсальным. Его значением является objectId приложения службы Power BI в идентификаторе Microsoft Entra. Чтобы получить это значение на портале Azure, перейдите к корпоративным приложениям > и найдите службу Power BI.
Предоставьте приложению разрешения идентификатору Microsoft Entra, назначив значение consentType
.
Post https://graph.microsoft.com/v1.0/OAuth2PermissionGrants HTTP/1.1
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
"scope":"User.Read Directory.AccessAsUser.All",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
Вы также можете изменить разрешения приложения Microsoft Entra с помощью C#. Дополнительные сведения см. в API oAuth2PermissionGrant . Этот метод может быть полезным, если вы рассматриваете возможность автоматизации некоторых процессов.
var graphClient = GetGraphClient();
currentState.createdApp = await graphClient.Applications
.Request()
.AddAsync(application);
System.Threading.Thread.Sleep(2000);
var passwordCredential = new PasswordCredential
{
DisplayName = "Client Secret Created in C#"
};
currentState.createdSecret = await graphClient.Applications[currentState.createdApp.Id]
.AddPassword(passwordCredential)
.Request()
.PostAsync();
var servicePrincipal = new ServicePrincipal
{
AppId = currentState.createdApp.AppId
};
currentState.createdServicePrincipal = await graphClient.ServicePrincipals
.Request()
.AddAsync(servicePrincipal);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
// Use oAuth2PermissionGrant to change permissions
var oAuth2PermissionGrant = await graphClient.Oauth2PermissionGrants["{id}"]
.Request()
.GetAsync();
Связанный контент