Enregistrement des clients OAuth

Un client OAuth ou une application de service tierce doivent s'enregistrer avec le fournisseur de services OAuth2 WebSphere Application Server. Les clients enregistrés sont placés dans un fichier XML ou dans une table de base de données.

Pour placer des clients enregistrés dans un fichier XML, vous devez créer un fichier XML nommé base.clients.xml. Ce fichier doit être placé dans le répertoire oauth20 du répertoire de cellule ou du répertoire des noeuds de WebSphere Application Server. Le modèle de fichier base.clients.xml se trouve dans le répertoire des propriétés de WebSphere Application Server.

Pour placer des clients enregistrés dans une table de base de données, utilisez l'instruction SQL de création de table suivante.
/*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*/
);

A l'issue de la création des fichiers de stockage et des tables client, vous pouvez ajouter, supprimer ou modifier un client. Vous pouvez également utiliser les API MBean ou les API de programmation WebSphere Application Server pour gérer les clients.

L'exemple ci-dessous illustre un exemple de code de gestion client à l'aide de l'API client :
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();
}
L'exemple ci-dessous illustre un exemple de code de gestion client à l'aide de l'API MBean :
//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()});

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_oauthregisterclients
Nom du fichier : cwbs_oauthregisterclients.html