Server-to-Server OAuth | ドキュメント | Threat Intelligence API | WhoisXML API

Server-to-Server OAuth

APIをリクエストする際には、server-to-server OAuthを使用して認証してください。これは、認証や認可にユーザーとの対話を必要としない2段階のプロセスフローを使用するため、2本足のOAuthとしても知られています。以下がそのフローです。

  • Server-to-server OAuthクライアントがWhoisXML APIの認証サーバーにアクセストークンをリクエストします。
  • クライアントはこのアクセストークンを使ってAPIリクエストを行います。

また、WHOIS APIをServer-Side SSOで使用する方法の例として、GitHubにあるこのスクリプトを確認することもできます。

アクセストークンの生成

accessTokenというグラントタイプを使用してアクセストークンを生成します。このグラントタイプの特徴は以下の通りです:

  • トークンの有効時間は、1800秒(30分)、3600秒(1時間)、7200秒(2時間)、10800秒(3時間)のいずれかです。初期値は3600秒(1時間)です。
  • リフレッシュトークンがありません。
  • 複数のアクセストークンを生成して使用することができます。
  • 新しいAPIキーが生成されると、以前に生成されたアクセストークンはすべて無効になります。
  • 生成されたアクセストークンは、アクセス権を持つ全ての商品に対して有効です。

APIリクエストでは生成されたaccessTokenが apiKeyパラメータの代わりに使用されます。

APIエンドポイント

POST https://main.whoisxmlapi.com/oauth/token
curl --location 'https://main.whoisxmlapi.com/oauth/token' \
--header 'Authorization: Bearer %base64_encoded_API_key%' \
--header 'Content-Type: application/json' \
--data '{
    "grantType": "access_token",
    "expiresIn": 7200
}'

ヘッダー

権限付与

必須。Base64にエンコードされたAPIキー。

認証スキーム:Bearer。

My productsページでAPIキーを取得してください。

入力パラメータ

グラントタイプ

必須。アクセストークンを生成するためのグラントタイプ。

利用可能な値:access_token

expiresIn

任意。アクセストークンの有効期間(秒)。

使用可能な値:1800, 3600, 7200, 10800

初期値:3600

outputFormat

任意。応答の出力形式。

使用可能な値:JSON|XML

初期値:JSON

応答

{
    "accessToken": "G2OIE2AKRCVDYFUJCV5PXXXXXXXXXXXX",
    "expiresIn": 3600
}

accessToken値を使用してAPIリクエストを認証します。結果の値を、OAuthを使用しない通常のAPIキーと同じようにapiKeyフィールドに代入します。

エラー

{
    "code": 401,
    "messages": "Access restricted. Check the credits balance or enter the correct API key."
}
{
    "code": 422,
    "messages": {
        "grantType": [
            "The selected grant type is invalid."
        ]
    }
}

アクセストークンを使ったcURL WHOIS API GETリクエストの例

curl --location 'https://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=google.com' \ --header 'Authorization: Bearer %accessToken%'

アクセストークンを使ったcURL WHOIS API POSTリクエストの例

curl --location 'https://www.whoisxmlapi.com/whoisserver/WhoisService' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer %accessToken%' \
    --data '{
        "domainName": "google.com"
    }'