[JAVA] Eine Beschreibung des JDBC-Beispiels, die bei der Entwicklung eines benutzerdefinierten Authentifizierungsanbieters mit dem Cognos SDK hilfreich ist

Überblick

Ich kenne Cognos überhaupt nicht, aber es ist besser, plötzlich einen benutzerdefinierten Authentifizierungsanbieter für Cognos zu entwickeln, nur weil Sie Java schreiben können. Bei einem benutzerdefinierten Authentifizierungsanbieter wird das Cognos SDK in Java codiert, um die Cognos-Authentifizierungs- / Autorisierungsfunktion selbst zu erstellen. Normalerweise verwendet Cognos die Benutzerinformationen für die Authentifizierung / Autorisierung, die in LDAP vorhanden sind. Wenn Sie jedoch Benutzerinformationen aus irgendeinem Grund in einer Datenbanktabelle speichern möchten, z. B. ohne LDAP, und die Authentifizierung / Autorisierung durchführen möchten. Der benutzerdefinierte Authentifizierungsanbieter (CJAP) wird in angezeigt.

Bei der Entwicklung mit diesem Muster ist es fast unmöglich, den gesamten Code von Grund auf neu zu schreiben, und es ist üblich, basierend auf dem CJAP-Beispiel des Cognos SDK namens JDBCSample zu entwickeln.

Nun, die Entwicklung beginnt mit dem Lesen des JDBC-Beispiels, aber ich denke, dass es für Leute, die Cognos nicht kennen, sehr schwierig ist, deshalb möchte ich einen Lesepunkt veröffentlichen.

Konfiguration des benutzerdefinierten Authentifizierungsanbieters (JDBCSample)

Zuerst müssen Sie ein Modul namens Cognos SDK installieren. Nach der Installation wird JDBCSample jedoch im folgenden Verzeichnis abgelegt. C:\Program Files\ibm\cognos\c10_64\sdk\java\AuthenticationProvider\JDBCSample

Darin befindet sich eine DDL für die Tabellenerstellung für DB2 mit dem Namen dbInit_db2.sql. Wenn Sie diese ausführen, können Sie eine Beispieltabelle erstellen, die Benutzergruppeninformationen enthält. 014.PNG

Wenn Sie mit build.bat im selben Ordner erstellen, wird CAM_AAA_JDBCSample.jar erstellt. Legen Sie es also im folgenden Ordner ab. C:\Program Files\ibm\cognos\c10_64\webapps\p2pd\WEB-INF\lib

009.PNG

Wenn Sie dann einen benutzerdefinierten Java-Provider-Namespace mit Cognos Configuration-Authentifizierung erstellen und RestorableJDBCSample als Java-Klassennamen angeben, wird diese Klasse während der Authentifizierung als Hauptklasse aufgerufen. 008.PNG

Nun, endlich das Hauptthema, aber da es wichtig ist, diese RestorableJDBCSample-Klasse zu lesen, werde ich es unten beschreiben.

RestorableJDBCSample-Klasse

Die Quelle der RestorableJDBCSample-Klasse befindet sich unten. Öffnen Sie sie also. C:\Program Files\ibm\cognos\c10_64\sdk\java\AuthenticationProvider\JDBCSample\RestorableJDBCSample.java

** Init-Methode ** Der einfachste Teil ist die Init-Methode aus Zeile 222. 013.PNG

Dies ist eine Methode, die beim Starten des Cognos-Prozesses aus Diensten gelesen wird. 002.PNG

** Abmeldemethode ** Das Folgende ist auch eine einfache Abmeldemethode von Zeile 113. 011.PNG

Wenn Sie sich bei Cognos anmelden, wird dieser Portalbildschirm (Cognos Connection) angezeigt. Dies ist die Methode, die aufgerufen wird, wenn Sie sich buchstäblich von Cognos abmelden, indem Sie im roten Rahmen auf das Wort "Abmelden" klicken. 003.PNG

** Anmeldemethode ** Jetzt ist die Anmeldemethode ab der nächsten 54. Zeile der Schlüssel. Natürlich ist es eine Methode, die beim Anmelden bei Cognos aufgerufen wird. Wenn Sie sich jedoch die Quelle ansehen, wie lautet der rote Kreis: TgetTrustedCredentialValues, ②getCredentialValues, ③getFormFieldValues, ④getTrustedEnvironmentVaribleValue? 015.PNG

