Search code examples
apioffice365account

create user accounts in office 365 using c#.net code dynamically


I want a sample application in c#.net which can create users in Office 365 using Microsoft API .

I wish to do it in code, not using Powershell.


Solution

  • You can use the Microsoft Graph API - Create User:

    Register a Native Client App on Azure AD, assign the "Microsoft Graph" > "Read and Write Directory Data" permission.

    enter image description here

                string authority = "https://login.windows.net/yourdomain.onmicrosoft.com";
    
                string clientId = "{app_client_id}";
    
                Uri redirectUri = new Uri("http://localhost");
    
                string resourceUrl = "https://graph.microsoft.com";
    
                HttpClient client = new HttpClient();
    
                AuthenticationContext authenticationContext = new AuthenticationContext(authority, false);
    
                AuthenticationResult authenticationResult = authenticationContext.AcquireToken(resourceUrl,
                    clientId, redirectUri, PromptBehavior.Always);
    
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + authenticationResult.AccessToken);
    
                string content = @"{
                    'accountEnabled': true,
                    'displayName': 'testuser',
                    'mailNickname': 'test',
                    'passwordProfile': {
                        'forceChangePasswordNextSignIn': true,
                        'password': 'pass@wd12345'
                    },
                    'userPrincipalName': 'testuser@yourdomain.onmicrosoft.com'
                }";
    
                var httpContent = new StringContent(content, Encoding.GetEncoding("utf-8"), "application/json");
    
                var response = client.PostAsync("https://graph.microsoft.com/v1.0/users", httpContent).Result;
    
                Console.WriteLine(response.Content.ReadAsStringAsync().Result);