예제 #1
0
        private async Task <Microsoft.Graph.User> CreateGraphUser(Microsoft.Graph.User user)
        {
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            // Berechtigungen
            // Benutzer erstellen (Anwendung)	--> User.ReadWrite.All, Directory.ReadWrite.All
            // https://docs.microsoft.com/de-de/graph/api/user-post-users?view=graph-rest-1.0&tabs=http

            var authProvider = _graphFactory.CreateAuthProvider();
            var client       = new GraphServiceClient(authProvider);

            return(await client.Users
                   .Request()
                   .AddAsync(user));
        }
예제 #2
0
        private async Task <Microsoft.Graph.User> UpdateGraphUser([NotNull] string upn, Microsoft.Graph.User user, UserAssertion withUserAssertion = null)
        {
            if (upn == null)
            {
                throw new ArgumentNullException(nameof(upn));
            }

            // Berechtigungen
            // Benutzer abrufen (Anwendung)	--> User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All
            // https://docs.microsoft.com/de-de/graph/api/user-update?view=graph-rest-1.0&tabs=http
            // Zum Updaten von PasswordProfile wird Mitgliedschaft in passender Rolle benötigt (z.B. Helpdeskadministrator)

            var authProvider = withUserAssertion == null
                ? (IAuthenticationProvider)_graphFactory.CreateAuthProvider()
                : _graphFactory.CreateOnBehalfOfProvider(new[] { "User.ReadWrite.All" });

            var client = new GraphServiceClient(authProvider);

            var request = client.Users[$"{upn}"].Request();

            if (withUserAssertion != null)
            {
                request = request.WithUserAssertion(withUserAssertion);
            }

            return(await request.UpdateAsync(user));
        }