Configuration d'OAuth 2.0 pour Twitter à l'aide du flux d'octroi des données d'identification du client

Définissez un flux d'octroi des données d'identification du client pour configurer l'accès OAuth 2.0 à des ressources Twitter.

Procédure

  1. Créez une app dans votre fournisseur OAuth 2.0 (Twitter).
    1. Ouvrez un navigateur et accédez à https://apps.twitter.com.
    2. Cliquez sur le bouton Create an app (Créer une app).
    3. Donnez un nom unique à votre app et saisissez une description pour cette dernière. Saisissez l'URI de votre site distant. Cette valeur est requise par Twitter, mais n'a pas d'impact fonctionnel sur l'authentification OAuth2. Laissez le champ Callback URL (URL de rappel) vide. Cliquez ensuite sur Create your Twitter Application (Créer votre application Twitter). Twitter affiche le panneau App Settings (Paramètres de l'app) pour l'app que vous avez créée.
    4. Cliquez sur Manage Keys and Access tokens (Gérer les clés et les jetons d'accès).
    5. Notez la valeur de Consumer Key (Clé de consommateur) et Consumer Secret (Secret de consommateur).
    6. Déconnectez-vous de votre session Twitter.
  2. Fournissez les clés SSL valides de l'hôte API Dropbox.
    1. Connectez-vous à la console d'administration WebSphere Application Server du proxy.
    2. Sélectionnez Sécurité > Certificat SSL et gestion des clés > Magasins de clés certificats.
    3. Cliquez sur le fichier de clés certifiées utilisé par le serveur Portal. En fonction de votre configuration et de votre topologie de sécurité, il peut s'agir de NodeDefaultTrustStore ou de CellDefaultTrustStore.
    4. Dans la section Propriétés supplémentaires, sélectionnez Signer Certificates.
    5. Cliquez sur Récupérer à partir du port.
    6. Saisissez /api.twitter.com en tant que valeur d'hôte et 443 en tant qu'adresse de port, puis saisissez un nom d'alias comme my_twitter. Cliquez ensuite sur Récupérer les informations du signataire.
    7. Le certificat du signataire est chargé dans votre console d'administration WebSphere Application Server. Cliquez sur OK pour ajouter le certificat à votre configuration WebSphere Application Server, puis cliquez sur Enregistrer pour ajouter les paramètres au niveau de la configuration maître.
  3. Créez une entrée d'emplacement d'accréditation pour les informations d'identification du client.
    1. Connectez-vous au portail en tant qu'utilisateur administrateur.
    2. Cliquez sur Ouvrir l'administrateur de portail, puis sélectionnez Coffre d'accréditation dans la section Accès.
    3. Cliquez sur Créer un emplacement de coffre. Saisissez MyTwitterCvSlot pour le nom de l'emplacement. Sélectionnez la ressource de coffre que vous souhaitez utiliser, ou créez une nouvelle ressource de coffre. Sélectionnez le paramètre Le coffre est partagé. Utilisez la clé de consommateur en tant qu'ID utilisateur partagé, puis saisissez le secret de consommateur dans le champ de mot de passe.
    4. Cliquez sur OK pour créer le nouvel emplacement de coffre.
  4. Créez une stratégie de connexion HTTP sortante pour la nouvelle ressource.
    1. Créez le document XML suivant à l'aide d'un éditeur XML ou texte :
      
      <?xml version="1.0" encoding="UTF-8"?>
      <proxy-rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="http://www.ibm.com/xmlns/prod/sw/http/outbound/proxy-config/2.0">
          <variables>
              <dynamic-policy name="twitter-idp.urls">
                  <value>https://api.twitter.com/*</value>
              </dynamic-policy>
          </variables>
          <mapping contextpath="/myproxy" url="*">
      	<policy name="twitter-idp.policy" url="{$twitter-idp.urls}" >
      		<actions>
      			<method>GET</method>
      			<method>PUT</method>
      			<method>POST</method>
      		</actions>
      		<cookie-rule>
      			<cookie>MyAuthCookieForClientFlow</cookie>
      			<scope>user</scope>
      			<handling>store-in-session</handling>
      		</cookie-rule>
      		<cookie-rule>
      			<cookie>personalization_id</cookie>
      			<scope>user</scope>
      			<handling>store-in-session</handling>
      		</cookie-rule>
      		<cookie-rule>
      			<cookie>guest_id</cookie>
      			<scope>user</scope>
      			<handling>store-in-session</handling>
      		</cookie-rule>
      		<meta-data>
      			<name>SSO_OAUTH2_IDP</name>
      			<value>twitter-idp</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.IDP_PROTOCOL</name>
      			<value>https</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.IDP_HOST</name>
      			<value>api.twitter.com</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.IDP_PORT</name>
      			<value>443</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.IDP_URI</name>
      			<value>/oauth2/token</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_NAME.1</name>
      			<value>GRANT_TYPE</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_VALUE.1</name>
      			<value>client_credentials</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_NAME.2</name>
      			<value>CLIENT_ID</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_VALUE.2</name>
      			<value>{$$MyTwitterCvSlot}</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_NAME.3</name>
      			<value>CLIENT_CRED</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.PARAM_VALUE.3</name>
      			<value>{$$MyTwitterCvSlot}</value>
      		</meta-data>
      		<meta-data>
      			<name>twitter-idp.IDP_AUTH_COOKIE.1</name>
      			<value>MyAuthCookieForClientFlow</value>
      		</meta-data>
      	  </policy>
          </mapping>
      </proxy-rules>
    2. Enregistrez le document dans un fichier. Par exemple, enregistrez le fichier sous /tmp/global_oauth_update.xml.
    3. Appliquez la configuration à la configuration globale des connexions HTTP sortantes. Exécutez la tâche suivante pour exporter la configuration d'une connexion HTTP sortante vers un document XML.
      AIX: ./ConfigEngine.sh update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_update.xml \
              -DWasPassword=password -DPortalAdminPwd=password 
      HP-UX: ./ConfigEngine.sh update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_update.xml \
                -DWasPassword=password -DPortalAdminPwd=password 
      IBM i: ConfigEngine.sh update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_update.xml \
              -DWasPassword=password -DPortalAdminPwd=password 
      Linux: ./ConfigEngine.sh update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_update.xml \
               -DWasPassword=password -DPortalAdminPwd=password 
      Solaris: ./ConfigEngine.sh update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_pdate.xml \
                  -DWasPassword=password -DPortalAdminPwd=password 
      Windows: ConfigEngine.bat update-outbound-http-connection-config -DconfigFileName=/tmp/global_oauth_update.xml \
                -DWasPassword=password -DPortalAdminPwd=password 
    4. Supprimez le fichier XML /tmp/global_oauth_update.xml. La ressource protégée est désormais prête à l'emploi.
  5. Testez la connexion. Pour tester la connexion à Twitter via OAuth2, vous pouvez démarrer une API REST Twitter via le proxy. L'exemple suivant récupère le fil Twitter. Exécutez les deux commandes Curl suivantes pour tester la connexion :
    curl -c pc.jar "http://dx_host.com/wps/j_security_check?\
    j_username=portal_user&j_password=portal_pwd" 
    
    curl -b pc.jar \ 
    "http://dx_host.com/wps/myproxy/https/api.twitter.com/1.1/statuses/user_timeline.json?\
    count=10&screen_name=twitterapi" >timeline.json
    • La variable dx_host.com correspond au nom d'hôte et au numéro de port du serveur Portal.
    • Les variables portal_user et portal_pwd correspondent aux informations d'identification de portail que vous souhaitez utiliser.