переместить массовую загрузку пользователей из локальной базы данных в azure b2c active directory на JAVA

#java #api #rest #microsoft-graph-api

#java #API #rest #microsoft-graph-api

Вопрос:

Я пытаюсь создать консольное приложение на Java, с помощью которого я хочу перенести более 100000 пользователей в Azure AD B2C.

Для этой цели мы используем Graph API.

Я создал файл формата JSON, который содержит список пользователей, выглядит следующим образом :

 {
  "users": [
    {
      "displayName": "Amanda Polly",
      "givenName": "Amanda",
      "surname": "Polly",
      "extension_user_type": "user",
      "identities": [
        {
          "signInType": "emailAddress",
          "issuerAssignedId": "amandapolly@gmail.com"
        }
      ],
      "extension_timezone": "PST",
      "extension_locale": "en-US",
      "extension_tenant": "EG1234"
    },
    {
      "displayName": "Lowa Doe",
      "givenName": "Lowa",
      "surname": "Doe",
      "extension_user_type": "user",
      "identities": [
        {
          "signInType": "userName",
          "issuerAssignedId": "lowadow123"
        }
      ],
      "extension_timezone": "PST",
      "extension_locale": "en-US",
      "extension_tenant": "EG1234"
    }
   ]
}
  

У меня есть это в (точечном) файле json, я должен использовать этот файл и создавать пользователей в b2c active directory с помощью graph API, нужна помощь в запуске.

Ответ №1:

Пользовательский graph api и отправить post-запрос, подобный этому

Установите все поля, а затем обработайте это следующим образом.

 User createNewUser = new User();
        createNewUser.displayName = displayName;
        
        if (givenName.equals(null) || givenName.isEmpty() || givenName.equals("") || givenName.equals(" ")) {
            LOG.warn("givenName is empty");
        } else {
            createNewUser.givenName = givenName;
        }
        
        if (surname.equals(null) || surname.isEmpty() || surname.equals("") || surname.equals(" ")) {
            LOG.warn("surname is empty");
        } else {
            createNewUser.surname = surname;
        }
        
        final LinkedList<ObjectIdentity> identitiesList = new LinkedList<ObjectIdentity>();
        ObjectIdentity identities = new ObjectIdentity();
        
        identities.signInType = signInType;
        identities.issuerAssignedId = issuerAssignedId;
        identities.issuer = "controlme.onmicrosoft.com";
        identitiesList.add(identities);

        createNewUser.identities = identitiesList;

        PasswordProfile passwordProfile = new PasswordProfile();
        passwordProfile.password = generatePassword(15);
        passwordProfile.forceChangePasswordNextSignIn = false;

        createNewUser.passwordProfile = passwordProfile;
        createNewUser.passwordPolicies = "DisablePasswordExpiration";
    

User buildUserRequest = graphClient.users()
                .buildRequest()
                .post(createNewUser);