Instructions SQL pour le service OAuth permanent

WebSphere Application Server prend en charge le service OAuth 2.0 permanent en conservant les jetons et clients OAuth dans une base de données. Avec les services OAuth 2.0 permanents, un client autorisé peut accéder au service OAuth 2.0 après le redémarrage des services OAuth.

Pour configurer les services OAuth 2.0 permanents, vous devez suivre la procédure suivante :
  1. Configurez le fournisseur de services OAuth 2.0.

    Le modèle de fichier de configuration de fournisseur OauthConfigSample.xml contient des exemples de paramètre de configuration d'une librairie de base de données JDBC (Java™ Database Connectivity) pour enregistrer les clients OAuth.

    1. Mettez en commentaire les lignes suivantes :
      <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. Supprimez les commentaires des lignes suivantes :
      <!-- Exemple de paramètres des librairies de base de données 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. Configurez une base de données et une table pour stocker le jeton et le client OAuth.
    1. Créez une base de données pour le service OAuth permanent. Voir la documentation du fournisseur pour créer la base de données. Dans cette rubrique, le nom de la base de données créée pour OAuth est D:\oauth2db.
    2. Créez deux tables OAuth conformément aux instructions SQL suivantes :
      ----- 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. Configurez WebSphere Application Server.

    Configurez la source de données WebSphere Application Server. Vous devez définir le nom JNDI de la source de données jdbc/oauthProvider. Le nom JNDI doit correspondre à la valeur de paramètre oauthjdbc.JDBCProvider du fichier de configuration de fournisseur. Choisissez un nom de base de données correspondant à celui que vous avez créé dans la première étape (D:\oauth2db, par exemple).

    La configuration des services permanents de DB2 or Derby pour OAuth sont inclus. Vous pouvez les utiliser comme modèle de configuration d'autres bases de données.

  4. Ajoutez les clients OAuth enregistrés à la base de données.

    Pour conserver un client dans une base de données, vous devez le sauvegarder dans la base de données. Les instructions SQL suivantes ajoutent les clients OAuth dbclient01 et dbclient02 à une base de données 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;

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_oauthsql
Nom du fichier : cwbs_oauthsql.html