지속적 OAuth 서비스에 대한 IBM DB2

IBM® DB2®는 지속적 OAuth 서비스에 사용될 수 있습니다. 이 주제에서는 사용 편의성과 참조 목적으로 지속적 OAuth 서비스를 위해 DB2를 구성하는 단계에 대해 설명합니다.

지속적 OAuth 서비스에 대해 DB2를 구성하려면 다음 단계를 완료하십시오.
  1. 데이터베이스 및 테이블을 작성하십시오.
    다음 SQL문을 편집 및 실행하여 OAuth 데이터베이스 및 테이블을 작성하십시오.
    -- Change oauth2db to the name you want for the database
    
    CREATE DATABASE oauth2db USING CODESET UTF8 TERRITORY US;
    CONNECT TO oauth2db;
    
    ---- 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);
    
    ---- GRANT PRIVILEGES ----
    ---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ----
    
    -- Change dbuser to the account you want to use to access your database 
    -- GRANT ALL ON OAuthDBSchema.OAUTH20CACHE TO USER dbuser;
    -- GRANT ALL ON OAuthDBSchema.OAUTH20CLIENTCONFIG TO USER dbuser;
    
    ---- END OF GRANT PRIVILIGES ----
    
    DISCONNECT CURRENT;
    기본 DB2 청취 포트는 50000입니다. 이 포트를 찾으려면 다음 명령을 실행하고 SVCENAME 매개변수의 값을 찾으십시오. 값이 숫자이면 포트 번호입니다. 값이 이름이면 /etc/services 파일 또는 Windows(Windows를 사용하는 경우)의 이름을 찾으십시오.
    Linux/Unix: db2 get dbm cfg | grep SVCENAME
    Windows:    db2 get dbm cfg | findstr SVCENAME
    다음 명령문을 실행하여 DB2에서 데이터베이스 및 테이블을 작성할 수 있습니다.
    db2 -tvf createTables.sql
  2. WebSphere® Application Server Liberty 서버를 구성합니다.
    다음 예제는 DB2 저장소를 사용하는 OAuth 제공자용 샘플 server.xml 파일입니다.
    <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
다음 예제는 클라이언트를 DB2에 추가합니다.
INSERT INTO OAuthDBSchema.OAUTH20CLIENTCONFIG 
(
  COMPONENTID, 
  CLIENTID, 
  CLIENTSECRET, 
  DISPLAYNAME, 
  REDIRECTURI, 
  ENABLED
) 
VALUES 
(
  'DBOAuth20Provider', 
  'key', 
  'secret', 
  'My Client', 
  'https://localhost:9443/oauth/redirect.jsp', 
  1)
참고: Componentidserver.xml 파일에 있는 oauthProvider 요소의 ID와 동일해야 합니다.

주제의 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwlp_oauth_db2
파일 이름: cwlp_oauth_db2.html