При регистрации приложения Microsoft Entra вы предоставляете ему разрешение на доступ к различным API. По мере изменения потребностей может потребоваться настроить эти разрешения. В этой статье показано, как это сделать.
Примечание.
Разрешения приложения Microsoft Entra применимы только для следующих сценариев:
Внедрение для организации
Внедрение для клиентов с помощью метода проверки подлинности главного пользователя
Изменение параметров разрешений в приложении Microsoft Entra
Изменения разрешений можно вносить программным способом или в портал 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 является необязательным.)
Предоставьте приложению разрешения Power BI, назначив одно из следующих значений consentType:
AllPrincipals — Может использоваться администратором Power BI только для предоставления разрешений от имени всех пользователей в клиенте.
Principal — Используется для предоставления разрешений от имени конкретного пользователя. Если вы используете этот параметр, добавьте principalId={User_ObjectId} свойство в текст запроса.
Если вы используете главного пользователя, чтобы избежать запроса на согласие с помощью идентификатора Microsoft Entra, необходимо предоставить разрешения главной учетной записи.
C78a3685-1ce7-52cd-95f7-dc5aea8ec98e resourceId зависит от клиента и не является универсальным. Это значение является объектным идентификатором приложения службы Power BI в идентификаторе Microsoft Entra. Чтобы получить это значение из портал Azure, перейдите к корпоративным приложениям Все приложения >и найдите службу Power BI.
Предоставьте приложению разрешения идентификатору Microsoft Entra, назначив значение consentType.
Вы также можете изменить разрешения приложения 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();