コンテンツにスキップ

認証

Restorm には「認証タイプ」のドロップダウンはありません。代わりに、もっと汎用的な仕組みがあります。 それが 認証リクエスト で、他のリクエストのためにヘッダーを生成することを役割とする、独立した 1 つのリクエストです。

利点は、どんな認証方式でもモデル化できることです。 2 段階のやり取り、署名付きトークン、自社製 API など、ドロップダウンでは想定されていない方式も表現できます。 欠点は、一度だけ自分で書く必要があることです。

変数フォルダー を右クリックし、 追加 ▸ 認証リクエスト を選びます。

まず、通常の HTTP リクエストと同じように呼び出しを設定します(メソッド、URL、ヘッダー、ボディ)。 次に、認証固有の 3 つの設定を持つ Configuration タブを開きます。

認証リクエストの Configuration タブ。生成されるヘッダー、秒単位の有効期限、認証エラーコードという 3 つのセクションが表示されています

このルートを参照するすべてのリクエストに注入されるヘッダーの一覧です。 各値は、認証リクエストの レスポンスボディに対して評価される式 です。

ヘッダー
Authorization{{token_type}} {{access_token}}

こちらも同じくレスポンスボディに対して評価される式で、有効期間を秒数で返します。 通常は {{expires_in}} です。 空のままにすると、トークンは自動的に失効しません。

このルートを使うリクエストがこれらの HTTP ステータスを受け取ると、 トークンの更新と自動リトライ が実行されます。 既定値は 401403 です。

認証リクエスト は、ツリー内で作成する要素そのものです。 認証ルート は、それを添付するセレクターの中で、別のリクエストから見たときの同じ要素です。 2 つの用語はインターフェイス上の 2 か所で使われますが、同じ実体を指しています。

リクエストにルートを添付する

Section titled “リクエストにルートを添付する”

リクエストのタブの smartbar にある 認証ルート セレクターに、その変数フォルダーのルートが一覧表示されます。 既定のラベルは 認証なし です。

添付すると、送信のたびに生成されたヘッダーが注入され、トークンは失効するまでキャッシュされ、 401 を受け取ると透過的に更新されます。

Bearer / OAuth 2 クライアントクレデンシャル

Section titled “Bearer / OAuth 2 クライアントクレデンシャル”

リクエスト:POST https://auth.exemple.test/oauth/token、ボディは x-www-form-urlencodedgrant_type=client_credentialsclient_id={{clientId}}client_secret={{clientSecret}} (シークレットは Secret 型の値)。

生成されるヘッダー:Authorization = {{token_type}} {{access_token}}。 有効期限:{{expires_in}}

認証情報がすでに手元にあるなら、リクエストは不要です。 リクエスト(またはフォルダー)にヘッダーを直接置くだけで済みます。

Authorization = Basic {{base64Encode (append (append user ":") password)}}

ヘッダーまたはクエリパラメーターが 1 つあれば十分です。 X-API-Key = {{apiKey}}(キーは Secret 型の変数)。

2 回の呼び出しで取得するトークン

Section titled “2 回の呼び出しで取得するトークン”

シナリオ を作成します。 1 回目の呼び出し、中間コードの抽出、2 回目の呼び出しの後、変数を設定 で実行変数にトークンを格納します。 シナリオの後続リクエストは {{token}} でそれを読み取ります。

仕様をインポートすると、宣言されているセキュリティスキームが あらかじめ配線された ヘッダーやパラメーターに変換され、環境変数も自動的に作成されます。

仕様内のスキームRestorm が配置するもの
apiKey(ヘッダーまたはクエリ)スキーム名を付けた組み合わせ。値は {{<schema>}}
http / basicAuthorization: Basic {{<schema>_credentials}}
http / beareroauth2openIdConnectAuthorization: Bearer {{<schema>_token}}

あとは変数に値を入れるだけです。 自動更新が必要な場合は、認証ルートに置き換えてください。

プロトコルごとのネイティブな認証情報

Section titled “プロトコルごとのネイティブな認証情報”

一部のプロトコルは HTTP ヘッダーを使いません。 その認証情報はリクエスト自体のフィールドになります。

プロトコルフィールド
MQTTusernamepassword、クライアント ID
AMQPusernamepassword、vhost
Redispassword
KafkaSASL メカニズム(plainscram-sha-256scram-sha-512)、ユーザー名、パスワード、TLS
STOMPCONNECT の login ヘッダーと passcode ヘッダー
gRPC呼び出しのメタデータ

これらのパスワードはいずれも Secret 型の値を受け付けます。