Replica degli utenti di un dominio di Identity in un altro

Utilizzare gli script in questa sezione per clonare gli utenti di un dominio di Identity in un altro dominio di Identity. L'utente che esegue questi script deve disporre dei ruoli Amministratore dominio di Identity e Amministratore servizi negli ambienti di origine e target.

Nota:

  • In caso di utilizzo della versione in formato PDF di questo documento: per evitare le interruzioni di riga e le informazioni dei piè di pagina che renderebbero inutilizzabili questi script, copiare gli script dalla Versione HTML di questo argomento.
  • Se l'autenticazione a livello di server proxy non è abilitata per l'ambiente di rete, rimuovere le proprietà proxyserverusername, proxyserverpassword e proxyserverdomain dal file replicateusers.bat o replicateusers.sh.

Windows

Creare replicateusers.bat e replicateusers.ps1 copiando gli script in questa sezione.

  • Creazione di replicateusers.ps1

    Contenuto di replicateusers.ps1

    # Replicate users script
    
    param(
      [string]$epmusersource,
      [string]$epmpwdsource,
      [string]$epmurlsource,
      [string]$epmusertarget,
      [string]$epmpwdtarget,
      [string]$epmurltarget,
      [string]$proxyserverusername,
      [string]$proxyserverpassword,
      [string]$proxyserverdomain,
      [string]$userpassword,
      [string]$resetpassword
    )
    
    $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
    }
    
    # Log into source Source service
    echo "Logging into source service ${epmurlsource}"
    epmautomate login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    echo "Creating Role Assignment Report: ${roleassignmentreport}"
    epmautomate roleAssignmentReport ${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
    
    # Log into Target service
    echo "Logging into Target service ${epmurltarget}"
    epmautomate login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${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."
    
  • Creare replicateusers.bat

    Contenuto di replicateusers.bat

    @ECHO OFF
    SET thisdir=%~dp0
    SET scriptpath=%thisdir%replicateusers.ps1
    SET paramRequiredMessage=Syntax: replicateusers.bat "USER_PASSWORD"
    
    REM USER DEFINED VARIABLES
    REM --- CONNECTION INFORMATION: SOURCE SERVICE --------
    set epmusersource=example_IDM_Admin
    set epmpwdsource=examplePassword
    set epmurlsource=https://source_example.oraclecloud.com
    
    REM --- CONNECTION INFORMATION: TARGET SERVICE ----------
    set epmusertarget=example_IDM_Admin
    set epmpwdtarget=examplePassword
    set epmurltarget=https://target_example.oraclecloud.com
    
    REM --- INTERNET PROXY SETTINGS: DELETE IF NOT USING A PROXY SERVER ----
    set proxyserverusername=exampleProxyServerHost
    set proxyserverpassword=exampleProxyServerPassword
    set proxyserverdomain=exampleProxyServerDomain
    
    REM -----------------------
    set resetpassword=false
    REM -----------------------
    
    if "%~1" == "" (
       echo USER_PASSWORD is missing. This is used to set the default password for replicated users.
       echo %paramRequiredMessage%
       exit /b 1
       )
    
    REM ---DELETE PROXY SERVER DIRECTIVES IF NOT USED ----------------
    
    PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%scriptpath%' -epmusersource '%epmusersource%' -epmpwdsource '%epmpwdsource%' -epmurlsource '%epmurlsource%' -epmusertarget '%epmusertarget%' -epmpwdtarget '%epmpwdtarget%' -epmurltarget '%epmurltarget%' -proxyserverusername '%proxyserverusername%' -proxyserverpassword '%proxyserverpassword%' -proxyserverdomain '%proxyserverdomain%' -userpassword '%~1' -resetpassword '%resetpassword%'"
  • Aggiornare replicateusers.bat. Fare riferimento alla tabella riportata di seguito per le informazioni sui valori da specificare.
Parametro Descrizione
epmusersource Nome utente di un utente con i ruoli Amministratore dominio di Identity e Amministratore servizi nell'ambiente di origine.

Esempi:

Windows: set epmusersource="jDoe"

Linux/UNIX: epmusersource="jDoe"

epmpwdsource La password dell'utente o il percorso assoluto del file delle password cifrate.

Esempi:

Windows: set epmpwdsource="Example"

Linux/UNIX: epmpwdsource="Example"

epmurlsource URL dell'ambiente da cui devono essere copiati gli utenti.

Esempi:

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

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

epmusertarget Nome utente di un utente con i ruoli Amministratore dominio di Identity e Amministratore servizi nell'ambiente target.

Esempi:

Windows: set epmusertarget="John.Doe"

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

epmpwdtarget La password dell'utente o il percorso assoluto del file delle password cifrate.

Esempi:

Windows: set epmpwdtarget="Example1"

Linux/UNIX: epmpwdtarget="Example1"

epmurltarget URL dell'ambiente in cui devono essere creati gli utenti.

Esempi:

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

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

proxyserverusername Il nome utente per l'autenticazione di una sessione sicura con il server proxy che controlla l'accesso a Internet. Eliminare tutte le occorrenze di questa proprietà, se non utilizzate.

Esempi:

Windows: set proxyserverusername="Example"

Linux/UNIX: proxyserverusername="Example"

proxyserverpassword La password per autenticare l'utente con il server proxy. Eliminare tutte le occorrenze di questa proprietà, se non utilizzate.

Esempi:

Windows: set proxyserverpassword="examplePwd"

Linux/UNIX: proxyserverpassword="examplePwd"

proxyserverdomain Il nome del dominio definito per il server proxy. Eliminare tutte le occorrenze di questa proprietà, se non utilizzate.

Esempi:

Windows: set proxyserverdomain="exampleDom"

Linux/UNIX: proxyserverdomain="exampleDom"

Linux/UNIX

  • Creare replicateusers.sh copiando lo script riportato di seguito.
    #!/bin/sh
    userpassword="$1"
    
    # USER DEFINED VARIABLES
    #---- CONNECTION INFORMATION: SOURCE SERVICE ---------
    javahome="JAVA HOME"
    epmautomatescript=/home/exampleAdmin/epmautomate/bin/epmautomate.sh
    epmusersource=example_IDM_Admin
    epmpwdsource=examplePassword
    epmurlsource=exampleURL
    
    #---- CONNECTION INFORMATION: TARGET SERVICE ---------
    epmusertarget=example_IDM_Admin
    epmpwdtarget=examplePassword
    epmurltarget=exampleURL
    
    #--- TERNET PROXY SETTINGS: DELETE IF NOT USING A PROXY SERVER ----
    proxyserverusername=exampleProxyServerHost
    proxyserverpassword=exampleProxyServerPassword
    proxyserverdomain=exampleProxyServerDomain
    
    #--- PASSWORD RESET OPTION FOR NEW USERS ----------------
    resetpassword="false"
    #-----------------------
    
    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"
    
    # Log into source service
    echo "Logging into source application at ${epmurlsource}"
    ${epmautomatescript} login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
    echo "Creating role assignment report: ${roleassignmentreport}"
    ${epmautomatescript} roleAssignmentReport ${roleassignmentreport}
    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}
    
    # Log into the target service
    echo "Logging into target application at ${epmurltarget}"
    ${epmautomatescript} login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${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"
  • Aggiornare replicateusers.sh. Fare riferimento alla tabella precedente per le informazioni sui valori da specificare. Inoltre, è necessario specificare i valori per le proprietà riportate di seguito.
    • javahome: il percorso assoluto alla directory dove è installato Java.
    • epmautomatescript: posizione di epmautomatescript.sh; ad esempio, epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"