Use os scripts desta seção para clonar usuários de um domínio de identidades para outro domínio de identidades. É necessário que o usuário que está executando esses scripts tenha as funções de Administrador de Domínio de Identidades e Administrador de Serviço nos ambientes de origem e de destino.
Windows
Crie replicateusers.bat e replicateusers.ps1 copiando os scripts descritos nesta seção.
Crie replicateusers.ps1 copiando este script:
# 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"
input.properties copiando este script:
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
input.properties. Na tabela a seguir, veja os valores que você deverá especificar.
| Parâmetro | Descrição |
|---|---|
epmusersource |
Nome de usuário com as funções Administrador de Domínio de Identidades e Administrador de Serviço no ambiente de origem.
Exemplos: Windows: Linux/UNIX: |
epmpwdsource |
Senha do usuário ou o caminho absoluto do arquivo de senhas criptografadas.
Exemplos: Windows: Linux/UNIX: |
epmurlsource |
URL do ambiente de onde os usuários serão copiados.
Exemplos: Windows: Linux/UNIX: |
epmidentitydomainsource |
O nome do domínio de identidades usado pelo ambiente de origem.
Exemplos: Windows: Linux/UNIX: |
epmusertarget |
Nome de usuário com as funções Administrador de Domínio de Identidades e Administrador de Serviço no ambiente de destino.
Exemplos: Windows: Linux/UNIX: |
epmpwdtarget |
Senha do usuário ou o caminho absoluto do arquivo de senhas criptografadas.
Exemplos: Windows: Linux/UNIX: |
epmurltarget |
URL do ambiente em que os usuários serão criados.
Exemplos: Windows: Linux/UNIX: |
epmidentitydomaintarget |
Nome do domínio de identidades usado pelo ambiente de destino.
Exemplos: Windows: Linux/UNIX: |
proxyserverusername |
O nome do usuário para autenticar uma sessão segura no servidor proxy que controla o acesso à internet. Exclua todas as ocorrências dessa propriedade caso ela não seja usada.
Exemplos: Windows: Linux/UNIX: |
proxyserverpassword |
A senha para autenticar o usuário no servidor proxy. Exclua todas as ocorrências dessa propriedade caso ela não seja usada.
Exemplos: Windows: Linux/UNIX: |
proxyserverdomain |
O nome do domínio definido para o servidor proxy. Exclua todas as ocorrências dessa propriedade caso ela não seja usada.
Exemplos: Windows: Linux/UNIX: |
emailtoaddress |
Opcionalmente, o endereço de e-mail para o qual o relatório de Atribuição de Funções será enviado. O relatório só será enviado por e-mail se esse valor for especificado.
Exemplo: |
Linux/UNIX
replicateusers.sh copiando o script a seguir.
#!/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"
input.properties copiando este script:
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
input.properties. Consulte a Tabela 3-* para obter informações sobre os valores que devem ser especificados. Além disso, você deve especificar os valores para estas propriedades:
javahome: o caminho absoluto para o diretório em que o Java está instalado.epmautomatescript: a localização de epmautomatescript.sh; por exemplo, epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"