Benutzer aus einer Identitätsdomain in eine andere replizieren

Verwenden Sie die Skripte in diesem Abschnitt, um Benutzer aus einer Identitätsdomain in eine andere Identitätsdomain zu klonen. Der Benutzer, der diese Skripte ausführt, muss in der Quell- und in der Zielumgebung über die Rollen Identitätsdomainadministrator und Serviceadministrator verfügen.

Windows

Erstellen Sie replicateusers.bat und replicateusers.ps1, indem Sie die Skripte in diesem Abschnitt kopieren.

  1. Erstellen Sie replicateusers.ps1, indem Sie das folgende Skript kopieren:

    # 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. Erstellen Sie replicateusers.bat, indem Sie das folgende Skript kopieren:
    @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. Aktualisieren Sie replicateusers.bat. In der folgenden Tabelle finden Sie die Werte, die Sie angeben müssen.
    Parameter Beschreibung
    epmusersource Benutzername eines Benutzers mit der Rolle Identitätsdomainadministrator und Serviceadministrator in der Quellumgebung.

    Beispiele:

    Windows: set epmusersource="jDoe"

    Linux/UNIX: epmusersource="jDoe"

    epmpwdsource Kennwort des Benutzers oder der absolute Pfad der verschlüsselten Kennwortdatei.

    Beispiele:

    Windows: set epmpwdsource="Example"

    Linux/UNIX: epmpwdsource="Example"

    epmurlsource URL der Umgebung, aus der Benutzer kopiert werden sollen.

    Beispiele:

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

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

    epmidentitydomainsource Name der Identitätsdomain, die von der Quellumgebung verwendet wird.

    Beispiele:

    Windows: set epmidentitydomainsource="example_source_dom"

    Linux/UNIX: epmidentitydomainsource="example_source_dom"

    epmusertarget Benutzername eines Benutzers mit der Rolle Identitätsdomainadministrator und Serviceadministrator in der Zielumgebung.

    Beispiele:

    Windows: set epmusertarget="John.Doe"

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

    epmpwdtarget Kennwort des Benutzers oder der absolute Pfad der verschlüsselten Kennwortdatei.

    Beispiele:

    Windows: set epmpwdtarget="Example1"

    Linux/UNIX: epmpwdtarget="Example1"

    epmurltarget URL der Umgebung, in der Benutzer erstellt werden sollen.

    Beispiele:

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

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

    epmidentitydomaintarget Name der Identitätsdomain, die von der Zielumgebung verwendet wird.

    Beispiele:

    Windows: set epmidentitydomaintarget="example_source_dom"

    Linux/UNIX: epmidentitydomaintarget="example_target_dom"

    proxyserverusername Der Benutzername zum Authentifizieren einer sicheren Session auf dem Proxyserver, der den Zugriff auf das Internet steuert. Löschen Sie alle Vorkommen dieser Eigenschaft, wenn sie nicht verwendet wird.

    Beispiele:

    Windows: set proxyserverusername="Example"

    Linux/UNIX: proxyserverusername="Example"

    proxyserverpassword Das Kennwort zur Authentifizierung des Benutzers beim Proxyserver. Löschen Sie alle Vorkommen dieser Eigenschaft, wenn sie nicht verwendet wird.

    Beispiele:

    Windows: set proxyserverpassword="examplePwd"

    Linux/UNIX: proxyserverpassword="examplePwd"

    proxyserverdomain Der Name der Domain, die für den Proxyserver definiert ist. Löschen Sie alle Vorkommen dieser Eigenschaft, wenn sie nicht verwendet wird.

    Beispiele:

    Windows: set proxyserverdomain="exampleDom"

    Linux/UNIX: proxyserverdomain="exampleDom"

    emailtoaddress Optional, die E-Mail-Adresse, an die der Bericht zur Rollenzuweisung gesendet werden soll. Der Bericht wird nur per E-Mail gesendet, wenn dieser Wert angegeben wurde.

    Beispiel: emailtoaddress=john.doe@example.com

Linux/UNIX

  1. Erstellen Sie replicateusers.sh, indem Sie das folgende Skript kopieren.
    #!/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. Aktualisieren Sie replicateusers.sh. In der vorstehenden Tabelle finden Sie Informationen zu den Werten, die Sie angeben müssen. Darüber hinaus müssen Sie die Werte für diese Eigenschaften angeben:
    • javahome: der absolute Pfad zu dem Verzeichnis, in dem Java installiert ist.
    • epmautomatescript: Speicherort von epmautomatescript.sh; z.B. epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"