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 バケットに保存できます
フィールド |
説明 |
---|---|
alg |
使用するアルゴリズム。`RS256`。 |
標準 |
トークンのタイプ。JWT。 |
子供 |
サービス アカウントの秘密鍵 ID。この値は
サービス アカウント JSON ファイルの |
フィールド |
説明 |
---|---|
iss |
サービス アカウントのメールアドレス。
サービス アカウント JSON ファイルの |
Pub/Subです |
サービス アカウントのメールアドレス。
サービス アカウント JSON ファイルの |
AUD |
サービス アカウントの |
iat |
JWT 作成時のタイムスタンプ(秒単位で指定します)
00:00:00( |
exp |
JWT が期限切れになるときのタイムスタンプ(経過時間(秒))
|
authorization |
ユースケースに応じて、 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。delivervehicleid
、taskid
、taskids
の各クレームは含めないでください。
次のステップ
- Fleet Engine のセキュリティ設計を参照して、 認証フローについて説明します。
- サーバーから JSON Web Token を発行する方法を学習する。