Configurer OAuth 2.0 pour les flux d'octroi des informations d'identification du client
Configurez une connexion HTTP sortante qui suit le flux d'octroi de client.
Pour une connexion HTTP sortante, OAuth 2.0 est activé en définissant la métadonnée
SSO_OAUTH2_IDP au niveau de la stratégie de connexion ou du mappage de stratégie. La valeur de ce paramètre de métadonnées est un nom symbolique affecté au fournisseur d'identité qui établit la connexion. Ce nom est utilisé comme préfixe pour un autre ensemble de métadonnées qui définissent les paramètres du fournisseur d'identité, comme illustré dans l'exemple suivant :
<?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="idp.client.urls">
<value>https://www.myremotesite.com/RESOURCE*</value>
</dynamic-policy>
</variables>
<mapping contextpath="/myproxy" url="*">
<policy name="idp.client.policy" url="{$idp.client.urls}" >
<actions>
<method>GET</method>
<method>POST</method>
</actions>
<cookie-rule>
<cookie>MyAuthCookieForClientFlow</cookie>
<scope>user</scope>
<handling>store-in-session</handling>
</cookie-rule>
<meta-data>
<name>SSO_OAUTH2_IDP</name>
<value>idp</value>
</meta-data>
<meta-data>
<name>idp.IDP_PROTOCOL</name>
<value>https</value>
</meta-data>
<meta-data>
<name>idp.IDP_HOST</name>
<value>www.myauthserver.com</value>
</meta-data>
<meta-data>
<name>idp.IDP_PORT</name>
<value>443</value>
</meta-data>
<meta-data>
<name>idp.IDP_URI</name>
<value>/oauth2/token</value>
</meta-data>
<meta-data>
<name>idp.PARAM_NAME.1</name>
<value>GRANT_TYPE</value>
</meta-data>
<meta-data>
<name>idp.PARAM_VALUE.1</name>
<value>client_credentials</value>
</meta-data>
<meta-data>
<name>idp.PARAM_NAME.2</name>
<value>SCOPE</value>
</meta-data>
<meta-data>
<name>idp.PARAM_VALUE.2</name>
<value>the_scope</value>
</meta-data>
<meta-data>
<name>idp.PARAM_NAME.3</name>
<value>CLIENT_ID</value>
</meta-data>
<meta-data>
<name>idp.PARAM_VALUE.3</name>
<value>{$$MyClientCvSlot}</value>
</meta-data>
<meta-data>
<name>idp.PARAM_NAME.4</name>
<value>CLIENT_CRED</value>
</meta-data>
<meta-data>
<name>idp.PARAM_VALUE.4</name>
<value>{$$MyClientCvSlot}</value>
</meta-data>
<meta-data>
<name>idp.IDP_AUTH_COOKIE.1</name>
<value>MyAuthCookieForClientFlow</value>
</meta-data>
</policy>
</mapping>
</proxy-rules>
Où https://www.myremotesite.com/RESOURCE* correspond au modèle d'URL pour le nœud final de votre serveur de ressources qui est protégé par le flux d'octroi des informations d'identification du client OAuth.
Où MyAuthCookieForClientFlow correspond au nom d'un cookie utilisé en interne par le proxy et enregistré dans le magasin de cookie de la session du proxy. Le cookie contient le jeton d'accès de la connexion distante. Le type de traitement de cookie store-in-session doit donc être utilisé.
Les paires de métadonnées nom-valeur sont utilisées pour établir le flux d'octroi des informations d'identification du client :
- name=SSO_OAUTH2_IDP, value=idp
- Obligatoire. Ces métadonnées activent la stratégie nécessaire pour l'authentification OAuth 2.0. La valeur de ce paramètre de métadonnées est un nom symbolique affecté au fournisseur d'identité qui établit la connexion. Ce nom est utilisé comme préfixe pour un autre ensemble de métadonnées qui définissent les paramètres du fournisseur d'identité.
- Name=idp.IDP_PROTOCOL, value=https
- Facultatif. Ces métadonnées définissent le protocole faisant partie du serveur d'autorisation OAuth 2.0. Si ces métadonnées ne sont pas définies, la valeur par défaut est https. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. - Name=idp.IDP_HOST, value=www.myauthserver.com
- Obligatoire. La valeur de la métadonnée définit le nom d'hôte du serveur d'autorisation OAuth 2.0. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. - Name=idp.IDP_PORT, value=443
- Facultatif. La valeur de la métadonnée définit le port du serveur d'autorisation OAuth 2.0. Si cette métadonnée n'est pas définie, le port par défaut est choisi (443 pour les connexions https et 80 pour les connexions http). La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. - Name=idp.IDP_URI, value=/oauth2/token
- Obligatoire. La valeur de la métadonnée définit l'URI faisant partie du nœud final du jeton du serveur d'autorisation OAuth 2. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. - Name=idp.IDP_AUTH_COOKIE.n, value=MyAuthCookieForClientFlow
- Obligatoire. La valeur de la métadonnée définit le nom d'un cookie utilisé en interne et qui est créé par le proxy et contient le jeton d'accès. Spécifiez un nom unique pour ce cookie afin d'éviter les conflits de noms. Vous devez aussi définir un type de traitement de cookie adapté à la stratégie de connexion sortante pour ce cookie. Nous vous recommandons vivement de définir le type de traitement
store-in-session, car ce cookie contient le jeton d'accès de la connexion OAuth2 distante, qui ne sera peut-être pas visible pour le client. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnéeSSO_OAUTH2_IDP. - Name=idp.PARAM_NAME.n, value=GRANT_TYPE Name=idp.PARAM_VALUE.n, value=client_credentials
- Obligatoire. La valeur de métadonnée pour idp.PARAM_VALUE.n spécifie que cette connexion suit le flux d'octroi des informations d'identification du client. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. La valeur n correspond à un numéro qui doit être unique au sein de ce bloc de métadonnées. Dans cet exemple, un numéro de séquence est utilisé pour n. - Name=idp.PARAM_NAME.n, value=CLIENT_ID Name=idp.PARAM_VALUE.n, value={$$MyClientCvSlot}
- Facultatif. La valeur de métadonnée pour idp.PARAM_VALUE.n spécifie l'ID du client. La valeur MyClientCvSlot correspond à un emplacement de coffre d'accréditation qui contient les informations d'identification utilisateur/mot de passe de l'app cliente. L'ID de l'entrée d'emplacement d'accréditation référencée doit correspondre à l'ID client (clé client ou clé d'app) que vous avez obtenu lorsque vous avez enregistré votre client auprès du serveur d'autorisation OAuth2. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. La valeur n correspond à un numéro qui doit être unique au sein de ce bloc de métadonnées. Dans cet exemple, un numéro de séquence est utilisé pour n. Si cette métadonnée n'est pas spécifiée, la demande d'accès du jeton ne contient pas les informations d'identification du client. - Name=idp.PARAM_NAME.n, value=CLIENT_CRED Name=idp.PARAM_VALUE.n, value={$$MyClientCvSlot}
- Facultatif. La valeur de métadonnée pour idp.PARAM_VALUE.n spécifie le secret du client. La valeur MyClientCvSlot correspond à un emplacement de coffre d'accréditation qui contient les informations d'identification utilisateur/mot de passe de l'app cliente. L'information d'identification de l'entrée d'emplacement d'accréditation référencée doit correspondre au secret du client spécifié au niveau du serveur d'autorisation lorsque vous avez enregistré votre application auprès du serveur d'autorisation OAuth2.0. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. La valeur n correspond à un numéro qui doit être unique au sein de ce bloc de métadonnées. Dans cet exemple, un numéro de séquence est utilisé pour n. Si cette métadonnée n'est pas spécifiée, la demande d'accès du jeton ne contient pas les informations d'identification du client. - Name=idp.PARAM_NAME.n, value=SCOPE Name=idp.PARAM_VALUE.n, value=the_scope
- Facultatif. La valeur de métadonnée pour idp.PARAM_VALUE.n spécifie la portée de cette connexion, telle que définie par votre serveur d'autorisation. Si aucune délimitation de la portée n'est nécessaire, ne définissez pas cette métadonnée, ou laissez la valeur idp.PARAM_VALUE.n vide. La valeur idp est un nom symbolique qui doit correspondre à la valeur de la métadonnée
SSO_OAUTH2_IDP. La valeur n correspond à un numéro qui doit être unique au sein de ce bloc de métadonnées. Dans cet exemple, un numéro de séquence est utilisé pour n.