IBM DB2 für persistente OAuth-Services

IBM® DB2 kann für persistente OAuth-Services verwendet werden. Zu Komfort- und Referenzzwecken sind in diesem Artikel die Schritte beschrieben, die Sie ausführen müssen, um DB2 für einen persistenten OAuth-Service zu konfigurieren.

Gehen Sie zum Konfigurieren von DB2 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
    
    CREATE DATABASE oauth2db USING CODESET UTF8 TERRITORY US;
    CONNECT TO oauth2db;
    
    ---- Tabellen erstellen ----
    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 '{}' 
    );
    
    ---- Bedingungen hinzufügen ----
    ALTER TABLE OAuthDBSchema.OAUTH20CACHE 
      ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY);
    
    ALTER TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG 
      ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID);
    
    ---- Indizes erstellen ----
    CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC);
    
    ---- Berechtigungen erteilen ----
    ---- Kommentarzeichen für folgende Zeilen entfernen, wenn für den DB-Zugriff ein anderer als der Administratoraccount verwendet wird ----
    
    -- dbuser in den Account ändern, der für den Zugriff auf die Datenbank verwendet werden soll
    -- GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO USER dbuser;
    -- GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO USER dbuser;
    
    ---- Ende der Berechtigungserteilung ----
    
    DISCONNECT CURRENT;
    Der DB2-Standardempfangsport ist 50000. Zum Ermitteln des Empfangsports führen Sie den folgenden Befehl aus und sehen sich den Wert des Parameters SVCENAME an. Wenn der Wert eine Zahl ist, ist dies die Portnummer. Wenn der Wert ein Name ist, suchen Sie den Namen in der Datei /etc/services bzw. in der entsprechenden Windows-Datei, falls Sie Windows verwenden.
    Linux/Unix: db2 get dbm cfg | grep SVCENAME
    Windows:    db2 get dbm cfg | findstr SVCENAME
    Verwenden Sie die folgende Anweisung, um eine Datenbank und Tabellen in DB2 zu erstellen:
    db2 -tvf createTables.sql
  2. Konfigurieren Sie den Liberty Profile-Server für WebSphere Application Server.
    Im Folgenden sehen Sie eine Beispieldatei server.xml für einen OAuth-Provider, der einen DB2-Speicher 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="DBOAuth20Provider" oauthOnly="true"
                     filter="request-url%=AnnuityOAuthWeb/index.jsp">
        <databaseStore dataSourceRef="OAUTH2DBDS" />
      </oauthProvider>
    
      <jdbcDriver id="db2Universal" libraryRef="DB2JCC4LIB" />
    
      <library apiTypeVisibility="spec,ibm-api,third-party" filesetRef="db2jcc4"
               id="DB2JCC4LIB" />
    
      <fileset dir="${shared.resource.dir}/db2" id="db2jcc4"
               includes="db2jcc4.jar db2jcc_license_cu.jar" />
    
      <dataStore id="OAUTH2DBDS" jdbcDriverRef="db2Universal"
                 jndiName="jdbc/oauthProvider">
        <properties.db2.jcc databaseName="OAUTH2DB" driverType="4"
                            user="bob" password="abcdefg="
                            portNumber="50000"
                            serverName="db2.server.mycompany.com" />
      </dataStore>
    
      <webAppSecurity allowFailOverToBasicAuth="true" />
    
      <basicRegistry id="basic" realm="BasicRealm">
        <user name="testuser" password="testuserpwd" />
      </basicRegistry>
    </server
Im folgenden Beispiel wird DB2 ein Client hinzugefügt:
INSERT INTO OAuthDBSchema.OAUTH20CLIENTCONFIG 
(
  COMPONENTID, 
  CLIENTID, 
  CLIENTSECRET, 
  DISPLAYNAME, 
  REDIRECTURI, 
  ENABLED
) 
VALUES 
(
  'DBOAuth20Provider', 
  'key', 
  'secret', 
  'My Client', 
  'https://localhost:9443/oauth/redirect.jsp', 
  1
)
[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_db2
Dateiname: cwlp_oauth_db2.html