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.
Créez replicateusers.ps1 en copiant le script suivant :
# 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 en copiant le script suivant :
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. 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 : Linux/UNIX : |
epmpwdsource |
Mot de passe de l'utilisateur ou chemin absolu du fichier de mots de passe crypté.
Exemples : Windows : Linux/UNIX : |
epmurlsource |
URL de l'environnement à partir duquel les utilisateurs doivent être copiés.
Exemples : Windows : Linux/UNIX : |
epmidentitydomainsource |
Nom du domaine d'identité utilisé par l'environnement source.
Exemples : Windows : Linux/UNIX : |
epmusertarget |
Nom de l'utilisateur doté des rôles Administrateur de domaine d'identité et Administrateur de service dans l'environnement cible.
Exemples : Windows : Linux/UNIX : |
epmpwdtarget |
Mot de passe de l'utilisateur ou chemin absolu du fichier de mots de passe crypté.
Exemples : Windows : Linux/UNIX : |
epmurltarget |
URL de l'environnement dans lequel les utilisateurs doivent être créés.
Exemples : Windows : Linux/UNIX : |
epmidentitydomaintarget |
Nom du domaine d'identité utilisé par l'environnement cible.
Exemples : Windows : Linux/UNIX : |
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 : Linux/UNIX : |
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 : Linux/UNIX : |
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 : Linux/UNIX : |
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 : |
Linux/UNIX
replicateusers.sh en copiant le script suivant.
#!/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 en copiant le script suivant :
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. Reportez-vous au Tableau 3-* 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"