Configuración del servicio OAuth persistente

WebSphere Application Server da soporte a un servicio OAuth 2.0 persistente mediante la persistencia de señales OAuth y clientes de 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, complete los pasos siguientes:
  1. Configure el proveedor de servicios OAuth 2.0.

    Para utilizar un almacén de base de datos, debe especificar el subelemento <databaseStore> del elemento <oauthProvider>. El único atributo necesario en el elemento <databaseStore> es <dataSourceRef>, cuyo valor debe ser el ID del elemento <dataSource>.

    El ejemplo siguiente es un archivo server.xml de ejemplo para un proveedor de OAuth que utiliza un almacén de base de datos Derby:
    <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="OAuthConfigDerby" filter="request-url%=ssodemo"
                     oauthOnly="false">
        <databaseStore dataSourceRef="OAuthFvtDataSource" />
      </oauthProvider>
    
      <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/>
    
      <library id="DerbyLib" fileSetRef="DerbyFileset" />
    
      <fileset id="DerbyFileset" dir="${DERBY_JDBC_DRIVER_PATH}"
               includes="derby.jar" />
    
      <dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB"
                  jdbcDriverRef="DerbyEmbedded">
        <properties.derby.embedded databaseName="D:\oauth2db"
                                   createDatabase="create" />
      </dataSource>
    
      <webAppSecurity allowFailOverToBasicAuth="true" />
    
      <basicRegistry id="basic" realm="BasicRealm">
        <user name="testuser" password="testuserpwd" />
      </basicRegistry>
    
    </server>
  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 obtener información sobre la creación de la base de datos. En este ejemplo, el nombre de base de datos es D:\oauth2db.
    2. Cree 3 tablas de OAuth como se define en las siguientes sentencias 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
        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);
      
      ----- 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 (Java Naming and Directory Interface) del origen de datos para que sea jdbc/OAuth2DB. El nombre JNDI debe coincidir con el atributo jndiName del elemento <dataSource> en el archivo server.xml. Especifique el nombre de base de datos, por ejemplo, D:\oauth2db.

    Para obtener más información sobre la configuración de DB2 y Derby para los servicios persistentes OAuth, consulte IBM DB2 para servicios OAuth persistentes y Base de datos Derby para servicios OAuth persistentes. 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;
    [8.5.5.2 o posterior]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

Términos y condiciones para centros de información | Comentarios


Icono de indicación de fecha y hora Última actualización: 15 de junio de 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_oauth_sql
Nombre de archivo:cwlp_oauth_sql.html