Ответ, предоставленный juunas, правильный, я просто внесу некоторые дополнения.
Поскольку вы хотите выполнить эту операцию с помощью кода c#, так что вы можете сослаться на мои шаги ниже:
1. Установите два SDK в вашем проекте.
Install-Package Microsoft.Graph.Auth -IncludePrerelease
Install-Package Microsoft.Graph.Beta -Version 0.14.0-preview
Я ссылался на документ об установке SDK, но не могу найти AppRoleAssignments
в GraphServiceClient
класс. Поэтому, пожалуйста, установите SDK с указанными выше командами.
2. Пожалуйста, обратитесь к приведенному ниже коду:
using Microsoft.Graph;
using Microsoft.Graph.Auth;
using Microsoft.Identity.Client;
using System;
using System.Security;
namespace ConsoleApp13
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Hello World!");
IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
.Create("your client id")
.WithTenantId("your tenantid")
.Build();
UsernamePasswordProvider authProvider = new UsernamePasswordProvider(publicClientApplication, new string[] { "https://graph.microsoft.com/.default" });
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var securePassword = new SecureString();
string password = "your password";
foreach (char c in password)
securePassword.AppendChar(c);
await graphClient.Users["user object id"].AppRoleAssignments["role assignment id"].Request().WithUsernamePassword("email account", securePassword).DeleteAsync();
Console.WriteLine("----complete---");
}
}
}
role assignment id
в AppRoleAssignments["role assignment id"]
выше взято из запрос списка graph api : GET https://graph.microsoft.com/beta/servicePrincipals/{id}/appRoleAssignedTo/{id}
3. Перед запуском кода c# нам нужно разрешить нам назначить делегированное разрешение Directory.AccessAsUser.All
в приложение и включите кнопку, показанную на скриншоте ниже.
4. После этого мы можем запустить код и успешно удалить пользователя или группу.
5. Кстати:
(1) Код, который я предоставил, предназначен для удаления пользователей. Если вы хотите удалить групповое назначение, просто измените код следующим образом:
await graphClient.Groups["group object id"].AppRoleAssignments["role assignment id"].Request().WithUsernamePassword("email account", securePassword).DeleteAsync();
(2) Вы должны обратить внимание на бета-версию api, как упоминалось juunas.
Надеюсь, это поможет ~