JSON ウェブトークン

JSON Web Token(JWT)はオープンウェブ標準であり、認証と認可に使用される クライアントとサーバー間の情報交換を認可します。アプリが ユーザーがまず適切なロール認証情報でログインすると、サーバーは 後続のリクエストで使用するために、エンコードされたデジタル署名された JWT を返します。 このプロセスは、ユーザーの認証とルートへのアクセスの許可の両方を行います。 リソースに対して IAM ロールを付与します。

Fleet Engine では、Fleet Engine で署名された JSON Web Token(JWT)を使用する必要があります。 API メソッド呼び出しに適切なサービス アカウントを使用する 環境をご覧ください。信頼性の低い環境には、スマートフォンやブラウザが含まれます。JWT 完全に信頼できる環境であるサーバー上で行われます。JWT 署名、暗号化され、後続のサーバーのためにクライアントに渡されます。 インタラクションは、期限切れになるか無効になります。

バックエンドでは、次のコマンドを使用して Fleet Engine に対する認証と認可を行う必要があります。 標準のアプリケーションのデフォルト認証情報メカニズムを使用します。製造元 適切なサービス アカウントで署名された JWT を使用してください。1 つの サービス アカウントのロールのリストについては、Fleet Engine サービス アカウントのロールをご覧ください。 (Fleet Engine Basics)をご覧ください。

API キーとは異なり、JWT は存続期間が短いため、オペレーションは API キーにしか そのロールに実行が許可されていることを 判断しますJWT の詳細については、JSON Web トークン」をご覧ください。アクセスロールの詳細については、サービス アカウントの役割をご覧ください。

JWT 要素

JWT にはヘッダーとクレーム セクションが含まれています。header セクションには、 秘密鍵の情報(サービス アカウントから取得した秘密鍵)と 暗号化アルゴリズムで行われます。クレーム セクションには、JWT の 作成時間、有効期間、JWT がクレームするサービス アクセス権、およびアクセスの範囲を特定するためのその他の認可情報。 配送車両 ID などです。

次の表に、JWT フィールドの一般的な説明を示します。 それぞれの値を確認する場所についての Fleet Engine Cloud プロジェクトの Cloud Storage バケットに保存できます

JWT ヘッダー フィールド

フィールド

説明

alg

使用するアルゴリズム。`RS256`。

標準

トークンのタイプ。JWT。

子供

サービス アカウントの秘密鍵 ID。この値は サービス アカウント JSON ファイルの private_key_id フィールド。製造元 適切なレベルの権限を持つサービス アカウントのキーを使用してください。

JWT クレーム フィールド

フィールド

説明

iss

サービス アカウントのメールアドレス。 サービス アカウント JSON ファイルの client_email フィールド。

Pub/Subです

サービス アカウントのメールアドレス。 サービス アカウント JSON ファイルの client_email フィールド。

AUD

サービス アカウントの SERVICE_NAME この場合は https://fleetengine.googleapis.com/

iat

JWT 作成時のタイムスタンプ(秒単位で指定します) 00:00:00(UTC, January 1, 1970)から経過しています。スキューには 10 分かかります。 タイムスタンプが古すぎる、または未来すぎる場合は、 サーバーがエラーを報告する可能性があります。

exp

JWT が期限切れになるときのタイムスタンプ(経過時間(秒)) 00:00:00 UTC, January 1, 1970以降。次の場合、リクエストは失敗します。 タイムスタンプが 1 時間以上先になっています。

authorization

ユースケースに応じて、deliveryvehicleidtrackingidtaskid、または taskids

Fleet Engine JWT クレーム

Fleet Engine はプライベート クレームを使用します。非公開クレームを使用すると、 自分のデータにアクセスできます。

たとえば、サーバーがドライバーのモバイル デバイスの JSON Web Token を発行し、 vehicleid クレームまたは そのドライバーの車両 ID の値を含む deliveryvehicleid クレーム。次に、 ドライバーのロールに応じて、JWT は特定の車両のみにアクセスを許可する その他の任意の車両 ID は使用できません。

Fleet Engine は、次のプライベート クレームを使用します。

オンデマンドの賃走

  • vehicleid:
    • Driver SDK は、ルート上であるかどうかに関係なく、常にこのクレームを使用します。 できます。Fleet Engine バックエンドは車両が走行中の状態を 関連付けられます。
    • サービス プロバイダとして、このクレームに「*」を付けます。すべてに一致 あります。なお、JWT は車両とルートの両方に対応できることに注意してください。 これにより、JWT 署名が簡素化される可能性があります。 説明します。
  • tripid:
    • Consumer SDK は常にこのクレームを使用します。
    • サービス プロバイダとして、このクレームに「*」を付けて使用します。すべてに一致 移動しますなお、JWT は車両とルートの両方のオペレーションに対応できます。 トークンの署名が簡単になる可能性があります。 説明します。

スケジュール設定されたタスク

  • deliveryvehicleid

    配達車両ごとに電話をかけるときに使用 API

  • taskid

    タスクごとの API を呼び出すときに使用します。

  • taskids

    通話中に使用 BatchCreateTasksAPI。このクレームは配列形式である必要があります 配列にはタスク ID をすべて含めて リクエストできます。delivervehicleid は含めないでください。 trackingid、または taskid 個のクレーム。

  • trackingid

    GetTaskTrackingInfoAPI。申し立てはトラッキングと一致している必要があります リクエスト内の ID。delivervehicleid は含めないでください。 taskid、または taskids 個のクレーム。

次のステップ