> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Découvrez comment révoquer la clé de signature d’application de votre tenant à l’aide de l’Auth0 Dashboard ou de la Management API.

# Révoquer les clés de signature

export const AuthCodeGroup = ({children, dropdown}) => {
  const [processedChildren, setProcessedChildren] = useState(children);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      unsubscribe = window.autorun(() => {
        const processChildren = node => {
          if (typeof node === "string") {
            let processedNode = node;
            for (const [key, value] of window.rootStore.variableStore.values.entries()) {
              const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
              processedNode = processedNode.replaceAll(new RegExp(escapedKey, "g"), value);
            }
            return processedNode;
          } else if (Array.isArray(node)) {
            return node.map(processChildren);
          } else if (node && node.props && node.props.children) {
            return {
              ...node,
              props: {
                ...node.props,
                children: processChildren(node.props.children)
              }
            };
          }
          return node;
        };
        setProcessedChildren(processChildren(children));
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  return <CodeGroup dropdown={dropdown}>{processedChildren}</CodeGroup>;
};

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASQUÉ*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

Vous pouvez révoquer la clé de signature de l’application ou de l’API de votre tenant à l’aide du <Tooltip tip="Auth0 Dashboard : le principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> ou de la <Tooltip tip="Auth0 Dashboard : le principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Management+API">Management API</Tooltip>. La clé de signature sert à signer les <Tooltip tip="Management API : un produit qui permet aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=ID+tokens">jetons ID</Tooltip>, les <Tooltip tip="ID Token : jeton destiné au client lui-même plutôt qu’à l’accès à une ressource." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=access+tokens">jetons d’accès</Tooltip>, les assertions <Tooltip tip="Access Token : jeton d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=SAML">SAML</Tooltip> et les assertions <Tooltip tip="Security Assertion Markup Language (SAML) : protocole normalisé permettant à deux parties d’échanger des renseignements d’authentification sans mot de passe." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=WS-Fed">WS-Fed</Tooltip> envoyées à votre application ou à votre API. Pour en savoir plus, consultez [Signing Keys](/docs/fr-ca/get-started/tenant-settings/signing-keys).

<div id="prerequisites">
  ## Prérequis
</div>

* Avant de pouvoir révoquer une clé de signature déjà utilisée, vous devez d’abord avoir effectué la rotation de la clé. Pour en savoir plus, consultez [Faire pivoter les clés de signature](/docs/fr-ca/get-started/tenant-settings/signing-keys/rotate-signing-keys), ou la section **Faire pivoter et révoquer la clé de signature** ci-dessous.
* Assurez-vous d’avoir mis à jour votre application ou votre API avec la nouvelle clé avant de révoquer la clé précédente.

<Warning>
  Vous ne pouvez pas réutiliser une clé de signature après sa révocation; assurez-vous donc de vraiment vouloir la révoquer.
</Warning>

<div id="use-the-dashboard">
  ## Utiliser le Dashboard
</div>

<div id="revoke-previously-used-signing-key">
  ### Révoquer la clé de signature utilisée auparavant
</div>

1. Accédez à [Dashboard > Settings > Signing Keys](https://manage.auth0.com/#/tenant/signing_keys).
2. Dans la section **List of Valid Keys**, repérez la clé **Previously Used**, ouvrez le menu des options supplémentaires (**...**), puis sélectionnez **Revoke Key**.
   La section **List of Valid Keys** répertorie la clé de signature actuellement utilisée par votre tenant, ainsi que la prochaine clé de signature qui sera attribuée si vous choisissez d’effectuer une rotation de vos clés de signature. Si vous avez déjà effectué une rotation de vos clés de signature, cette section répertorie également les clés utilisées auparavant.
   La section **List of Revoked Keys** répertorie les trois dernières clés révoquées de votre tenant.
3. Sélectionnez **Revoke** pour confirmer.

<div id="rotate-and-revoke-signing-key">
  ### Rotation et révocation de la clé de signature
</div>

1. Accédez à [Dashboard > Settings > Signing Keys](https://manage.auth0.com/#/tenant/signing_keys).
2. Dans la section **Rotation Settings**, repérez **Rotate & Revoke Signing Key**, puis sélectionnez **Rotate & Revoke Key**.
3. Sélectionnez **Rotate & Revoke** pour confirmer.

<div id="use-the-management-api">
  ## Utiliser Management API
</div>

<Warning>
  Vous pouvez uniquement révoquer la clé de signature utilisée précédemment.
</Warning>

1. Pour obtenir la liste des clés de signature, faites une requête `GET` au point de terminaison [Obtenir toutes les clés de signature d’application](https://auth0.com/docs/api/management/v2#!/Keys/get_signing_keys).
2. Faites une requête `PUT` au point de terminaison [Révoquer une clé de signature d’application par son Key ID](https://auth0.com/docs/api/management/v2#!/Keys/put_signing_keys). Assurez-vous de remplacer les valeurs de l’espace réservé `{yourKeyId}` et `{yourMgmtApiAccessToken}` par l’ID de votre clé de signature et votre jeton d’accès Management API, respectivement.

<AuthCodeGroup>
  ```bash cURL theme={null}
     curl --request PUT \
  --url 'https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke' \
  --header 'authorization: Bearer {yourMgmtApiAccessToken}'

  ```

  ```csharp C# theme={null}
     var client = new RestClient("https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke");
  var request = new RestRequest(Method.PUT);
  request.AddHeader("authorization", "Bearer {yourMgmtApiAccessToken}");
  IRestResponse response = client.Execute(request);

  ```

  ```go Go theme={null}
     package main

  import (
     "fmt"
     "net/http"
     "io/ioutil"
  )

  func main() {

     url := "https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke"

     req, _ := http.NewRequest("PUT", url, nil)

     req.Header.Add("authorization", "Bearer {yourMgmtApiAccessToken}")

     res, _ := http.DefaultClient.Do(req)

     defer res.Body.Close()
     body, _ := ioutil.ReadAll(res.Body)

     fmt.Println(res)
     fmt.Println(string(body))

  }

  ```

  ```java Java theme={null}
     HttpResponse response = Unirest.put("https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke")
     .header("authorization", "Bearer {yourMgmtApiAccessToken}")
     .asString();

  ```

  ```javascript Node.JS theme={null}
     var axios = require("axios").default;

  var options = {
  method: 'PUT',
  url: 'https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke',
  headers: {authorization: 'Bearer {yourMgmtApiAccessToken}'}
  };

  axios.request(options).then(function (response) {
  console.log(response.data);
  }).catch(function (error) {
  console.error(error);
  });

  ```

  ```php PHP theme={null}
     $curl = curl_init();

  curl_setopt_array($curl, [
  CURLOPT_URL => "https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_HTTPHEADER => [
     "authorization: Bearer {yourMgmtApiAccessToken}"
  ],
  ]);

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
  echo "cURL Error #:" . $err;
  } else {
  echo $response;
  }

  ```

  ```python Python theme={null}
     import http.client

  conn = http.client.HTTPSConnection("")

  headers = { 'authorization': "Bearer {yourMgmtApiAccessToken}" }

  conn.request("PUT", "/{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke", headers=headers)

  res = conn.getresponse()
  data = res.read()

  print(data.decode("utf-8"))

  ```

  ```ruby Ruby theme={null}
     require 'uri'
  require 'net/http'
  require 'openssl'

  url = URI("https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke")

  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER

  request = Net::HTTP::Put.new(url)
  request["authorization"] = 'Bearer {yourMgmtApiAccessToken}'

  response = http.request(request)
  puts response.read_body

  ```
</AuthCodeGroup>

| Valeur                  | Description                                                                                                                                                                                                               |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `YOUR_KEY_ID`           | ID de la clé de signature à révoquer. Pour savoir comment trouver l’ID de votre clé de signature, consultez [Trouver les ensembles de clés Web JSON](/docs/fr-ca/secure/tokens/json-web-tokens/locate-json-web-key-sets). |
| `MGMT_API_ACCESS_TOKEN` | [Jeton d’accès pour la Management API](https://auth0.com/docs/api/management/v2/tokens) avec la portée `update:signing_keys`.                                                                                             |

<div id="learn-more">
  ## Pour en savoir plus
</div>

* [Faire pivoter les clés de signature](/docs/fr-ca/get-started/tenant-settings/signing-keys/rotate-signing-keys)
* [Afficher les certificats de signature](/docs/fr-ca/get-started/tenant-settings/signing-keys/view-signing-certificates)
* [Modifier les algorithmes de signature de l’application](/docs/fr-ca/get-started/applications/change-application-signing-algorithms)
