Sentencias SQL para el servicio OAuth persistente

WebSphere Application Server da soporte al servicio OAuth 2.0 mediante la persistencia de señales y clientes OAuth en una base de datos. Con los servicios OAuth 2.0 persistentes, un cliente autorizado puede acceder al servicio OAuth 2.0 después de que se reinicien los servicios OAuth.

Para configurar servicios OAuth 2.0 persistentes, debe seguir los pasos siguientes:
  1. Configure el proveedor de servicios OAuth 2.0.

    El archivo de configuración del proveedor de plantilla OauthConfigSample.xml contiene parámetros de ejemplo para configurar un almacén de base de datos Java™ Database Connectivity (JDBC) para registrar clientes de OAuth.

    1. Marque como comentario las líneas siguientes:
      <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. Descomente las líneas siguientes:
      <!-- Parámetros de ejemplo para almacenes de base de datos JDBC -->
      <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. Configure una base de datos y una tabla para almacenar la señal y el cliente de OAuth.
    1. Cree una base de datos para el servicio OAuth persistente. Consulte la documentación del proveedor para la creación de la base de datos. En este tema, se presupone que el nombre de la base de datos que ha creado para OAuth es D:\oauth2db.
    2. Crear dos tablas de OAuth tal como se define en las siguientes sentencias de SQL:
      ----- 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
      );
      
      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
      );
      
      ----- 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);
  3. Configure WebSphere Application Server.

    Configure el origen de datos de WebSphere Application Server. Debe establecer el nombre JNDI del origen de datos de modo que sea jdbc/oauthProvider. El nombre JNDI debe coincidir con el valor del parámetro oauthjdbc.JDBCProvider del archivo de configuración del proveedor. Elija un nombre de base de datos de modo que coincida con el de la que ha creado en el primer paso, por ejemplo, D:\oauth2db.

    Se incluyen las configuraciones de DB2 o Derby para los servicios persistentes de OAuth. Puede utilizarlas como plantilla de ejemplo para configurar otras bases de datos.

  4. Añadas los clientes de OAuth registrados a la base de datos.

    Para que un cliente persista en una base de datos, debe guardar el cliente en la base de datos. Las siguientes sentencias de SQL añaden los clientes de OAuth dbclient01 y dbclient02 a una base de datos 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;

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_oauthsql
File name: cwbs_oauthsql.html