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.
Erstellen Sie replicateusers.ps1, indem Sie das folgende Skript kopieren:
# 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, indem Sie dieses Skript kopieren:
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. 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: Linux/UNIX: |
epmpwdsource |
Kennwort des Benutzers oder der absolute Pfad der verschlüsselten Kennwortdatei.
Beispiele: Windows: Linux/UNIX: |
epmurlsource |
URL der Umgebung, aus der Benutzer kopiert werden sollen.
Beispiele: Windows: Linux/UNIX: |
epmidentitydomainsource |
Name der Identitätsdomain, die von der Quellumgebung verwendet wird.
Beispiele: Windows: Linux/UNIX: |
epmusertarget |
Benutzername eines Benutzers mit der Rolle Identitätsdomainadministrator und Serviceadministrator in der Zielumgebung.
Beispiele: Windows: Linux/UNIX: |
epmpwdtarget |
Kennwort des Benutzers oder der absolute Pfad der verschlüsselten Kennwortdatei.
Beispiele: Windows: Linux/UNIX: |
epmurltarget |
URL der Umgebung, in der Benutzer erstellt werden sollen.
Beispiele: Windows: Linux/UNIX: |
epmidentitydomaintarget |
Name der Identitätsdomain, die von der Zielumgebung verwendet wird.
Beispiele: Windows: Linux/UNIX: |
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: Linux/UNIX: |
proxyserverpassword |
Das Kennwort zur Authentifizierung des Benutzers beim Proxyserver. Löschen Sie alle Vorkommen dieser Eigenschaft, wenn sie nicht verwendet wird.
Beispiele: Windows: Linux/UNIX: |
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: Linux/UNIX: |
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: |
Linux/UNIX
replicateusers.sh, indem Sie das folgende Skript kopieren.
#!/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, indem Sie dieses Skript kopieren:
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. In der Tabelle 3-* 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"