Spécification de la sécurité de MBean précise dans le descripteur de MBean

Pour implémenter la sécurité administrative précise, votre code doit identifier l'instance de ressource représentée par le bean géré (MBean) et affecter à l'utilisateur le rôle requis pour cette instance de la ressource. Cette rubrique explique ce qu'il faut faire pour identifier la ressource et affecter le rôle requis. Cette rubrique explique également comment exécuter la méthode de MBean sous une identité d'utilisateur différente afin que la méthode puisse accéder à d'autres instances de ressource. Enfin, cette rubrique explique comment contrôler si une méthode de MBean a accès à une instance de ressource à l'aide d'interfaces de programmes.

Avant de commencer

Cette tâche suppose une connaissance de base de la programmation MBean. Pour plus d'informations sur la programmation MBean, voir la documentation sur l'API (Application Programming Interface) Java™ MBean. Dans le centre de documentation, cliquez sur Référence > Interface Mbean.

Pourquoi et quand exécuter cette tâche

Effectuez les tâches suivantes pour vous assurer qu'un MBean ou qu'un méthode de MBean est protégé. Identifiez l'instance de ressource représentée par le MBean ou la méthode de MBean et affectez des rôles requis pour accéder au MBean. Effectuez cette tâche lors du développement du MBean.

Procédure

  1. Déterminez l'instance de ressource représentée par le MBean et les rôles requis pour appeler les méthodes de MBean.

    Chaque méthode de MBean possède des règles de sécurité de MBean par défaut. Lorsque la méthode de MBean utilise les règles de sécurité par défaut, l'instance de ressource représentée par le MBean est censée être le serveur dans lequel le MBean est exécuté. Si un MBean ou une méthode de MBean représente une instance de ressource différente du serveur sur lequel il est exécuté, procédez comme suit :

    1. Identifiez l'instance de ressource représentée par le MBean.
      • Si un MBean, tel que le MBean de serveur, accède au serveur dans lequel le MBean est exécuté et le modifie, ne spécifiez pas de règle de sécurité vérifiant que l'utilisateur qui appelle le MBean a reçu les droits d'accès au serveur, car les règles de sécurité en vigueur sont celles par défaut. Dans la plupart des cas, vous utilisez un MBean pour accéder au serveur et le modifier.
      • Si un MBean exécuté dans un serveur peut accéder et modifier des ressources qui n'appartiennent pas directement au serveur, vérifiez si l'utilisateur appelant le MBean possède les droits d'accès à l'instance de la ressource avant d'autoriser l'exécution de la méthode de MBean.

        Dans la plupart des cas, identifiez l'instance de ressource en identifiant la paire clé-valeur dans le nom d'objet du MBean qui représente l'instance de ressource. L'attribut resourceIndentifierKey définit la clé.

        Par exemple, vous pouvez utiliser le MBean EJBModule pour accéder à un module Enterprise JavaBeans (EJB) au sein d'une application exécutée dans le serveur. Dans ce cas, le nom d'objet du MBean EJBModule contient une paire clé-valeur. La clé est Application. La valeur représente l'instance de ressource auquel tente d'accéder le MBean EJBModule. L'utilisateur appelant cette méthode de MBean est vérifié afin de s'assurer que les droits d'accès à cette instance de l'application ont été octroyés avant d'autoriser l'exécution de la méthode de MBean.

        L'exemple suivant illustre la description de la sécurité administrative précise pour le type EJBModule de MBean dans le descripteur de MBean :
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
        <MBean type="EJBModule" j2eeType="EJBModule"
          version="5.0"
          platform="dynamicproxy"
          resourceIdentifierKey="Application"
          resourceType="Application"
          deployerMBean="true"
          description="Management interface for the EJBModule component.">
      • Si vous pouvez déterminer la ressource à laquelle accède le MBean avant l'appel du MBean mais que vous ne pouvez pas utiliser le nom d'objet de MBean pour déterminer l'instance de ressource à laquelle accède le MBean, utilisez plutôt les paramètres transmis au MBean.

        Identifiez le nom de paramètre de méthode de MBean avec une valeur de paramètre représentant l'instance de ressource. Marquez les métadonnées de paramètre correspondant dans le descripteur de MBean comme identifiant de ressource. Pour marquer un paramètre comme l'identifiant de ressource, ajoutez l'attribut resourceType. L'attribut spécifie la ressource de type que la valeur de paramètre contient. Lorsque l'attribut resourceType est présent pour les paramètres de méthode de MBean, la valeur de paramètre détermine l'instance de ressource que la méthode de MBean représente.

        Par exemple, une instance du MBean ApplicationManager est exécutée sur chaque serveur. Le même MBean peut être utilisé pour démarrer et arrêter toutes les applications dans le serveur. Les méthodes de démarrage et d'arrêt de ce MBean prennent chacune le nom d'application comme paramètre. Elles utilisent le paramètre pour déterminer l'instance de l'application à laquelle cette méthode de MBean tente d'accéder.

        L'exemple suivant illustre la description de la sécurité administrative précise pour ce type de MBean dans le descripteur de MBean :
        <operation
            description="Start Application"
            impact="ACTION" name="startApplication" role="operation"
            targetObjectType="objectReference" type="void" proxyInvokeType="spray">
            <signature>
             <parameter description="Application Name" resourceType="Application"
                name="applicationName" type="java.lang.String"/>
            </signature>
        </operation>
      • Si la ressource à laquelle un MBean accède ne peut pas être déterminée tant que le MBean n'est pas appelé, vérifiez si l'utilisateur appelant le MBean possède les droits d'accès à l'instance de la ressource à l'aide des interfaces de programme d'application (API).

        Marquez le MBean ou la méthode de MBean comme exclus du contrôle d'accès dans le descripteur de MBean à l'aide de l'attribut excludeAccessCheck. Lorsqu'un MBean est marqué comme exclu du contrôle d'accès, toutes ses méthodes sont également exclues du contrôle d'accès.

        Par exemple, le MBean ConfigService exécutant le gestionnaire de déploiement est utilisé pour configurer toutes les ressources au sein d'une cellule. Excluez ce MBean du contrôle d'accès avant d'appeler les méthodes de MBean. Contrôlez que le MBean ConfigService possède les droits d'accès à la ressource de configuration lorsque le MBean tente d'accéder à la ressource.

        L'exemple suivant illustre la description de la sécurité administrative précise pour le type ConfigServices de MBean dans le descripteur de MBean :
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
        <MBean
          version="5.0"
          platform="proxy"
            collaboratorClass="com.ibm.ws390.management.proxy.ConfigServiceManager"
          description="Config Service component provides service of 
        configuration related tasks on top of configuration repository service."
          type="ConfigService"
          excludeAccessCheck="true"
          configureMBean="true">
        Certaines instructions sont présentées sur plusieurs lignes à des fins d'affichage.
        L'exemple suivant illustre l'appel la logique de méthode de MBean pour effectuer le contrôle des autorisations à l'aide d'un programme :
        // Get administration authorizer.
        AdminAuthorizer aa = AdminAuthorizerFactory.getAdminAuthorizer();
        // Set the role that is required for this operation.
        String role = com.ibm.ws.security.util.Constants.CONFIG_ROLE;
        // Set the resource name.
        // cells/cellName is optional.
        String resource = "/nodes/"+ nodeName + /servers/" + serverName;
        // Check access 
        if ( aa != null && !aa.checkAccess(resource, role) )
           // Disallow access. 
           else
              // Allow access.
    2. Affectez les rôles requis pour le MBean et les méthodes de MBean.

      Les rôles requis sont automatiquement affectés selon le type de MBean et l'impact de la méthode de MBean, comme décrit dans la rubrique relative aux règles de sécurité de MBean par défaut.

  2. Spécifiez le mode de délégation.

    Dans certains cas, après le contrôle d'accès initial, il peut être nécessaire d'exécuter la méthode de MBean sous une identité d'utilisateur différente afin de pouvoir accéder à d'autres instances de ressource. Par exemple l'opération syncNode dans le MBean CellSync attribue à l'utilisateur le rôle d'opérateur sur l'instance du noeud synchronisé. L'opération syncNode tente d'accéder aux ressources à portée de la cellule. Il se peut que l'utilisateur ne possède pas le droit nécessaire pour ouvrir les fichiers sous le répertoire de cellule. Le MBean doit être exécuté comme System après le contrôle d'accès initial de façon à ce que l'opération s'achève sans problèmes de refus d'accès.

    Paramétrez l'attribut runAs à System pour spécifier le mode de délégation pour un MBean ou une méthode de MBean. Lorsque vous configurez l'attribut runAs pour un MBean, la valeur s'applique à toutes les méthodes de MBean de ce MBean.

    L'exemple suivant illustre la description de la sécurité administrative précise pour le type CellSync de MBean dans le descripteur de MBean.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE MBean SYSTEM "MbeanDescriptor.dtd">
    <MBean type="CellSync"
      version="5.0.1"
      platform="common"
      runAs="System"
      description="Management interface for the configuration synchronization logic
    performed at the central deployment manager for the cell.">
    <operation
        description="Initiate a synchronization request for a given node" impact="ACTION"
        name="syncNode" role="operation" targetObjectType="objectReference" type="ja
    va.lang.Boolean">
    <signature>
    <parameter resourceType="Node"
     description="The name of the node"
     name="nodeName" type="java.lang.String"/>
    </signature>
    </operation>

Résultats

Vous avez déterminé le type de ressource à laquelle une méthode de MBean donnée accède et effectué le contrôle d'accès nécessaire pour que le produit puisse accéder à la ressource.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjmx_admin_finegr_mbsec
Nom du fichier : tjmx_admin_finegr_mbsec.html