① Was ist getTrustedCredentialValues? Cognos verfügt über eine Planungsfunktion, mit der Sie Berichte regelmäßig ausführen und als PDF speichern können. Neben jedem dieser Berichtseinträge können Sie den Zeitplan mit dem Symbol im roten Rahmen festlegen. 006.PNG

Wenn Sie auf das Symbol klicken, wird der folgende Bildschirm angezeigt, und Sie können festlegen, wann und in welchem Format der Bericht ausgeführt wird. 007.PNG

Mit dieser Einstellung wird der Bericht zur festgelegten Zeit ausgeführt, aber die Benutzer-ID zum Ausführen des Berichts ist die ID des Benutzers, der den Zeitplan festgelegt hat, und der Zeitpunkt der Berichtsausführung zu dieser festgelegten Zeit. Tatsächlich handelt es sich also um ein Image, das die Authentifizierung mit dieser Benutzer-ID ausführt. Benutzerinformationen bleiben erhalten, wenn der Zeitplan festgelegt wird, aber es sind diese getTrustedCredentialValues, die sie aufrufen und empfangen.

② Was ist getCredentialValues? Dies wird aufgerufen, wenn Sie ein Programm erstellen, um Cognos mit dem Cognos SDK zu betreiben, das Programm von außen auszuführen und sich beim Zugriff auf Cognos zu authentifizieren. Ignorieren Sie, wenn Sie sagen, dass Sie kein Programm für externe Aufrufe des Cognos SDK erstellt haben.

③ Was ist getFormFieldValues? Es ist eine Funktion, um die Benutzer-ID und das Kennwort zu erhalten, die beim Zugriff auf Cognos von einer externen Webseite oder dem Cognos Mashup-Dienst eingegeben wurden.

④getTrustedEnvironmentVaribleValue Wenn Sie SSO (Single Sign On) mit Cognos ausführen, wird SSO im Wesentlichen basierend auf den Benutzer-ID-Informationen ausgeführt, die in die Umgebungsvariable des HTTP-Headers eingebettet sind. Diese empfängt jedoch die Umgebungsvariable des HTTP-Headers durch benutzerdefinierte Authentifizierung und SSO Ist dafür zu tun.

Wenn Sie dies berücksichtigen, wird das Lesen der Anmeldemethode erheblich vereinfacht.

** Suchmethode ** Schließlich gibt es die Suchmethode, die in Zeile 134 beginnt. 012.PNG

In Cognos werden Benutzer beim Ausführen von Autorisierungsaktionen wie dem Erteilen von Berechtigungen einer bestimmten Gruppe zugewiesen oder Benutzer in der Authentifizierungsquelle werden durchsucht. Ich versuche, ein Mitglied in einer Gruppe namens "Creator" auf dem Verwaltungsbildschirm "Cognos Administration" wie folgt zu registrieren. Drücken Sie Add Red Frame. 004.PNG

Anschließend können Sie wie folgt auf die Benutzerinformationen in der Authentifizierungsquelle (Wiederherstellbar) verweisen. Oben rechts gibt es Funktionen namens "Eingabe" und "Suche", die nach Benutzern suchen, indem sie detailliertere Bedingungen angeben. Es ist jedoch auch die Rolle der Suchmethode, diese Funktionen zu implementieren. 005.PNG

Grob gesagt, das war's.

Die Entwicklung kann nicht gestartet werden, ohne die tatsächlichen Bildschirmfunktionen von Cognos und die im Quellcode beschriebene Zuordnung zu verstehen. Wir hoffen, dass dies als erster Schritt bei der benutzerdefinierten Entwicklung hilfreich sein wird.

Recommended Posts

Eine Beschreibung des JDBC-Beispiels, die bei der Entwicklung eines benutzerdefinierten Authentifizierungsanbieters mit dem Cognos SDK hilfreich ist
Korrektur, um eine Erhöhung der DB-Verbindungsnummer mit dem benutzerdefinierten Authentifizierungsanbieter des Cognos SDK-Beispiels zu verhindern
Der Suchtpunkt bei der Durchführung der Basisauthentifizierung mit Java URLConnection
Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte
Über die Angelegenheit, die tendenziell mit ARG von Dockerfile verwechselt wird, einem mehrstufigen Build