あるアイデンティティ・ドメインから別のアイデンティティ・ドメインへのユーザーのレプリケート

この項のスクリプトを使用して、1つのアイデンティティ・ドメインのユーザーを別のアイデンティティ・ドメインにクローニングします。これらのスクリプトを実行するには、ソース環境とターゲット環境のアイデンティティ・ドメイン管理者の役割とサービス管理者の役割が必要です。

Windows

この項のスクリプトをコピーすることにより、replicateusers.batおよびreplicateusers.ps1を作成します。

  1. このスクリプトをコピーすることにより、replicateusers.ps1を作成します:

    # Replicate users script
    $inputproperties = ConvertFrom-StringData(Get-Content ./input.properties -raw)
    $epmusersource="$($inputproperties.epmusersource)"
    $epmpwdsource="$($inputproperties.epmpwdsource)"
    $epmurlsource="$($inputproperties.epmurlsource)"
    $epmidentitydomainsource="$($inputproperties.epmidentitydomainsource)"
    $epmusertarget="$($inputproperties.epmusertarget)"
    $epmpwdtarget="$($inputproperties.epmpwdtarget)"
    $epmurltarget="$($inputproperties.epmurltarget)"
    $epmidentitydomaintarget="$($inputproperties.epmidentitydomaintarget)"
    $proxyserverusername="$($inputproperties.proxyserverusername)"
    $proxyserverpassword="$($inputproperties.proxyserverpassword)"
    $proxyserverdomain="$($inputproperties.proxyserverdomain)"
    $userpassword="$($inputproperties.userpassword)"
    $resetpassword="$($inputproperties.resetpassword)"
    $emailtoaddress="$($inputproperties.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. このスクリプトをコピーして、input.propertiesファイルを作成します:
    epmusersource=EPM USER FOR SOURCE ENVIRONMENT
    epmpwdsource=EPM PASSWORD FILE 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 FILE 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 FILE
    proxyserverdomain=PROXY SERVER DOMAIN
    userpassword=DEFAULT PASSWORD FOR REPLICATED USERS
    resetpassword=false
    emailtoaddress=EMAIL_TO_ADDRESS
  3. input.propertiesを更新します。指定する必要がある値は、次の表を参照してください。
    パラメータ 説明
    epmusersource ソース環境のアイデンティティ・ドメイン管理者とサービス管理者の役割を持つユーザーのユーザー名。

    例:

    Windows: set epmusersource="jDoe"

    Linux/UNIX: epmusersource="jDoe"

    epmpwdsource ユーザーのパスワードまたは暗号化されたパスワード・ファイルの絶対パス。

    例:

    Windows: set epmpwdsource="Example"

    Linux/UNIX: epmpwdsource="Example"

    epmurlsource ユーザーのコピー元の環境のURL。

    例:

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

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

    epmidentitydomainsource ソース環境で使用されるアイデンティティ・ドメインの名前。

    例:

    Windows: set epmidentitydomainsource="example_source_dom"

    Linux/UNIX: epmidentitydomainsource="example_source_dom"

    epmusertarget ターゲット環境のアイデンティティ・ドメイン管理者とサービス管理者の役割を持つユーザーのユーザー名。

    例:

    Windows: set epmusertarget="John.Doe"

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

    epmpwdtarget ユーザーのパスワードまたは暗号化されたパスワード・ファイルの絶対パス。

    例:

    Windows: set epmpwdtarget="Example1"

    Linux/UNIX: epmpwdtarget="Example1"

    epmurltarget ユーザーを作成する環境のURL。

    例:

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

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

    epmidentitydomaintarget ターゲット環境で使用されるアイデンティティ・ドメインの名前。

    例:

    Windows: set epmidentitydomaintarget="example_source_dom"

    Linux/UNIX: epmidentitydomaintarget="example_target_dom"

    proxyserverusername インターネットへのアクセスを制御するプロキシ・サーバーとの安全なセッションを認証するユーザー名。使用しない場合は、このプロパティをすべて削除してください。

    例:

    Windows: set proxyserverusername="Example"

    Linux/UNIX: proxyserverusername="Example"

    proxyserverpassword プロキシ・サーバーに対してユーザーを認証するパスワード。使用しない場合は、このプロパティをすべて削除してください。

    例:

    Windows: set proxyserverpassword="examplePwd"

    Linux/UNIX: proxyserverpassword="examplePwd"

    proxyserverdomain プロキシ・サーバーに定義されているドメインの名前。使用しない場合は、このプロパティをすべて削除してください。

    例:

    Windows: set proxyserverdomain="exampleDom"

    Linux/UNIX: proxyserverdomain="exampleDom"

    emailtoaddress オプションで、役割の割当レポートが送信される電子メール・アドレス。この値が指定されている場合のみ、レポートが電子メールで送信されます。

    例: emailtoaddress=john.doe@example.com

Linux/UNIX

  1. 次のスクリプトをコピーすることで、replicateusers.shを作成します。
    #!/bin/sh
    . ./input.properties
    roleassignmentreport="roleassignmentreport.csv"
    usersreport="users.csv"
    paramrequiredmessage='Syntax: replicateusers.sh
    export JAVA_HOME=${javahome}
    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. このスクリプトをコピーして、input.propertiesファイルを作成します:
    javahome=JAVA HOME
    epmautomatescript=EPM AUTOMATE SCRIPT LOCATION
    epmusersource=EPM USER FOR SOURCE ENVIRONMENT
    epmpwdsource=EPM PASSWORD FILE 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 FILE 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 FILE
    proxyserverdomain=PROXY SERVER DOMAIN
    resetpassword=false
    emailtoaddress=EMAIL_TO_ADDRESS
  3. input.propertiesを更新します。指定する必要がある値の詳細は、表3-*を参照してください。さらに、次のプロパティの値を指定する必要があります:
    • javahome: Javaがインストールされているディレクトリへの絶対パス。
    • epmautomatescript: epmautomatescript.shの場所。例: epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"