Derby-Datenbank für persistente OAuth-Services

Sie können eine Derby-Datenbank für persistente OAuth-Services verwenden. Zu Komfort- und Referenzzwecken sind in diesem Artikel die Schritte beschrieben, die Sie ausführen müssen, um die Derby-Datenbank für einen persistenten OAuth-Service zu konfigurieren.

Gehen Sie zum Konfigurieren der Derby-Datenbank für persistente OAuth-Services wie folgt vor:
  1. Erstellen Sie eine Datenbank und Tabellen.
    Bearbeiten und führen Sie die folgende SQL-Anweisung aus, um eine OAuth-Datenbank und die zugehörigen Tabellen zu erstellen:
    --- oauth2db in den Namen ändern, der für die Datenbank verwendet werden soll
    --- Verbindung zu Derby herstellen und eine der Verbindungsoptionen auswählen, indem das
    --- Kommentarzeichen aus der entsprechenden Zeile entfernt wird.
    --- Für das Herstellen der Verbindung zu Derby als Netzserver:
    --- CONNECT 'jdbc:derby://localhost:1527/oauth2db;create=true';
    
    --- Für das Herstellen der Verbindung zu Embedded Derby
    --- kann D:\oauth2db in die Position der Datenbank geändert werden.
    --- CONNECT 'jdbc:derby:D:\oauth2db;create=true';
    
    --- Zum Erstellen von Tabellen in einer vorhandenen Derby-Datenbank
    --- den Parameter create=true entfernen.
    
    ----- 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);
    
    DISCONNECT CURRENT;
    Führen Sie die Datei createTables.sql aus, indem Sie ij mit dem folgenden Befehl starten:
    ij createTables.sql
  2. Konfigurieren Sie den Liberty-Server.
    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="OAuthDerbyDataSource" />
      </oauthProvider>
    
      <jdbcDriver id="DerbyEmbedded" libraryRef="DerbyLib"/>
    
      <library id="DerbyLib" filesetRef="DerbyFileset" />
    
      <fileset id="DerbyFileset" dir="${DERBY_JDBC_DRIVER_PATH}"
               includes="derby.jar" />
    
      <dataSource id="OAuthDerbyDataSource" 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>
    Anmerkung: Der Componentid-Wert muss mit der ID des Elements oauthProvider in der Datei server.xml übereinstimmen.

Nachdem Sie die Datenbank konfiguriert haben, können Sie Clients bei der Datenbank registrieren, um sie mit Informationen zu füllen. Weitere Informationen finden Sie im Artikel Akzeptieren von Clientregistrierungsanforderungen durch einen OpenID Connect-Provider konfigurieren.


Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Dateiname: cwlp_oauth_derby.html