Instrukcje SQL dla trwałej usługi OAuth
Serwer WebSphere® Application Server obsługuje trwałą usługę OAuth 2.0 przez utrwalanie tokenów OAuth i klientów w bazie danych. W przypadku trwałych usług OAuth 2.0 autoryzowany klient może uzyskać dostęp do usługi OAuth 2.0 po zrestartowaniu usług OAuth.
- Skonfiguruj dostawcę usług OAuth 2.0 .
Plik konfiguracyjny dostawcy szablonów produktu OAuthConfigSample.xml zawiera przykładowe parametry konfigurowania składnicy bazy danych Java™ Database Connectivity (JDBC) na potrzeby rejestrowania klientów OAuth.
- Przekształć w komentarz następujące wiersze:
<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> - Usuń znaki komentarza w następujących wierszach:
<!-- Example parameters for JDBC database stores --> <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>
- Przekształć w komentarz następujące wiersze:
- Skonfiguruj bazę danych i tabelę do przechowywania znacznika OAuth i klienta.
- Utwórz bazę danych dla trwałej usługi OAuth. Informacje na temat tworzenia bazy danych można znaleźć w dokumentacji dostawcy. W tym temacie założono, że nazwa bazy danych utworzona dla protokołu OAuth to
D:\oauth2db. - Utwórz dwie tabele OAuth zgodnie z definicją następującej instrukcji SQL:
----- 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);
- Utwórz bazę danych dla trwałej usługi OAuth. Informacje na temat tworzenia bazy danych można znaleźć w dokumentacji dostawcy. W tym temacie założono, że nazwa bazy danych utworzona dla protokołu OAuth to
- Skonfiguruj serwer WebSphere Application Server.
Skonfiguruj źródło danych serwera WebSphere Application Server . Nazwa JNDI źródła danych musi być ustawiona na
jdbc/oauthProvider. Nazwa JNDI musi być zgodna z wartością parametruoauthjdbc.JDBCProviderw pliku konfiguracyjnym dostawcy. Wybierz nazwę bazy danych, która ma być zgodna z nazwą utworzoną w pierwszym kroku, na przykładD:\oauth2db.Dołączono konfigurację usług trwałych produktu DB2® lub Derby dla usług trwałych OAuth. Można ich użyć jako szablonu przykładowego w celu skonfigurowania innych baz danych.
- Dodaj zarejestrowane klienty OAuth do bazy danych.
Aby utrwalić klienta w bazie danych, należy zapisać klienta w bazie danych. Następujące instrukcje SQL dodają klienty OAuth
dbclient01idbclient02do bazy danych 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;