https://docs.microsoft.com/en-us/graph/api/group-list?view=graph-rest-1.0#permissions
Права доступа
Для вызова этого API требуется одно из следующих разрешений. Подробнее о том, как выбирать разрешения, см. В разделе «Разрешения».
Тип разрешений Разрешения (от наименее до наиболее привилегированных)
Делегированный (рабочий или учебный аккаунт) Group.Read.All, Group.ReadWrite.All
Приложение Group.Read.All, Group.ReadWrite.All
Вам необходимо настроить доступ к API внутри AAD, а не с областью действия. Убедитесь, что вы не забыли нажать «предоставить разрешения» .
Пример предполагает, что вам требуется разрешение приложения. Делегированное разрешение работает аналогично.

Пример кода для получения данных с использованием MSAL для аутентификации:
IConfidentialClientApplication app = new ConfidentialClientApplication(
"clientId",
"https://login.microsoftonline.com/yourtenant.onmicrosoft.com",
"http://localhost (redirecturi)",
new ClientCredential("secret"),
new TokenCache(), new TokenCache());
string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
try
{
AuthenticationResult result = await app.AcquireTokenForClientAsync(scopes);
System.Console.WriteLine(result.AccessToken);
using (var http = new HttpClient())
{
http.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", result.AccessToken);
var groupResponse = await http.GetAsync("https://graph.microsoft.com/v1.0/groups");
var groupJson = await groupResponse.Content.ReadAsStringAsync();
System.Console.WriteLine(groupJson);
}
}
catch (Exception ex)
{
System.Console.WriteLine(ex.Message);
}