Réplication des utilisateurs d'un domaine d'identité dans un autre

Utilisez les scripts de cette section pour cloner les utilisateurs d'un domaine d'identité à un autre domaine d'identité. Pour exécuter ces scripts, l'utilisateur doit posséder les rôles Administrateur de domaine d'identité et Administrateur de service dans les environnements source et cible.

Windows

Créez replicateusers.bat et replicateusers.ps1 en copiant les scripts de cette section.

  1. Créez replicateusers.ps1 en copiant le script suivant :

    # Replicate users script
    
    param(
      [string]$epmusersource,
      [string]$epmpwdsource,
      [string]$epmurlsource,
      [string]$epmidentitydomainsource,
      [string]$epmusertarget,
      [string]$epmpwdtarget,
      [string]$epmurltarget,
      [string]$epmidentitydomaintarget,
      [string]$proxyserverusername,
      [string]$proxyserverpassword,
      [string]$proxyserverdomain,
      [string]$userpassword,
      [string]$resetpassword,
      [string]$emailtoaddress
    )
    
    $roleassignmentreport="roleassignmentreport.csv"
    $usersreport="users.csv"
    
    echo "Replicate users script started"
    
    
    # delete existing reports
    $roleassignmentreportexists=Test-Path $roleassignmentreport
    if ($roleassignmentreportexists) {
        rm $roleassignmentreport 2>&1 | out-null
    }
    
    $usersreportexists=Test-Path $usersreport
    if ($usersreportexists) {
        rm $usersreport 2>&1 | out-null
    }
    
    # epmautomate login Source App as an IDM Admin
    echo "Logging into source application at ${epmurlsource}"
    epmautomate login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${epmidentitydomainsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    echo "Creating role assignment report: ${roleassignmentreport}"
    epmautomate roleAssignmentReport ${roleassignmentreport}
    if (${emailtoaddress} -match "@") {
        epmautomate.bat sendMail $emailtoaddress "Role assignment report" Body="Role assignment report is attached." Attachments=$roleassignmentreport}
    echo "Downloading role assignment report"
    epmautomate downloadfile ${roleassignmentreport}
    epmautomate deletefile ${roleassignmentreport}
    epmautomate logout
    
    # Create users report
    Get-Content ${roleassignmentreport} | ForEach-Object {
        $user=$_.split(',')[0]
        $firstname=$_.split(',')[1]
        $lastname=$_.split(',')[2]
        $email=$_.split(',')[3]
    
        if ($firstname -eq "First Name") {
            return
        } else {
            echo "${firstname},${lastname},${email},${user}" >> ${usersreport}
        }
    
    }
    
    Get-Content -Path "${usersreport}" | Sort-Object -Unique > "${usersreport}.tmp"
    mv -Force "${usersreport}.tmp" "${usersreport}"
    $userheader="First Name,Last Name,Email,User Login"
    "${userheader}`r`n" + (Get-Content $usersreport -Raw) | Set-Content $usersreport
    
    # epmautomate login Target App as an IDM Admin
    echo "Logging into target application at ${epmurltarget}"
    epmautomate login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${epmidentitydomaintarget} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    epmautomate deletefile ${usersreport} | Out-Null
    echo "Uploading file ${usersreport}"
    epmautomate uploadfile ${usersreport}
    echo "Adding users"
    epmautomate addUsers ${usersreport} userPassword=${userpassword} resetPassword=${resetpassword}
    epmautomate deletefile ${usersreport}
    epmautomate logout
    rm deletefile*.log | Out-Null
    echo "Replicate users script completed"
    
  2. Créez replicateusers.bat en copiant le script suivant :
    @ECHO OFF
    SET thisdir=%~dp0
    SET scriptpath=%thisdir%replicateusers.ps1
    SET paramRequiredMessage=Syntax: replicateusers.bat "USER_PASSWORD"
    
    REM USER DEFINED VARIABLES
    REM -----------------------
    set epmusersource="<EPM USER FOR SOURCE ENVIRONMENT>"
    set epmpwdsource="<EPM PASSWORD FOR SOURCE ENVIRONMENT>"
    set epmurlsource="<EPM URL FOR SOURCE ENVIRONMENT>"
    set epmidentitydomainsource="<EPM IDENTITY DOMAIN FOR SOURCE ENVIRONMENT>"
    set epmusertarget="<EPM USER FOR TARGET ENVIRONMENT>"
    set epmpwdtarget="<EPM PASSWORD FOR TARGET ENVIRONMENT>"
    set epmurltarget="<EPM URL FOR TARGET ENVIRONMENT>"
    set epmidentitydomaintarget="<EPM IDENTITY DOMAIN FOR TARGET ENVIRONMENT>"
    set proxyserverusername="<PROXY SERVER USER NAME>"
    set proxyserverpassword="<PROXY SERVER PASSWORD>"
    set proxyserverdomain="<PROXY SERVER DOMAIN>"
    set resetpassword=false
    set emailtoaddress="<EMAIL_TO_ADDRESS>"
    REM -----------------------
    
    if "%~1" == "" (
            echo USER_PASSWORD is missing. This is used to set the default password for the replicated users.
            echo %paramRequiredMessage%
            exit /b 1
      )
    
    PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%scriptpath%' -epmusersource '%epmusersource%' -epmpwdsource '%epmpwdsource%' -epmurlsource '%epmurlsource%' -epmidentitydomainsource '%epmidentitydomainsource%' -epmusertarget '%epmusertarget%' -epmpwdtarget '%epmpwdtarget%' -epmurltarget '%epmurltarget%' -epmidentitydomaintarget '%epmidentitydomaintarget%' -proxyserverusername '%proxyserverusername%' -proxyserverpassword '%proxyserverpassword%' -proxyserverdomain '%proxyserverdomain%' -userpassword '%~1' -resetpassword '%resetpassword%' -emailtoaddress '%emailtoaddress%'"
    
  3. Mettez à jour replicateusers.bat. Reportez-vous au tableau suivant pour connaître les valeurs à indiquer.
    Paramètre  Description
    epmusersource Nom de l'utilisateur doté des rôles Administrateur de domaine d'identité et Administrateur de service dans l'environnement source.

    Exemples :

    Windows : set epmusersource="jDoe"

    Linux/UNIX : epmusersource="jDoe"

    epmpwdsource Mot de passe de l'utilisateur ou chemin absolu du fichier de mots de passe crypté.

    Exemples :

    Windows : set epmpwdsource="Example"

    Linux/UNIX : epmpwdsource="Example"

    epmurlsource URL de l'environnement à partir duquel les utilisateurs doivent être copiés.

    Exemples :

    Windows : set epmurlsource="https://example.oraclecloud.com"

    Linux/UNIX : epmurlsource="https://example.oraclecloud.com"

    epmidentitydomainsource Nom du domaine d'identité utilisé par l'environnement source.

    Exemples :

    Windows : set epmidentitydomainsource="example_source_dom"

    Linux/UNIX : epmidentitydomainsource="example_source_dom"

    epmusertarget Nom de l'utilisateur doté des rôles Administrateur de domaine d'identité et Administrateur de service dans l'environnement cible.

    Exemples :

    Windows : set epmusertarget="John.Doe"

    Linux/UNIX : set epmusertarget="John.Doe"

    epmpwdtarget Mot de passe de l'utilisateur ou chemin absolu du fichier de mots de passe crypté.

    Exemples :

    Windows : set epmpwdtarget="Example1"

    Linux/UNIX : epmpwdtarget="Example1"

    epmurltarget URL de l'environnement dans lequel les utilisateurs doivent être créés.

    Exemples :

    Windows : set epmurltarget="https://example.oraclecloud.com"

    Linux/UNIX : epmurltarget="https://example.oraclecloud.com"

    epmidentitydomaintarget Nom du domaine d'identité utilisé par l'environnement cible.

    Exemples :

    Windows : set epmidentitydomaintarget="example_source_dom"

    Linux/UNIX : epmidentitydomaintarget="example_target_dom"

    proxyserverusername Nom d'utilisateur permettant d'authentifier une session sécurisée avec le serveur proxy qui contrôle l'accès à Internet. Supprime toutes les occurrences de cette propriété si elle n'est pas utilisée.

    Exemples :

    Windows : set proxyserverusername="Example"

    Linux/UNIX : proxyserverusername="Example"

    proxyserverpassword Mot de passe pour l'authentification de l'utilisateur auprès du serveur proxy. Supprime toutes les occurrences de cette propriété si elle n'est pas utilisée.

    Exemples :

    Windows : set proxyserverpassword="examplePwd"

    Linux/UNIX : proxyserverpassword="examplePwd"

    proxyserverdomain Nom du domaine défini pour le serveur proxy. Supprime toutes les occurrences de cette propriété si elle n'est pas utilisée.

    Exemples :

    Windows : set proxyserverdomain="exampleDom"

    Linux/UNIX : proxyserverdomain="exampleDom"

    emailtoaddress (Facultatif) Adresse électronique à laquelle le rapport sur l'affectation de rôle doit être envoyé. Le rapport n'est envoyé par courriel que si cette valeur est indiquée.

    Exemple : emailtoaddress=john.doe@example.com

Linux/UNIX

  1. Créez replicateusers.sh en copiant le script suivant.
    #!/bin/sh
    
    userpassword="$1"
    
    # USER DEFINED VARIABLES
    #-----------------------
    javahome="<JAVA HOME>"
    epmautomatescript="<EPM AUTOMATE SCRIPT LOCATION>"
    epmusersource="<EPM USER FOR SOURCE ENVIRONMENT>"
    epmpwdsource="<EPM PASSWORD FOR SOURCE ENVIRONMENT>"
    epmurlsource="<EPM URL FOR SOURCE ENVIRONMENT>"
    epmidentitydomainsource="<EPM IDENTITY DOMAIN FOR SOURCE ENVIRONMENT>"
    epmusertarget="<EPM USER FOR TARGET ENVIRONMENT>"
    epmpwdtarget="<EPM PASSWORD FOR TARGET ENVIRONMENT>"
    epmurltarget="<EPM URL FOR TARGET ENVIRONMENT>"
    epmidentitydomaintarget="<EPM IDENTITY DOMAIN FOR TARGET ENVIRONMENT>"
    proxyserverusername="<PROXY SERVER USER NAME>"
    proxyserverpassword="<PROXY SERVER PASSWORD>"
    proxyserverdomain="<PROXY SERVER DOMAIN>"
    resetpassword="false"
    emailtoaddress="<EMAIL TO ADDRESS>"
    #-----------------------
    
    roleassignmentreport="roleassignmentreport.csv"
    usersreport="users.csv"
    paramrequiredmessage='Syntax: replicateusers.sh "USER_PASSWORD"'
    
    export JAVA_HOME=${javahome}
    
    if [ "${userpassword}" == "" ]
    then
        echo "USER_PASSWORD is missing. This is used to set the default password for the replicated users."
        echo "${paramrequiredmessage}"
        exit
    fi
    
    echo "Replicate users script started"
    
    # epmautomate login Source App as an IDM Admin
    echo "Logging into source application at ${epmurlsource}"
    ${epmautomatescript} login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${epmidentitydomainsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    echo "Creating role assignment report: ${roleassignmentreport}"
    ${epmautomatescript} roleAssignmentReport ${roleassignmentreport}
    if [[ "${emailtoaddress}" == *"@"* ]]
    then
        ${epmautomatescript} sendMail $emailtoaddress "Role assignment report" Body="Role assignment report is attached." Attachments=$roleassignmentreport
    fi
    echo "Downloading role assignment report"
    ${epmautomatescript} downloadfile ${roleassignmentreport}
    ${epmautomatescript} deletefile ${roleassignmentreport}
    ${epmautomatescript} logout
    
    awk -F, '{print $2","$3","$4","$1}' ${roleassignmentreport} | (read -r; printf "%s\n" "$REPLY"; sort -u) > ${usersreport}
    
    # epmautomate login Target App as an IDM Admin
    echo "Logging into target application at ${epmurltarget}"
    ${epmautomatescript} login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${epmidentitydomaintarget} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    ${epmautomatescript} deletefile ${usersreport} > /dev/null 2>&1
    echo "Uploading file ${usersreport}"
    ${epmautomatescript} uploadfile ${usersreport}
    echo "Adding users"
    ${epmautomatescript} addUsers ${usersreport} userPassword=${userpassword} resetPassword=${resetpassword}
    ${epmautomatescript} deletefile ${usersreport}
    ${epmautomatescript} logout
    rm deletefile*.log > /dev/null 2>&1
    
    echo "Replicate users script completed"
    
  2. Mettez à jour replicateusers.sh. Reportez-vous au tableau précédent pour obtenir plus d'informations sur les valeurs à indiquer. Vous pouvez également indiquer les valeurs pour ces propriétés :
    • javahome : chemin absolu du répertoire dans lequel Java est installé.
    • epmautomatescript : emplacement d'epmautomatescript.sh. Par exemple : epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"