public PersonUser CreateLocalUser(
            string userName,
            string password,
            string description  = null,
            string emailAddress = null,
            string firstName    = null,
            string lastName     = null)
        {
            // Create Authorization Invocation Context
            var authorizedInvocationContext =
                CreateAuthorizedInvocationContext();

            // Invoke SSO Admin CreateLocalSolutionUser operation
            var ssoPrincipalId = authorizedInvocationContext.
                                 InvokeOperation(() =>
                                                 _ssoAdminBindingClient.CreateLocalPersonUserAsync(
                                                     new ManagedObjectReference {
                type  = "SsoAdminPrincipalManagementService",
                Value = "principalManagementService"
            },
                                                     userName,
                                                     new SsoAdminPersonDetails {
                description  = description,
                emailAddress = emailAddress,
                firstName    = firstName,
                lastName     = lastName
            },
                                                     password)).Result;

            return(GetLocalUsers(ssoPrincipalId.name, ssoPrincipalId.domain, authorizedInvocationContext));
        }