Konfiguration des persistenten OAuth-Service

WebSphere Application Server unterstützt den persistenten OAuth-2.0-Service, indem OAuth-Token und -Clients in einer Datenbank als persistent definiert werden. Mit persistenten OAuth-2.0-Services kann ein berechtigter Client nach dem Neustart der OAuth-Services auf den OAuth-2.0-Service zugreifen.

Gehen Sie wie folgt vor, um die persistenten OAuth-2.0-Services zu konfigurieren:
  1. Konfigurieren Sie den OAuth-2.0-Service-Provider.

    Wenn Sie einen Datenbankspeicher verwenden möchten, müssen Sie das Unterelement <databaseStore> des Elements <oauthProvider> angeben. Das einzige erforderliche Attribut im Element <databaseStore> ist <dataSourceRef>, dessen Wert die ID des Elements <dataSource> sein muss.

    Im Folgenden sehen Sie eine Beispieldatei server.xml für einen OAuth-Provider, der einen Derby-Datenbankspeicher verwendet:
    <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. Richten Sie eine Datenbank und die Tabellen zum Speichern des OAuth-Tokens und -Clients ein.
    1. Erstellen Sie eine Datenbank für den persistenten OAuth-Service. Informationen zur Datenbankerstellung finden Sie in der Dokumentation Ihres Anbieters. In diesem Beispiel ist der Datenbankname D:\oauth2db.
    2. Erstellen Sie wie folgt 3 OAuth-Tabellen anhand der folgenden SQL-Anweisungen:
      ----- 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
        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);
      
      ----- CREATE INDEXES -----
      CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC);
  3. Konfigurieren Sie WebSphere Application Server.

    Konfigurieren Sie die Datenquelle von WebSphere Application Server. Sie müssen den JNDI-Namen (Java Naming and Directory Interface) der Datenquelle auf jdbc/OAuth2DB setzen. Der JNDI-Name muss dem Wert des Attributs jndiName des Elements <dataSource> in der Datei server.xml entsprechen. Geben Sie den Datenbanknamen ein, z. B. D:\oauth2db.

    Weitere Informationen zur Konfiguration von DB2 und Derby für persistente OAuth-Services finden Sie unter IBM DB2 für persistente OAuth-Services konfigurieren und Derby-Datenbank für persistente OAuth-Services konfigurieren. Sie können diese Konfigurationen als Beispielschablonen für die Konfiguration weiterer Datenbanken verwenden.

  4. Fügen Sie der Datenbank die registrierten OAuth-Clients hinzu.

    Wenn Sie einen Client persistent in einer Datenbank definieren möchten, müssen Sie den Client in der Datenbank speichern. Die folgenden SQL-Anweisungen fügen die OAuth-Clients dbclient01 und dbclient02 einer Derby-Datenbank hinzu:
    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 oder höher]Anmerkung: Der Componentid-Wert muss mit der ID des Elements oauthProvider in der Datei server.xml übereinstimmen.

Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_oauth_sql
Dateiname: cwlp_oauth_sql.html