Hier finden Sie die umfassenden Schritte, Befehle und Mustercode-Snippets, die benötigt werden, um Benutzern, bei denen es sich nicht um WebSphere Application Server-Administratoren handelt, den Zugriff auf die Virtual Member Manager-APIs in einer Umgebung mit mehreren Sicherheitsdomänen zu ermöglichen.
Verwaltungsberechtigungen für föderierte Repositorys ermöglichen es Benutzern, bei denen es sich nicht um WebSphere Application Server-Administratoren handelt, Benutzer und Gruppen zu verwalten sowie in Verwaltungs- und Anwendungsdomänen auf andere Virtual Member Manager-APIs zuzugreifen. Informationen zu den vordefinierten Rollen und deren Berechtigungen enthält das Thema Sicherheit bereitstellen in der Dokumentation zu Virtual Member Manager. Zur Implementierung dieser Funktion können Sie die folgenden wsadmin-Befehle verwenden: mapIdMgrUserToRole, mapIdMgrGroupToRole, removeIdMgrUsersFromRole, removeIdMgrGroupsFromRole, listIdMgrUsersForRoles. Weitere Informationen zu diesen Befehlen können Sie dem Thema über die Befehlsgruppe "IdMgrConfig" für das Objekt "AdminTask" im Information Center von WebSphere Application Server entnehmen.
Dieses Beispielszenario deckt die folgenden Schritte ab:
Stellen Sie sicher, dass Sie die Informationen gelesen und die Schritte ausgeführt haben, die im Thema Voraussetzungen für die Programmierung beschrieben sind.
Sie müssen die folgenden Konfigurationsschritte ausführen, bevor Sie den Mustercode verwenden. Starten Sie das Tool "wsadmin" und führen Sie die folgenden Befehle aus. Ersetzen Sie hierbei die Variablen durch die tatsächlichen Werte, die Sie verwenden wollen.
$AdminApp.install('stammverzeichnis_des_anwendungsservers/installableApps/wimperdomain.ear',
'[-appname wimperdomain -BindJndiForEJBNonMessageBinding [[ wim.ejb
WIMService wimejb.jar,META-INF/ejb-jar.xml ejbd2/com/ibm/websphere/wim/ejb/WIMServiceHome]]
-MapModulesToServers [[ wim.ejb wimejb.jar,META-INF/ejb-jar.xml
WebSphere:cell=myCell,node=myNode,server=server1 ]]]' )
$AdminTask createUser {-uid vmmadmin –password tempPass -confirmPassword tempPass
–cn admincn –sn adminsn -securityDomainName domäne1 }
$AdminTask mapIdMgrUserToRole {-userId vmmadmin -roleName IdMgrAdmin -securityDomainName domäne1}
Fügen Sie den nachstehenden umfassenden Mustercode wie in den folgenden Schritten beschrieben zu Ihrer Anwendung hinzu. Ersetzen Sie hierbei die Variablen durch die tatsächlichen Werte, die Sie verwenden wollen.
import commonj.sdo.DataObject;
public class SimpleTest extends BaseApp
{
public static void createAsAdmin()
{
try {
createUser("vmmadmin", "tempPass");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void createUser(String user, String password) throws Exception
{
DataObject result = (DataObject) runAsUser(user, password, new java.security.PrivilegedExceptionAction()
{
public Object run() throws Exception
{
//Note the service instance used is that of security domain obtained in step 1.
DataObject root = service.createRootDataObject();
DataObject user = root.createDataObject(DO_ENTITIES, WIM_NS_URI, DO_PERSON_ACCOUNT);
user.set("uid", "authzzuser");
user.set("cn", "authzzuser");
user.set("sn", "authzzuser");
user.set(PROP_PASSWORD, com.ibm.websphere.wim.util.PasswordUtil
.getByteArrayPassword("authzzuser"));
// Print Input datagraph
System.out.println("Input datagraph before creating user" + printDO(root));
DataObject retObject = service.create(root);
// Print the output datagraph
System.out.println("Output datagraph after creating user" + printDO(retObject));
return retObject;
}
});
}
public static void main(String[] args)
{
// Note that the EJB JNDI is same as one used in step 1.
service = locateService("ejbd2/com/ibm/websphere/wim/ejb/WIMServiceHome");
createAsAdmin();
}
}