Как проверить подлинность Microsoft Graph, используя учетные данные клиента и токен доступа на C#?C#

Место общения программистов C#
Anonymous
Как проверить подлинность Microsoft Graph, используя учетные данные клиента и токен доступа на C#?

Сообщение Anonymous »

У нас есть базовое веб-приложение .net, которое использует Microsoft Graph для доступа к некоторым файлам в библиотеке документов SharePoint. Довольно простой. Мы настроили разрешения приложения Sites.Selected при регистрации. Насколько я понимаю, учетные данные клиента — это способ аутентификации в приложении в Microsoft Graph. В примерах, которые я нашел, показан следующий код:

Код: Выделить всё

// The client credentials flow requires that you request the
// /.default scope, and preconfigure your permissions on the
// app registration in Azure. An administrator must grant consent
// to those permissions beforehand.
var scopes = new[] { "https://graph.microsoft.com/.default" };

// Multi-tenant apps can use "common",
// single-tenant apps must use the tenant ID from the Azure portal
var tenantId = "common";

// Values from app registration
var clientId = "YOUR_CLIENT_ID";
var clientSecret = "YOUR_CLIENT_SECRET";

// using Azure.Identity;
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};

// https://learn.microsoft.com/dotnet/api/azure.identity.clientsecretcredential
var clientSecretCredential = new ClientSecretCredential(
tenantId, clientId, clientSecret, options);

var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
Но когда я использую этот код, я получаю сообщение об ошибке: «В токене должно присутствовать утверждение scp или роли.»Я понял, как получить токен доступа, но не могу понять, как применить токен доступа к приведенному выше коду. Есть ли способ сделать это, или я все на неправильном пути?
РЕДАКТИРОВАТЬ: у меня есть несколько вопросов о регистрации приложения, поэтому я добавлю информацию, чтобы прояснить ситуацию.
Приложение зарегистрировано как мультитенантное приложение, и разрешение приложения установлено для «Sites.Selected». . Кроме того, в PowerShell были запущены команды для назначения правильного доступа к сайту SharePoint с использованием идентификатора приложения и идентификатора сайта/имени сайта. Дополнительные команды были выполнены для подтверждения правильного доступа.

Подробнее здесь: https://stackoverflow.com/questions/763 ... cess-token

Вернуться в «C#»