Ответ 1
Я потратил последние 2 дня, пытаясь понять это и, наконец, получил его. Azure AD - это движущаяся цель, и с ASPNETCORE все еще созревает большинство документации о том, как получить доступ к графику AD Azure устарела. Таким образом, прямо сейчас вы можете получить доступ к графику Azure AD.
- Обратите внимание на свое приложение clientid
- Зарегистрируйте свое приложение с помощью Azure Active Directory
- Создайте ключ в этой регистрации и учтите его (вы можете просматривать его только после его создания)
- Обратите внимание на свое "Имя арендатора" (вы также можете использовать идентификатор арендатора)
Затем вы будете использовать приведенную выше информацию для создания Токена доступа, а затем использовать этот токен для совершения вызовов на Графике.
public async void GetUsers()
{
// Get OAuth token using client credentials
string tenantName = "your-tenant-name.onmicrosoft.com";
string authString = "https://login.microsoftonline.com/" + tenantName;
AuthenticationContext authenticationContext = new AuthenticationContext(authString, false);
// Config for OAuth client credentials
string clientId = "your-client-id";
string key = "your-AzureAD-App-Key";
ClientCredential clientCred = new ClientCredential(clientId, key);
string resource = "https://graph.windows.net";
AuthenticationResult authenticationResult;
try
{
authenticationResult = await authenticationContext.AcquireTokenAsync(resource, clientCred);
}
catch(Exception ex)
{
throw new Exception(ex.Message, ex.InnerException);
}
var client = new HttpClient();
var request = new HttpRequestMessage(System.Net.Http.HttpMethod.Get, "https://graph.windows.net/your-tenant-name.onmicrosoft.com/users?api-version=1.6");
request.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", authenticationResult.AccessToken);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
}
Еще одна огромная информация о том, что я столкнулся, и несколько форумов обсуждают это, если вы получаете ошибку Authorization_Request_Denied или ошибку Недопустимые ошибки. Это разрешено, выполнив команду PowerShell, чтобы предоставить приложение, зарегистрированное в разрешениях "Администратор" Azure AD. Запросы к API-интерфейсу MS Graph дают мне "Запрос на авторизацию отказано - Недостаточно прав для завершения операции"
Команда powershell, которую вы хотите запустить,
Connect-MsolService
$ClientIdWebApp = '{your_AD_application_client_id}'
$webApp = Get-MsolServicePrincipal –AppPrincipalId $ClientIdWebApp
#use Add-MsolRoleMember to add it to "Company Administrator" role).
Add-MsolRoleMember -RoleName "Company Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId $webApp.ObjectId
Надеюсь, это поможет. Дайте мне знать, если вы считаете, что необходимо произвести переработку.