パーシスタント OAuth サービスでの SQL ステートメント

WebSphere® Application Server は、OAuth トークンおよびクライアントをデータベースに維持することによって、パーシスタント OAuth 2.0 サービスをサポートします。 パーシスタント OAuth 2.0 サービスにより、許可されたクライアントは、OAuth サービスの再始動後、OAuth 2.0 サービスにアクセスすることができます。

パーシスタント OAuth 2.0 サービスを構成するには、以下のステップに従う必要があります。
  1. OAuth 2.0 サービス・プロバイダーを構成します。

    OauthConfigSample.xml テンプレート・プロバイダー構成ファイルに、OAuth クライアントを登録するための Java™ Database Connectivity (JDBC) データベース・ストアの構成に必要なパラメーターの例が入っています。

    1. 以下の行をコメント化します。
      <parameter name="oauth20.client.provider.classname" type="cc" customizable="false">
        <value>com.ibm.ws.security.oauth20.plugins.BaseClientProvider</value>
      </parameter>
      <parameter name="oauth20.token.cache.classname" type="cc" customizable="false">
        <value>com.ibm.ws.security.oauth20.plugins.BaseCache</value>
      </parameter>
      <parameter name="oauth20.token.cache.jndi.tokens" type="ws" customizable="false">
        <value>services/cache/OAuth20MemTokenCache</value>
      </parameter>
      <parameter name="oauth20.token.cache.jndi.users" type="ws" customizable="false">
        <value>services/cache/OAuth20MemTokenOwnerCache</value>
      </parameter>
    2. 以下の行のコメントを外します。
      <!-- Example parameters for JDBC database stores -->
      <parameter name="oauth20.client.provider.classname" type="cc" customizable="false">
        <value>com.ibm.ws.security.oauth20.plugins.db.CachedDBClientProvider</value>
      </parameter>
      <parameter name="oauth20.token.cache.classname" type="cc" customizable="false">
        <value>com.ibm.ws.security.oauth20.plugins.db.CachedDBTokenStore</value>
      </parameter>
      <parameter name="oauthjdbc.JDBCProvider" type="ws" customizable="false">
        <value>jdbc/oauthProvider</value>
      </parameter>
      <parameter name="oauthjdbc.client.table" type="ws" customizable="false">
        <value>OAuthDBSchema.OAUTH20CLIENTCONFIG</value>
      </parameter>
      <parameter name="oauthjdbc.token.table" type="ws" customizable="false">
        <value>OAuthDBSchema.OAUTH20CACHE</value>
      </parameter>
      <parameter name="oauthjdbc.CleanupInterval" type="ws" customizable="true">
        <value>3600</value>
      </parameter>
      <parameter name="oauthjdbc.CleanupBatchSize" type="ws" customizable="true">
        <value>250</value>
      </parameter>
      <parameter name="oauth20.db.token.cache.jndi.tokens" type="ws" customizable="false">
        <value>services/cache/OAuth20DBTokenCache</value>
      </parameter>
      <parameter name="oauth20.db.token.cache.jndi.clients" type="ws" customizable="false">
        <value>services/cache/OAuth20DBClientCache</value>
      </parameter>
  2. OAuth トークンおよびクライアントを保管するデータベースと表をセットアップします。
    1. パーシスタント OAuth サービス用のデータベースを作成します。 データベースの作成についてはベンダーの資料を参照してください。 このトピックでは、OAuth 用に作成したデータベース名を D:\oauth2db と仮定します。
    2. 以下の SQL ステートメントで定義されているように 2 つの OAuth 表を作成します。
      ----- 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
      );
      
      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
      );
      
      ----- 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);
  3. WebSphere Application Server を構成します。

    WebSphere Application Server データ・ソースを構成します。データ・ソース JNDI 名を jdbc/oauthProvider となるように設定します。 JNDI 名は、プロバイダー構成ファイル内の oauthjdbc.JDBCProvider パラメーター値と一致しなければなりません。 最初のステップで作成した名前と一致するデータベース名 (例えば D:\oauth2db) を選択します。

    OAuth パーシスタント・サービス用の DB2® または Derby の構成が含まれます。 これをサンプル・テンプレートとして使用して他のデータベースを構成することができます。

  4. 登録された OAuth クライアントをデータベースに追加します。

    クライアントをデータベースに保持するには、そのクライアントをデータベースに保存する必要があります。 以下の SQL ステートメントは、dbclient01 および dbclient02 という OAuth クライアントを Derby データベースに追加するものです。
    CONNECT 'jdbc:derby:D:\oauth2db';
    INSERT INTO OAuthDBSchema.OAUTH20CLIENTCONFIG VALUES 
    (
      'OAuthConfigDerby', 
      'dbclient01', 
      'secret', 
      'dbclient01', 
      'http://localhost:9080/oauthclient/redirect.jsp', 
      1
    ),
    (
      'OAuthConfigDerby', 
      'dbclient02', 
      'secret', 
      'dbclient02', 
      'http://localhost:9080/oauthclient/redirect.jsp', 
      1
    );
    DISCONNECT CURRENT;

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_oauthsql
ファイル名:cwbs_oauthsql.html