OAuth 클라이언트 등록

OAuth 클라이언트 또는 써드파티 서비스 애플리케이션은 자신을 WebSphere® Application Server OAuth2 서비스 제공자에 등록해야 합니다. 등록된 클라이언트는 XML 파일로 저장되거나 데이터베이스 테이블에 있습니다.

등록된 클라이언트를 XML 파일로 저장하기 위해 base.clients.xml이라는 XML 파일을 작성합니다. 이 XML 파일은 WebSphere Application Server 셀 디렉토리 또는 노드 디렉토리의 oauth20 디렉토리에 위치해야 합니다. 샘플 base.clients.xml 파일은 WebSphere Application Server 설치의 특성 디렉토리에 있습니다.

등록된 클라이언트를 데이터베이스 테이블에 저장하려면 이 테이블 작성 SQL문을 사용하십시오.
/*Client Table*/
CREATE TABLE OAuthDBSchema.OAUTH20CLIENTCONFIG (
    COMPONENTID VARCHAR(256) NOT NULL, /*Name of OAuth Provider and matches config.xml*/
    CLIENTID VARCHAR(256) NOT NULL,    /*ID of client*/
    CLIENTSECRET VARCHAR(256),         /*Client secret*/
    DISPLAYNAME VARCHAR(256) NOT NULL, /*Display name of the client*/
    REDIRECTURI VARCHAR(2048),         /*client redirect URI*/
    ENABLED INT                        /*int*/
);

파일 및 테이블을 저장하는 클라이언트를 작성한 후, 클라이언트를 직접 추가, 삭제 또는 수정할 수 있습니다. 또한 WebSphere Application Server MBean 또는 프로그래밍 API를 사용하여 클라이언트를 관리할 수도 있습니다.

다음 예는 클라이언트 API를 사용하여 클라이언트 관리를 위한 샘플 코드를 보여줍니다.
import com.ibm.ws.security.oauth20.plugins.BaseClientProvider;
import com.ibm.ws.security.oauth20.plugins.BaseClient;
import com.ibm.ws.security.oauth20.api.OAuth20Provider;
import com.ibm.ws.security.oauth20.api.OAuth20ProviderFactory;
import com.ibm.ws.security.oauth20.plugins.db.CachedDBClientProvider;

OAuth20Provider provider = OAuth20ProviderFactory.getOAuth20Provider("<<provider_name>>");
OAuthComponentConfiguration oauthconfig = provider.getConfiguration();
CachedDBClientProvider clientProvider = new CachedDBClientProvider();  //if using Database for client store
//BaseClientProvider clientProvider = new BaseClientProvider();  //if using XML file for client store
clientProvider.init(oauthconfig);
// replace << .... >> with desired String
BaseClient newClient = new BaseClient(oauthconfig.getUniqueId(),
                                      "<<client_id>>",
                                      "<<client_secret>>",
                                      "<<client displayName>>",
                                      "<<redirect uri>>",
                                      true);
//add a new client
clientProvider.put(newClient);
//delete a client
clientProvider.delete("<<client_id>>");

//query all registered clients
Collection<BaseClient> clients = clientProvider.getAll();
for (BaseClient client : clients) {
  String client_display_name = client.getDisplayName();
  String client_id = client.getClientId();
  String redirect_uri = client.getRedirectUri();
}
다음 예는 MBean API를 사용하여 클라이언트 관리를 위한 샘플 코드를 보여줍니다.
//get OAuth client mBean OAuth20ClientMBean
ObjectName  objName     = new ObjectName ("WebSphere:type=OAuth20ClientMBean,*");
AdminClient adminClient = ....;
// add a new client
BaseClient newClient = new BaseClient(oauthconfig.getUniqueId(),
                                      "<<<<client_id>>",
                                      "<<client_secret>>",
                                      "<<client displayName>>",
                                      "<<redirect uri>>",
                                      true);
adminClient.invoke(objName,
                   "addClient",
                   new Object[]{newClient},
                   new String[]{newClient.getClass().getName()});

//delete a client by client id
adminClient.invoke(objName,
                   "removeClient", 
                   new Object[]{providerName, "<<client id>>"},
                   new String[]{providerName.getClass().getName(),
                   clientName.getClass().getName()});

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



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