Je ne connais pas du tout Cognos, mais il vaut mieux finir soudainement par développer un fournisseur d'authentification personnalisé pour Cognos simplement parce que vous pouvez écrire Java. Un fournisseur d'authentification personnalisé est une histoire de codage en Java du SDK Cognos pour créer la fonction d'authentification / autorisation Cognos elle-même. Normalement, Cognos utilise les informations utilisateur pour l'authentification / l'autorisation qui existent dans LDAP, mais lorsque vous souhaitez conserver les informations utilisateur dans une table de base de données pour une raison quelconque, telle que l'absence de LDAP, et effectuer une authentification / autorisation. Le fournisseur d'authentification personnalisé (CJAP) apparaîtra dans.
Lors du développement avec ce modèle, il est presque impossible d'écrire tout le code à partir de zéro et il est habituel de le développer à partir de l'exemple CJAP du SDK Cognos appelé JDBCSample.
Eh bien, le développement commence par la lecture de l'exemple JDBC, mais je pense que c'est très difficile pour les personnes qui ne connaissent pas Cognos, alors j'aimerais poster un point de lecture.
Tout d'abord, vous devez installer un module appelé Cognos SDK, mais une fois installé, JDBCSample sera placé dans le répertoire suivant. C:\Program Files\ibm\cognos\c10_64\sdk\java\AuthenticationProvider\JDBCSample
Il existe un DDL de création de table pour DB2 appelé dbInit_db2.sql. Si vous l'exécutez, vous pouvez créer un exemple de table contenant des informations sur le groupe d'utilisateurs.
Si vous construisez avec build.bat sur le même dossier, CAM_AAA_JDBCSample.jar sera créé, alors placez-le dans le dossier suivant. C:\Program Files\ibm\cognos\c10_64\webapps\p2pd\WEB-INF\lib
Ensuite, si vous créez un espace de noms de fournisseur Java personnalisé avec l'authentification Cognos Configuration et que vous spécifiez RestorableJDBCSample comme nom de classe Java, cette classe sera appelée comme classe principale lors de l'authentification.
Bon, enfin le sujet principal, mais comme il est important de lire cette classe RestorableJDBCSample, je la décrirai ci-dessous.
La source de la classe RestorableJDBCSample est ci-dessous, alors ouvrons-la. C:\Program Files\ibm\cognos\c10_64\sdk\java\AuthenticationProvider\JDBCSample\RestorableJDBCSample.java
** méthode init ** La partie la plus simple est la méthode init de la ligne 222.
Il s'agit d'une méthode lue à partir des services lorsque le processus Cognos est démarré.
** méthode de déconnexion ** Ce qui suit est également une méthode de déconnexion simple à partir de la ligne 113.
Lorsque vous vous connectez à Cognos, cet écran de portail (Cognos Connection) s'affiche. Il s'agit de la méthode qui est appelée lorsque vous vous déconnectez littéralement de Cognos en cliquant sur le mot «déconnecter» dans le cadre rouge.
** méthode de connexion ** Maintenant, la méthode de connexion à partir de la 54e ligne suivante est la clé. Bien sûr, il s'agit d'une méthode appelée lors de la connexion à Cognos, mais lorsque vous regardez la source, quel est le cercle rouge, ①getTrustedCredentialValues, ②getCredentialValues, ③getFormFieldValues, ④getTrustedEnvironmentVaribleValue?
① Qu'est-ce que getTrustedCredentialValues? Cognos dispose d'une fonction de planification qui vous permet d'exécuter régulièrement des rapports et de les enregistrer au format PDF. À côté de chacune de ces entrées de rapport, vous pouvez définir la planification avec l'icône de cadre rouge.
Lorsque vous cliquez sur l'icône, l'écran suivant apparaît et vous pouvez définir quand et dans quel format le rapport sera exécuté.
Avec ce paramètre, le rapport sera exécuté à l'heure définie, mais l'ID utilisateur pour l'exécution du rapport est l'ID de l'utilisateur qui a défini la planification et le moment de l'exécution du rapport à cette heure définie. Donc, en fait, c'est une image que l'authentification s'exécute avec cet ID utilisateur. Les informations utilisateur sont conservées lorsque la planification est définie, mais c'est ce getTrustedCredentialValues qui les appelle et les reçoit.
② Qu'est-ce que getCredentialValues? Ceci est appelé lorsque vous créez un programme pour faire fonctionner Cognos avec le SDK Cognos, exécuter le programme de l'extérieur et vous authentifier lors de l'accès à Cognos. Ignorez si vous dites que vous n'avez pas créé de programme pour les appels externes vers le SDK Cognos.
③ Qu'est-ce que getFormFieldValues? Il s'agit d'une fonction permettant de recevoir l'ID utilisateur et le mot de passe saisis lors de l'accès à Cognos à partir d'une page Web externe ou du service Cognos Mashup.
④getTrustedEnvironmentVaribleValue Lors de l'exécution de SSO (Single Sign On) avec Cognos, l'authentification unique est essentiellement effectuée en fonction des informations d'ID utilisateur intégrées dans la variable d'environnement de l'en-tête HTTP, mais elle reçoit la variable d'environnement de l'en-tête HTTP par authentification personnalisée et SSO. C'est pour faire.
Garder cela à l'esprit rend la lecture de la méthode de connexion beaucoup plus facile.
** méthode de recherche ** Enfin, il y a la méthode de recherche commençant à la ligne 134.
Dans Cognos, lors de l'exécution d'actes d'autorisation tels que l'octroi d'autorisations, les utilisateurs sont affectés à un certain groupe ou les utilisateurs de la source d'authentification sont recherchés. J'essaye d'enregistrer un membre dans un groupe appelé "Creator" sur l'écran de gestion appelé Cognos Administration comme ceci. Appuyez sur Ajouter un cadre rouge.
Ensuite, vous pouvez vous référer aux informations utilisateur dans la source d'authentification (restaurable) comme ceci. En haut à droite, il y a des fonctions appelées «entrée» et «recherche» qui recherchent des utilisateurs en spécifiant des conditions plus détaillées, mais c'est aussi le rôle de la méthode de recherche de mettre en œuvre ces fonctions.
En gros, c'est tout.
Le développement ne peut pas être démarré sans comprendre les fonctions réelles à l'écran de Cognos et le mappage décrit dans le code source, nous espérons donc qu'il sera utile comme première étape du développement personnalisé.
Recommended Posts