JSON ウェブトークン

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

信頼性の低い環境からの API メソッド呼び出しの場合、Fleet Engine には 適切なサービス アカウントで署名された JSON Web Token(JWT)の使用。 信頼性の低い環境には、スマートフォンやブラウザが含まれます。JWT は、完全に信頼できる環境であるサーバー上で生成されます。JWT は署名され、暗号化され、有効期限が切れるか無効になるまで、その後のサーバーとのやり取りのためにクライアントに渡されます。1 つの サービス アカウントのロールのリストについては、Fleet Engine サービス アカウントのロールをご覧ください。 「Fleet Engine Basics」をご覧ください。

対照的に、バックエンドは Fleet Engine に対して認証と認可を行う必要がある 標準のアプリケーションのデフォルト認証情報を使用 メカニズムです。

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

taskid を指定する場合、認可スコープは 1 つの 次の形式です。

"taskids": ["task_id_one","task_id_two"]

または

"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。delivervehicleidtaskidtaskids の各クレームは含めないでください。

次のステップ