コンテンツにスキップ

CLIを使用してCloudflare Accessを介して接続する

Last reviewed: over 3 years ago

Cloudflareのcloudflaredコマンドラインツールを使用すると、Cloudflare Accessによって保護されたエンドポイントと対話できます。cloudflaredを使用して、保護されたアプリケーションのAPIと対話することができます。

これらの手順は、APIに対して実行するサービスの設定を目的としたものではありません。この例のトークンはユーザーのアイデンティティに合わせて調整されており、コマンドラインツールを介してAPIと対話するエンドユーザーのみに意図されています。

このウォークスルーでは、以下の内容をカバーします:

  • CLIからCloudflare Accessによって保護されたリソースに接続する方法

完了までの時間:

30分


コマンドラインからセッションを認証する

cloudflaredをインストールしたら、Cloudflare Accessのアプリケーショントークンを取得するために使用できます。このウォークスルーでは、保護されたAPIの代わりにドメインexample.comを使用します。

  1. トークンを生成するには、次のコマンドを実行します:

    Terminal window
    cloudflared access login https://example.com

    このコマンドを実行すると、cloudflaredはウェブアプリケーションにアクセスしようとしたときに見つかるのと同じAccessログインページを含むブラウザウィンドウを起動します。

  2. アイデンティティプロバイダーを選択し、ログインします。

ブラウザウィンドウが起動しない場合は、コマンドラインに自動的に印刷されるユニークなURLを使用できます。

  1. 認証に成功すると、ブラウザはトークンをcloudflaredに暗号化された転送で返し、保存します。

トークンは、Access管理者によって設定されたセッションの持続時間の間有効です。

APIにアクセスする

トークンを取得したら、保護されたAPIにアクセスできます。cloudflaredコマンドラインツールには、データをcurl経由で転送するためのラッパーが含まれており、URL構文を使用します(詳細については、curl GitHubプロジェクトを参照してください)。ラッパーは、トークンをクエリ引数名_token_としてcurlリクエストに注入します。ラッパーを次のように呼び出すことができます:

Terminal window
cloudflared access curl http://example.com

リクエストにトークンを含めるために、cloudflaredとともにputコマンドを使用することも可能です。

他の利用可能なコマンドについては、読み進めてください。

利用可能なコマンド

login

loginコマンドは、Accessの背後にあるアプリケーションのログインフローを開始します。

Terminal window
cloudflared access login http://example.com

curl

curlコマンドは、クライアントラッパーを呼び出し、リクエストにトークンを自動的に含めます。

Terminal window
cloudflared access curl http://example.com

token

tokenコマンドは、他のコマンドラインツールで使用するために、その特定のアプリケーションにスコープされたトークンを取得します。

Terminal window
cloudflared access token -app=http://example.com

トークンを環境変数として使用する

保護されたアプリケーションにアクセスするスクリプトでの便利さと簡潔さのために、トークンを環境変数として保存することが可能です。

トークンを環境変数として設定するには、次のようにします:

  1. 次のコマンドを実行して、トークンをシェル環境にエクスポートします:

    Terminal window
    export TOKEN=$(cloudflared access token -app=http://example.com)
  2. 次のコマンドでトークンが保存されたことを確認します:

    Terminal window
    echo $TOKEN

トークンを環境にエクスポートしたら、スクリプト内でCloudflare Accessリクエストヘッダーとともに変数を使用して、保護されたエンドポイントにアクセスします。以下の例のように:

Terminal window
curl -H "cf-access-token: $TOKEN" https://example.com/rest/api/2/item/foo-123