Я хотел бы программно назначить роль пользователю после его успешной регистрации. поскольку некоторым конечным точкам веб-API требуется эта роль для аутентификации. Я просматривал документацию MS, но немного застрял в общей картине ее реализации.
В этой статье MS показан следующий код для отправки запроса на назначение роли через API графов:
Код: Выделить всё
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new AppRoleAssignment
{
PrincipalId = Guid.Parse("cde330e5-2150-4c11-9c5b-14bfdc948c79"),
ResourceId = Guid.Parse("8e881353-1735-45af-af21-ee1344582a4d"),
AppRoleId = Guid.Parse("00000000-0000-0000-0000-000000000000"),
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Users["{user-id}"].AppRoleAssignments.PostAsync(requestBody);
Код: Выделить всё
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 OnBehalfOfCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud,
};
// This is the incoming token to exchange using on-behalf-of flow
var oboToken = "JWT_TOKEN_TO_EXCHANGE";
var onBehalfOfCredential = new OnBehalfOfCredential(
tenantId, clientId, clientSecret, oboToken, options);
var graphClient = new GraphServiceClient(onBehalfOfCredential, scopes);
Я раньше не использовал Graph API поэтому я хотел проверить, правильный ли это способ сделать это, чтобы токен доступа для пользователя обновлялся/возвращался с новой ролью, добавленной в утверждение ролей, которое будет использоваться для успешного попадания в конечные точки, требующие указанную роль, когда пользователь делает к нему запрос.
Это выглядит правильно и/или я что-то упускаю? Я считаю, что мне, возможно, потребуется добавить еще одну область API Graph во второй фрагмент кода, но любые рекомендации будут полезны при навигации по этому интересному миру MS Graph.
Подробнее здесь: https://stackoverflow.com/questions/786 ... -graph-api
Мобильная версия