Podczas rejestrowania aplikacji Microsoft Entra udzielasz jej uprawnień dostępu do różnych interfejsów API. W miarę zmian potrzeb możesz dostosować te uprawnienia. W tym artykule pokazano, jak to zrobić.
Uwaga
Uprawnienia aplikacji Microsoft Entra mają zastosowanie tylko w następujących scenariuszach:
-
Wstawianie dla organizacji
-
Osadzaj dla klientów przy użyciu metody uwierzytelniania użytkownika nadrzędnego
Edytowanie ustawień uprawnień w aplikacji Microsoft Entra
Zmiany uprawnień można wprowadzać programowo lub w witrynie Azure Portal.
W witrynie Azure Portal możesz wyświetlić aplikację i wprowadzić zmiany w jej uprawnieniach.
Zaloguj się do witryny Azure Portal.
Wybierz dzierżawę firmy Microsoft Entra, wybierając swoje konto w prawym górnym rogu strony.
Wybierz pozycję Rejestracje aplikacji. Jeśli nie widzisz tej opcji, wyszukaj ją.
Na karcie Aplikacje należące wybierz aplikację. Aplikacja zostanie otwarta na karcie Przegląd , gdzie można przejrzeć identyfikator aplikacji.
Wybierz kartę Wyświetl uprawnienia interfejsu API .
Wybierz pozycję Dodaj uprawnienie.
Aby dodać uprawnienia, wykonaj następujące kroki (należy pamiętać, że pierwszy krok różni się w przypadku aplikacji GCC):
Na karcie Interfejsy API firmy Microsoft wybierz pozycję Usługa Power BI.
Uwaga
W przypadku aplikacji GCC wybierz kartę Interfejsy API używane przez moją organizację i wyszukaj Microsoft Power BI Government Community Cloud LUB fc4979e5-0aa5-429f-b13a-5d1365be5566.
Wybierz pozycję Delegowane uprawnienia i dodaj lub usuń potrzebne uprawnienia.
Po zakończeniu wybierz pozycję Dodaj uprawnienia , aby zapisać zmiany.
Aby usunąć uprawnienie, wykonaj następujące kroki:
Wybierz wielokropek (...) po prawej stronie uprawnienia.
Wybierz pozycję Usuń uprawnienie.
W oknie Usuń uprawnienia wybierz Tak, usuń.
Aby programowo zmienić uprawnienia aplikacji Microsoft Entra, musisz uzyskać istniejące jednostki usługi (użytkowników) w dzierżawie. Aby uzyskać informacje na temat tego, jak to zrobić, zobacz servicePrincipal.
Aby pobrać wszystkie jednostki usługi w dzierżawie, wywołaj Get servicePrincipal interfejs API bez {ID}polecenia .
Sprawdź jednostkę usługi z identyfikatorem aplikacji aplikacji jako właściwością appId . (displayName jest opcjonalny).
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}"
}
Przyznaj aplikacji uprawnienia usługi Power BI, przypisując jedną z następujących wartości do :consentType
AllPrincipals — Może służyć tylko administrator usługi Power BI do udzielania uprawnień w imieniu wszystkich użytkowników w dzierżawie.
Principal — Służy do udzielania uprawnień w imieniu określonego użytkownika. Jeśli używasz tej opcji, dodaj principalId={User_ObjectId} właściwość do treści żądania.
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"
}
Uwaga
- Jeśli używasz użytkownika głównego, aby uniknąć monitowania o zgodę przez identyfikator Entra firmy Microsoft, musisz udzielić uprawnień do konta głównego.
-
resourceId zależy od najemcy i nie jest uniwersalny. Jego wartością jest objectId aplikacji usługi Power BI w identyfikatorze Entra firmy Microsoft. Aby uzyskać tę wartość z witryny Azure Portal, przejdź do pozycji Aplikacje dla przedsiębiorstw Wszystkie aplikacje >i wyszukaj pozycję Usługa Power BI.
Udziel uprawnień aplikacji do identyfikatora Entra firmy Microsoft, przypisując wartość do consentTypeelementu .
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"
}
Możesz również zmienić uprawnienia aplikacji Microsoft Entra przy użyciu języka C#. Aby uzyskać więcej informacji, zobacz interfejs API oAuth2PermissionGrant . Ta metoda może być przydatna, jeśli rozważasz automatyzację niektórych procesów.
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();
Powiązana zawartość