Configuration de la base de données de Jazz Authorization Server Oracle
Jazz® Authorization Server est configuré pour utiliser la base de données par défaut Apache Derby, mais il se peut que vous souhaitiez utiliser une base de données d'entreprise telle que Oracle dans votre environnement Jazz Authorization Server. Apache Derby n'est prise en charge qu'à des fins d'évaluation dans un environnement POC, mais pas dans l'environnement de production. Cette limitation s'applique à toutes les Engineering Lifecycle Management applications, y compris Jazz Authorization Server.
Procédure
- Créez un fichier appelé createOauthOracle.sql. Reportez-vous à l'exemple SQL suivant pour créer les tablespaces nécessaires à Jazz Authorization Server.
Sachez que ces valeurs sont des exemples qui doivent être modifiés en fonction de vos usages et de votre environnement.
createOauthOracle.sql crée deux espaces table : OAUTH et OAUTH_TMP, ainsi que les tables dans l'espace table OAUTH. Si vous souhaitez utiliser un espace table existant, vous pouvez modifier l'instruction CREATE TABLE à cette fin. Si vous souhaitez créer de nouveaux espaces table, modifiez les clauses DATAFILE et TEMPFILE afin qu'elles pointent vers le répertoire que souhaitez utiliser.
Jazz Authorization Server s'attend à trouver un utilisateur nommé OAUTHDBSCHEMA, et à trouver des tables dans un schéma nommé OAUTHDBSCHEMA. Vous devez créer l'utilisateur OAUTHDBSCHEMA dans Oracle. Personnalisez l'instruction CREATE USER pour spécifier un mot de passe pour l'utilisateur OAUTHDBSCHEMA. Lorsque vous créez l'utilisateur OAUTHDBSCHEMA, vous devez également l'associer à l'espace table que vous prévoyez d'utiliser pour les tables OAUTH.
CREATE TABLESPACE OAUTH DATAFILE '/home/oracle/tablespaces/OAUTH.dbf' SIZE 1G AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE; CREATE TEMPORARY TABLESPACE OAUTH_TMP TEMPFILE '/home/oracle/tablespaces/OAUTH_TMP.dbf' SIZE 20M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; CREATE USER OAUTHDBSCHEMA IDENTIFIED BY <your password> DEFAULT TABLESPACE OAUTH QUOTA UNLIMITED ON OAUTH TEMPORARY TABLESPACE OAUTH_TMP; GRANT CREATE PROCEDURE, CREATE SESSION, CREATE TABLE, CREATE VIEW TO OAUTHDBSCHEMA; ---- CREATE TABLES ---- CREATE TABLE OAuthDBSchema.OAUTH20CACHE ( LOOKUPKEY VARCHAR(256) NOT NULL, UNIQUEID VARCHAR(128) NOT NULL, COMPONENTID VARCHAR(256) NOT NULL, TYPE VARCHAR(64) NOT NULL, SUBTYPE VARCHAR(64), CREATEDAT NUMBER(19,0), LIFETIME INT, EXPIRES NUMBER(19,0), TOKENSTRING CLOB DEFAULT ‘{}’ NOT NULL, CLIENTID VARCHAR(64) NOT NULL, USERNAME VARCHAR(64) NOT NULL, SCOPE VARCHAR(512) NOT NULL, REDIRECTURI VARCHAR(2048), STATEID VARCHAR(64) NOT NULL, EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ( COMPONENTID VARCHAR(256) NOT NULL, CLIENTID VARCHAR(256) NOT NULL, CLIENTSECRET VARCHAR(256), DISPLAYNAME VARCHAR(256), REDIRECTURI VARCHAR(2048), ENABLED INT, CLIENTMETADATA CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE ( CLIENTID VARCHAR(256) NOT NULL, USERID VARCHAR(256), PROVIDERID VARCHAR(256) NOT NULL, SCOPE VARCHAR(1024) NOT NULL, EXPIRES NUMBER(19,0), EXTENDEDFIELDS CLOB DEFAULT '{}' NOT NULL ) TABLESPACE OAUTH STORAGE(INITIAL 50K); ---- ADD CONSTRAINTS ---- ALTER TABLE OAuthDBSchema.OAUTH20CACHE ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY); ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID); ---- CREATE INDEXES ---- CREATE INDEX OAUTH20CACHE_EXPIRES ON OAuthDBSchema.OAUTH20CACHE (EXPIRES ASC); ---- GRANT PRIVILEGES ---- ---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ---- -- Change dbuser to the account you want to use to access your database GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO OAUTHDBSCHEMA; GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO OAUTHDBSCHEMA; GRANT ALL ON OAuthDBSchema.OAUTH20CONSENTCACHE TO OAUTHDBSCHEMA; ---- END OF GRANT PRIVILIGES ---- - Après avoir personnalisé le script createOauthOracle.sql, ouvrez SQL Plus et connectez-vous sous le nom SYSDBA, puis exécutez le script SQL :
@createOauthOracle.sql - Après avoir créé les tables de la base de données, vous devez configurer Jazz Authorization Server pour qu'il utilise les tables. Allez dans le répertoire d'installation de Jazz Authorization Server et ouvrez le fichier appConfig.xml pour le modifier. Le chemin d'accès par défaut au fichier appConfig.xml sous Windows est C:\IBM\JazzAuthServer\wlp\usr\servers\jazzop et sous Linux est /opt/IBM/JazzAuthServer/wlp/usr/servers/jazzop.
- Mettez en commentaire la section suivante relative à la base de données Apache Derby :
<dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB"> <jdbcDriver libraryRef="DerbyLib" /> <properties.derby.embedded databaseName="asDB" createDatabase="create" /> </dataSource> <library id="DerbyLib"> <fileset dir="${shared.config.dir}/lib/global" includes="derby.jar" /> </library> - Ajoutez la section suivante pour configurer Oracle. Personnalisez-la en fonction de votre serveur Oracle spécifique :
<jdbcDriver id="oracle" libraryRef="ORAJCC4LIB"/> <library id="ORAJCC4LIB" filesetRef="orajcc4" apiTypeVisibility="spec,ibm-api,third-party"/> <fileset dir="${shared.config.dir}/lib/global" id="orajcc4" includes="ojdbc8.jar"/> <dataSource id="OAUTH2ORA" jndiName="jdbc/oauthProvider" jdbcDriverRef="oracle"> <properties.oracle password="*****" databaseName="ORCL" user="OAUTHDBSCHEMA" portNumber="1521" serverName="yourOracle.com"> </dataSource>Vérifiez que les attributs suivants comportent les valeurs correctes :
- Pour password, utilisez le mot de passe que vous avez spécifié lors de la création de l'utilisateur OAUTHDBSCHEMA dans Oracle.
- Pour databaseName, utilisez le SID Oracle pour votre base de données. L'exemple utilise la valeur par défaut attribuée par Oracle - ORCL. Votre valeur peut être différente.
- Pour portNumber, utilisez le numéro de port sur lequel l'instance Oracle est exécutée. Le numéro de port par défaut est 1521.
- Pour serverName, entrez le nom d'hôte du serveur Oracle.
- Dans la section oauthProvider du fichier appConfig.xml, mettez à jour la propriété databaseStore afin qu'elle spécifie la source de données Oracle plutôt que la source de données par défaut Apache Derby. La propriété databaseStore doit spécifier le nom de la source de données Oracle qui, dans cet exemple, est OAUTH2ORA :
<oauthProvider id="JazzOP" httpsRequired="true" autoAuthorize="true" customLoginURL="/jazzop/form/login" accessTokenLifetime="7201" authorizationGrantLifetime="604801"> <autoAuthorizeClient>client01</autoAuthorizeClient> <databaseStore dataSourceRef="OAUTH2ORA" /> </oauthProvider> - Enregistrez et fermez le fichier appConfig.xml.
- Copiez le pilote Oracle ojdbc8.jar JDBC de votre serveur Oracle dans ce répertoire : opt/IBM/JazzAuthServer/wlp/usr/shared/config/lib/global.