パーシスタント OAuth サービス用の IBM DB2
IBM® DB2® をパーシスタント OAuth サービスに使用できます。 便宜上、また参考用に、このトピックでは、OAuth パーシスタント・サービス用に DB2 を構成するために必要なステップについて説明します。
パーシスタント OAuth サービス用に DB2 を構成するには、以下のステップを実行します。
注: Componentid は、server.xml ファイル内の oauthProvider エレメントの ID と同じでなければなりません。
- データベースおよび表を作成します。以下の SQL ステートメントを編集および実行して、OAuth データベースおよび表を作成します。
デフォルト DB2 リスニング・ポートは 50000 です。確認するには、以下のコマンドを実行し、SVCENAME パラメーターの値を見つけます。 数値の場合は、それがポート番号です。名前の場合は、/etc/services ファイルまたは Windows でこれに相当するファイル (Windows を使用している場合) でその名前を検索します。-- Change oauth2db to the name you want for the database CREATE DATABASE oauth2db USING CODESET UTF8 TERRITORY US; CONNECT TO oauth2db; ---- 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 BIGINT, LIFETIME INT, EXPIRES BIGINT, TOKENSTRING VARCHAR(2048) 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 NOT NULL DEFAULT '{}' ); CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG ( COMPONENTID VARCHAR(256) NOT NULL, CLIENTID VARCHAR(256) NOT NULL, CLIENTSECRET VARCHAR(256), DISPLAYNAME VARCHAR(256) NOT NULL, REDIRECTURI VARCHAR(2048), ENABLED INT CLIENTMETADATA CLOB NOT NULL DEFAULT '{}' ); CREATE TABLE OAuthDBSchema.OAUTH20CONSENTCACHE ( CLIENTID VARCHAR(256) NOT NULL, USERID VARCHAR(256), PROVIDERID VARCHAR(256) NOT NULL, SCOPE VARCHAR(1024) NOT NULL, EXPIRES BIGINT, EXTENDEDFIELDS CLOB NOT NULL DEFAULT '{}' ); ---- 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 USER dbuser; -- GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO USER dbuser; ---- END OF GRANT PRIVILIGES ---- DISCONNECT CURRENT;
以下のステートメントを実行して、DB2 でデータベースおよび表を作成できます。Linux/Unix: db2 get dbm cfg | grep SVCENAME Windows: db2 get dbm cfg | findstr SVCENAME
db2 -tvf createTables.sql
- WebSphere® Application Server Liberty プロファイル・サーバーを構成します。以下の例は、DB2 ストアを使用する OAuth プロバイダー用のサンプル server.xml ファイルです。
<server> <featureManager> <feature>oauth-2.0</feature> <feature>ssl-1.0</feature> <feature>jdbc-4.0</feature> <feature>jndi-1.0</feature> </featureManager> <keyStore password="keyspass" /> <oauth-roles> <authenticated> <user>testuser</user> </authenticated> </oauth-roles> <oauthProvider id="DBOAuth20Provider" oauthOnly="true" filter="request-url%=AnnuityOAuthWeb/index.jsp"> <databaseStore dataSourceRef="OAUTH2DBDS" /> </oauthProvider> <jdbcDriver id="db2Universal" libraryRef="DB2JCC4LIB" /> <library apiTypeVisibility="spec,ibm-api,third-party" filesetRef="db2jcc4" id="DB2JCC4LIB" /> <fileset dir="${shared.resource.dir}/db2" id="db2jcc4" includes="db2jcc4.jar db2jcc_license_cu.jar" /> <dataStore id="OAUTH2DBDS" jdbcDriverRef="db2Universal" jndiName="jdbc/oauthProvider"> <properties.db2.jcc databaseName="OAUTH2DB" driverType="4" user="bob" password="abcdefg=" portNumber="50000" serverName="db2.server.mycompany.com" /> </dataStore> <webAppSecurity allowFailOverToBasicAuth="true" /> <basicRegistry id="basic" realm="BasicRealm"> <user name="testuser" password="testuserpwd" /> </basicRegistry> </server
INSERT INTO OAuthDBSchema.OAUTH20CLIENTCONFIG
(
COMPONENTID,
CLIENTID,
CLIENTSECRET,
DISPLAYNAME,
REDIRECTURI,
ENABLED
)
VALUES
(
'DBOAuth20Provider',
'key',
'secret',
'My Client',
'https://localhost:9443/oauth/redirect.jsp',
1
)
![[8.5.5.2 以降]](../ng_v8552.gif)