Les étapes de bout en bout, les commandes et les exemples de fragments de code nécessaires pour permettre aux utilisateurs qui ne sont pas administrateurs WebSphere Application Server d'accéder aux interfaces de programmation d'application (API) de virtual member manager dans un environnement à plusieurs domaines de sécurité sont fournis ici.
Les droits de gestion des référentiels fédérés permettent aux utilisateurs autres que les administrateurs WebSphere Application Server de gérer les utilisateurs et les groupes et d'accéder à d'autres API virtual member manager dans les domaines d'administration et d'application. Pour plus d'informations sur les rôles prédéfinis et leurs droits, reportez-vous à la rubrique Assurance d'une sécurité, dans la documentation de virtual member manager. Vous pouvez utiliser les commandes wsadmin suivantes pour implémenter cette fonction : mapIdMgrUserToRole, mapIdMgrGroupToRole, removeIdMgrUsersFromRole, removeIdMgrGroupsFromRole et listIdMgrUsersForRoles. Pour plus d'informations, reportez-vous à l'utilisation de ces commandes dans la rubrique Groupe de commandes IdMgrConfig pour l'objet AdminTask du centre de documentation de WebSphere Application Server.
Les étapes suivantes sont abordées dans cet exemple de scénario :
Assurez-vous d'avoir bien lu les informations et effectué les étapes décrites dans la rubrique Prérequis pour la programmation.
Vous devez effectuer les étapes de configuration ci-après avant d'utiliser l'exemple de code. Démarrez l'outil wsadmin et exécutez les commandes ci-après. Remplacez les variables par les valeurs actuelles à utiliser.
$AdminApp.install('racine_serveur_app/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 domain1 }
$AdminTask mapIdMgrUserToRole {-userId vmmadmin -roleName IdMgrAdmin -securityDomainName domain1}
Ajoutez l'exemple de code de bout en bout ci-après à votre code d'application, comme indiqué dans les étapes ci-après. Remplacez les variables par les valeurs actuelles à utiliser.
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
{
//Notez que l'instance de service utilisée est celle du domaine de sécurité obtenu à l'étape 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"));
// Impression du graphique de données d'entrée
System.out.println("Input datagraph before creating user" + printDO(root));
DataObject retObject = service.create(root);
// Impression du graphique de données de sortie
System.out.println("Output datagraph after creating user" + printDO(retObject));
return retObject;
}
});
}
public static void main(String[] args)
{
// Notez que le JNDI EJB correspond à celui utilisé à l'étape 1.
service = locateService("ejbd2/com/ibm/websphere/wim/ejb/WIMServiceHome");
createAsAdmin();
}
}