署名鍵を取り消す

Auth0 DashboardManagement APIを使って、テナントのアプリケーションの署名鍵を取り消すことができます。署名鍵は、アプリケーションやAPIに送信されたIDトークン、アクセストークン、SAMLアサーション、およびWS-Fedアサーションを署名するのに使用されます。詳細については、「署名鍵」をお読みください。

前提条件

  • 以前使用された署名鍵を取り消す前に、必ず署名鍵をローテーションしなければなりません。詳細については、「署名鍵をローテーションする」または以下の「署名鍵をローテーションして取り消す」セクションをお読みください。

  • 以前の鍵を取り消す前に、必ず、新しい鍵でアプリケーションやAPIを更新してください。

Dashboardを使用する

以前に使用していた署名鍵を取り消す

  1. [Dashboard] > [Settings(設定)] > [Signing Keys(署名鍵)]に移動します。

  2. [List of Valid Keys(有効な鍵のリスト)]セクションで、[Previously Used(以前に使用していた)]鍵に移動し、詳細オプション((「...」)メニューから[Revoke Key(鍵を取り消す)]を選択します。[List of Valid Keys(有効な鍵のリスト)]セクションには、テナントで現在使用されている署名鍵に加えて、署名鍵のローテーションで次に使用される署名鍵がリストされています。以前に署名鍵をローテーションしたことがある場合には、以前に使用されていた署名鍵もリストに含まれます。[List of Revoked Keys(取り消された鍵のリスト)]セクションには、テナントで最近取り消された3つの署名鍵がリストされます。

  3. [Revoke(取り消す)]を選択して確認します。

署名鍵をローテーションして取り消す

  1. [Dashboard] > [Settings(設定)] > [Signing Keys(署名鍵)]に移動します。

  2. [Rotation Settings(ローテーションの設定)]セクションで、 [Rotate & Revoke Signing Key(署名鍵のローテーションと取り消し)]セクションに移動し、[Rotate & Revoke Key(鍵のローテーションと取り消し)]を選択します。

  3. [Rotate & Revoke(ローテーションと取り消し)]を選択して確認します。

Management APIの使用

  1. 署名鍵のリストを取得するには、全アプリケーション署名鍵の取得エンドポイントにGET呼び出しを行います。

  2. 鍵のIDでアプリケーションの署名鍵取り消しエンドポイントにPUT呼び出しを行います。{yourKeyId}{yourMgmtApiAccessToken}のプレースホルダーの値を、それぞれ署名鍵IDとManagement APIのアクセストークンに置き換えてください。

    
    
    curl --request PUT \
      --url 'https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke' \
      --header 'authorization: Bearer {yourMgmtApiAccessToken}'

    Was this helpful?

    /
    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);

    Was this helpful?

    /
    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))
    
    }

    Was this helpful?

    /
    HttpResponse<String> response = Unirest.put("https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke")
      .header("authorization", "Bearer {yourMgmtApiAccessToken}")
      .asString();

    Was this helpful?

    /
    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);
    });

    Was this helpful?

    /
    #import <Foundation/Foundation.h>
    
    NSDictionary *headers = @{ @"authorization": @"Bearer {yourMgmtApiAccessToken}" };
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke"]
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:10.0];
    [request setHTTPMethod:@"PUT"];
    [request setAllHTTPHeaderFields:headers];
    
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                                completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                    if (error) {
                                                        NSLog(@"%@", error);
                                                    } else {
                                                        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                        NSLog(@"%@", httpResponse);
                                                    }
                                                }];
    [dataTask resume];

    Was this helpful?

    /
    $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;
    }

    Was this helpful?

    /
    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"))

    Was this helpful?

    /
    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_NONE
    
    request = Net::HTTP::Put.new(url)
    request["authorization"] = 'Bearer {yourMgmtApiAccessToken}'
    
    response = http.request(request)
    puts response.read_body

    Was this helpful?

    /
    import Foundation
    
    let headers = ["authorization": "Bearer {yourMgmtApiAccessToken}"]
    
    let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/keys/signing/%7ByourKeyId%7D/revoke")! as URL,
                                            cachePolicy: .useProtocolCachePolicy,
                                        timeoutInterval: 10.0)
    request.httpMethod = "PUT"
    request.allHTTPHeaderFields = headers
    
    let session = URLSession.shared
    let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
      if (error != nil) {
        print(error)
      } else {
        let httpResponse = response as? HTTPURLResponse
        print(httpResponse)
      }
    })
    
    dataTask.resume()

    Was this helpful?

    /
    説明
    YOUR_KEY_ID 取り消す署名鍵のID。署名鍵IDを見つける方法については、「JSON Web鍵セットを見つける」を参照してください。
    MGMT_API_ACCESS_TOKEN スコープupdate:signing_keysを持つManagement APIのアクセストークン

もっと詳しく