Implémentation du contrôle d'accès dans les exits de sécurité

Vous pouvez implémenter le contrôle d'accès dans un exit de sécurité à l'aide de MCAUserIdentifier ou du gestionnaire des droits d'accès aux objets.

MCAUserIdentifier

Chaque instance d'un canal en cours est associée à une structure de définition de canal, MQCD. Les valeurs initiales des zones de MQCD sont déterminées par la définition de canal créée par un administrateur IBM® MQ . En particulier, la valeur initiale de l'un des champs, MCAUserIdentifier, est déterminée par la valeur du paramètre MCAUSER de la commande DEFINE CHANNEL, ou par l'équivalent de MCAUSER si la définition du canal est créée d'une autre manière.

La structure MQCD est transmise à un programme d'exit de canal lorsqu'elle est appelée par un agent MCA. Lorsqu'un exit de sécurité est appelé par un MCA, il peut modifier la valeur de MCAUserIdentifier, en remplaçant toute valeur spécifiée dans la définition du canal.

[UNIX, Linux, Windows, IBM i]Sur les plates-formes multiples, à moins que la valeur de MCAUserIdentifier est vide, le gestionnaire de files d'attente utilise la valeur de MCAUserIdentifier comme ID utilisateur pour les contrôles d'autorité lorsqu'un MCA tente d'accéder aux ressources du gestionnaire de files d'attente après s'être connecté à ce dernier. Si la valeur de MCAUserIdentifier est vide, le gestionnaire de files d'attente utilise à la place l'ID utilisateur par défaut de l'agent MCA. Cela s'applique aux canaux RCVR, RQSTR, CLUSRCVR et SVRCONN. Pour l'envoi d'agents MCA, l'ID utilisateur par défaut est toujours utilisé pour les vérifications des droits d'accès, même si la valeur de MCAUserIdentifier n'est pas vide.

[z/OS]Sur z/OS®, le gestionnaire de file d'attente peut utiliser la valeur de MCAUserIdentifier pour les contrôles d'autorité, à condition qu'elle ne soit pas vide. Pour la réception des MCA et des MCA de connexion au serveur, si le gestionnaire de files d'attente utilise la valeur deMCAUserIdentifier pour les contrôles d'autorité dépend de :
  • La valeur du paramètre PUTAUT dans la définition du canal
  • LeRACF® profil utilisé pour les contrôles
  • Niveau d'accès de l'ID utilisateur de l'espace d'adressage de l'initiateur du canal au profil RESLEVEL.
Pour l’envoi de MCA, cela dépend :
  • Si le MCA expéditeur est un appelant ou un répondeur
  • Niveau d'accès de l'ID utilisateur de l'espace d'adressage de l'initiateur du canal au profil RESLEVEL.
L'ID utilisateur stocké par un exit de sécurité dans MCAUserIdentifier peut être acquis de différentes manières. Voici quelques exemples :
  • A condition qu'il n'y ait pas d'exit de sécurité à l'extrémité client d'un canal MQI, un ID utilisateur associé à l'application client IBM MQ est transmis de l'agent MCA de connexion client à l'agent MCA de connexion serveur lorsque l'application client émet un appel MQCONN. L'AMC de connexion au serveur stocke cet identifiant dans le champ RemoteUserIdentifier de la structure de définition du canal, MQCD. Si la valeur de MCAUserIdentifier est vide à ce stade, l'agent MCA stocke le même ID utilisateur dans MCAUserIdentifier. Si l'autorité de certification ne stocke pas l'identifiant de l'utilisateur dans MCAUserIdentifier, un exit de sécurité peut le faire ultérieurement en attribuant à MCAUserIdentifier la valeur de RemoteUserIdentifier.

    Si l'ID utilisateur qui provient du système client entre dans un nouveau domaine de sécurité et n'est pas valide sur le système serveur, l'exit de sécurité peut remplacer l'ID utilisateur par un ID utilisateur valide et stocker l'ID utilisateur remplacé dans MCAUserIdentifier.

  • L'ID utilisateur peut être envoyé par l'exit de sécurité partenaire dans un message de sécurité.

    Sur un canal de transmission de messages, un exit de sécurité appelé par l'agent MCA émetteur peut envoyer l'ID utilisateur sous lequel l'agent MCA émetteur s'exécute. Un exit de sécurité appelé par l'agent MCA récepteur peut ensuite stocker l'ID utilisateur dans MCAUserIdentifier. De même, sur un canal MQI, un exit de sécurité à l'extrémité client du canal peut envoyer l'ID utilisateur associé à l'application IBM MQ MQI client . Un exit de sécurité à l'extrémité serveur du canal peut ensuite stocker l'ID utilisateur dans MCAUserIdentifier. Comme dans l'exemple précédent, si l'ID utilisateur n'est pas valide sur le système cible, l'exit de sécurité peut remplacer l'ID utilisateur par un ID utilisateur valide et stocker l'ID utilisateur remplacé dans MCAUserIdentifier.

    Si un certificat numérique est reçu dans le cadre du service d'identification et d'authentification, un exit de sécurité peut mapper le nom distinctif du certificat à un ID utilisateur valide sur le système cible. Il peut ensuite stocker l'ID utilisateur dans MCAUserIdentifier.

  • Si TLS est utilisé sur le canal, le nom distinctif (DN) du partenaire est transmis à la sortie dans le champ SSLPeerNamePtr du MQCD, et le DN de l'émetteur de ce certificat est transmis à la sortie dans le champ SSLRemCertIssNamePtr du MQCXP.

Pour plus d'informations sur la zone MCAUserIdentifier , la structure de définition de canal, MQCD et la structure de paramètre d'exit de canal, MQCXP, voir Appels d'exit de canal et structures de données. Pour plus d'informations sur l'ID utilisateur qui circule depuis un système client sur un canal MQI, voir Contrôle d'accès.

Remarque: les applications d'exit de sécurité construites avant l'édition de IBM WebSphere® MQ 7.1 peuvent nécessiter une mise à jour. Pour plus d'informations, voir Programmes d'exit de sécurité de canal.

Authentification d'utilisateur du gestionnaire des droits d'accès aux objets IBM MQ

Sur les connexions IBM MQ MQI client , les exits de sécurité peuvent être utilisés pour modifier ou créer la structure MQCSP utilisée dans l'authentification d'utilisateur OAM (Object authority manager). Cette procédure est décrite dans Programmes d'exit de canal pour les canaux de messagerie