IBM DB2 para servicios OAuth persistentes

IBM® DB2 se puede utilizar para los servicios OAuth persistentes. Por razones de comodidad y de referencia, en este tema se describen los pasos necesarios para configurar DB2 para el servicio OAuth persistente.

Para configurar DB2 para los servicios OAuth persistentes, lleve a cabo estos pasos:
  1. Cree una base de datos y tablas.
    Edite y ejecute la sentencia SQL siguiente para crear una base de datos OAuth y una tabla:
    -- Change oauth2db to the name you want for the database
    
    CREATE DATABASE oauth2db USING CODESET UTF8 TERRITORY US;
    CONNECT TO oauth2db;
    
    ---- CREAR TABLAS ----
    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 '{}'
    );
    
    ---- AÑADIR RESTRICCIONES ----
    ALTER TABLE OAuthDBSchema.OAUTH20CACHE 
      ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY);
    
    ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG 
      ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID);
    
    ---- CREAR ÍNDICES ----
    CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC);
    
    ---- OTORGAR PRIVILEGIOS ----
    ---- ELIMINAR COMENTARIO DE LO SIGUIENTE SI SE UTILIZA UNA CUENTA DISTINTA DE ADMINISTRADOR DE 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;
    
    ---- FIN DE OTORGAR PRIVILEGIOS ----
    
    DISCONNECT CURRENT;
    El puerto de escucha de DB2 predeterminado es 50000. Si desea encontrarlo, ejecute el mandato siguiente y localice el valor del parámetro SVCENAME. Si es un número, es el número de puerto. Si es un nombre, busque el nombre en el archivo /etc/services o el equivalente de Windows si está utilizando Windows.
    Linux/Unix: db2 get dbm cfg | grep SVCENAME
    Windows:    db2 get dbm cfg | findstr SVCENAME
    Puede crear una base de datos y tablas en DB2 ejecutando la siguiente sentencia:
    db2 -tvf createTables.sql
  2. Configure el servidor WebSphere Application Server Liberty.
    El ejemplo siguiente es un archivo server.xml de ejemplo para un proveedor de OAuth que utiliza un almacén de DB2:
    <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
El ejemplo siguiente añade un cliente a DB2:
INSERT INTO OAuthDBSchema.OAUTH20CLIENTCONFIG 
(
  COMPONENTID, 
  CLIENTID, 
  CLIENTSECRET, 
  DISPLAYNAME, 
  REDIRECTURI, 
  ENABLED
) 
VALUES 
(
  'DBOAuth20Provider', 
  'key', 
  'secret', 
  'My Client', 
  'https://localhost:9443/oauth/redirect.jsp', 
  1
)
Nota: El valor Componentid debe ser el mismo que el ID del elemento oauthProvider en el archivo server.xml.

Icono que indica el tipo de tema Tema de concepto



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=cwlp_oauth_db2
Nombre de archivo:cwlp_oauth_db2.html