JSON Web Jetonları
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
JSON Web Token (JWT), istemci ile sunucu arasındaki bilgi alışverişinin kimliğini doğrulamak ve yetkilendirmek için kullanılan açık bir web standardıdır. Bir uygulama kullanıcısı ilk kez uygun rol kimlik bilgileriyle oturum açtığında sunucu, sonraki isteklerde kullanılmak üzere kodlanmış ve dijital olarak imzalanmış bir JWT oluşturup döndürür.
Bu işlem hem kullanıcının kimliğini doğrular hem de hesap rolüne göre rotalara, hizmetlere ve kaynaklara erişmesine izin verir.
Fleet Engine, düşük güvenli ortamlardan (akıllı telefonlar ve tarayıcılar) gelen API yöntemi çağrıları için JSON Web Jetonlarının (JWT'ler) kullanılmasını gerektirir.
JWT, sunucunuzda oluşturulur, imzalanır, şifrelenir ve süresi dolana veya geçerliliğini yitirene kadar sonraki sunucu etkileşimleri için istemciye iletilir.
Önemli ayrıntılar
API anahtarlarından farklı olarak, JWT'ler kısa ömürlüdür ve işlemleri yalnızca rolün gerçekleştirmesine izin verilen işlemlerle sınırlar. JWT'ler hakkında daha fazla bilgi için Wikipedia'daki JSON Web Jetonları sayfasına bakın. Erişim rolleri hakkında ayrıntılı bilgi için bu kılavuzdaki Hizmet hesabı rolleri bölümüne bakın.
JWT öğeleri
JWT'ler bir başlık ve bir talep bölümü içerir. Başlık bölümünde, hizmet hesaplarından alınan özel anahtar ve şifreleme algoritması gibi bilgiler yer alır. Talep bölümünde, JWT'nin oluşturulma zamanı, geçerlilik süresi, JWT'nin erişim talep ettiği hizmetler ve erişimi kapsamlandırmak için kullanılan diğer yetkilendirme bilgileri (ör. teslimat aracı kimliği) gibi bilgiler yer alır.
Aşağıdaki tabloda, JWT alanları hakkında genel olarak açıklayıcı bilgiler ve bu alanların değerlerini Fleet Engine Cloud projenizde nerede bulabileceğinizle ilgili özel bilgiler verilmektedir.
JWT üstbilgi alanları
Alan |
Açıklama |
alg |
Kullanılacak algoritma. `RS256`. |
typ |
Jetonun türü. `JWT`. |
kid |
Hizmet hesabınızın özel anahtar kimliği. Bu değeri, hizmet hesabınızın JSON dosyasının private_key_id alanında bulabilirsiniz. Doğru izin düzeyine sahip bir hizmet hesabının anahtarını kullandığınızdan emin olun. |
JWT talebi alanları
Alan |
Açıklama |
iss |
Hizmet hesabınızın e-posta adresi. Bu adres, hizmet hesabınızın JSON dosyasının client_email alanında bulunur. |
yerine girdi |
Hizmet hesabınızın e-posta adresi. Bu adres, hizmet hesabınızın JSON dosyasının client_email alanında bulunur. |
aud |
Hizmet hesabınızın SERVICE_NAME ,
bu durumda https://fleetengine.googleapis.com/ |
iat |
JWT'nin oluşturulduğu zaman damgası, 00:00:00 UTC, January 1, 1970 tarihinden itibaren geçen saniye cinsinden belirtilir. Çarpıklık için 10 dakika bekleyin.
Zaman damgası çok geçmişte veya gelecekteyse sunucu bir hata bildirebilir. |
exp |
JWT'nin süresinin dolduğu zaman damgası. 00:00:00 UTC, January 1, 1970 tarihinden itibaren geçen saniye cinsinden belirtilir. Zaman damgası bir saatten fazla gelecekteyse istek başarısız olur. |
yetkilendirme |
Kullanım alanına bağlı olarak deliveryvehicleid , trackingid , taskid veya taskids içerebilir.
Görev kimlikleri belirtiliyorsa yetkilendirme kapsamı aşağıdaki biçimlerden birinde bir dizi olmalıdır:
"taskids": ["task_id_one","task_id_two"]
veya
"taskids": ["*"] |
Fleet Engine JWT talepleri
Fleet Engine, özel talepleri kullanır. Özel talepler kullanıldığında yalnızca yetkili istemciler kendi verilerine erişebilir.
Örneğin, sunucunuz bir sürücünün mobil cihazı için JSON Web Token oluşturduğunda bu jeton, vehicleid
talebini veya sürücünün araç kimliği değerine sahip deliveryvehicleid
talebini içermelidir. Ardından, sürücü rolüne bağlı olarak JWT'ler yalnızca belirli araç kimliği için erişimi etkinleştirir ve diğer rastgele araç kimlikleri için erişimi etkinleştirmez.
Fleet Engine aşağıdaki özel hak taleplerini kullanır:
İsteğe bağlı geziler
-
vehicleid
:
- Sürücü SDK'sı, yolculukta veya araçta çalışırken bu talebi her zaman kullanır. Fleet Engine arka ucu, değişikliği yapmadan önce aracın istenen yolculukla ilişkilendirildiğinden emin olur.
-
JWT, gerekli olmasa bile hem araç hem de yolculuk işlemlerini kapsayabilir. Bu da JWT imzalama uygulamasını basitleştirebilir.
-
tripid
:
- Consumer SDK her zaman bu talebi kullanır.
-
JWT, gerekli olmasa bile hem araç hem de yolculuk işlemlerini kapsayabilir. Bu da jeton imzalama uygulamasını basitleştirebilir.
Planlanmış görevler
-
deliveryvehicleid
Teslimat aracı başına API'ler çağrılırken kullanılır.
-
taskid
Görev başına API'leri çağırırken kullanılır.
-
taskids
Arama yaparken BatchCreateTasksAPI
kullanın. Bu talep dizi biçiminde olmalı ve dizi, isteği tamamlamak için gereken tüm görev kimliklerini içermelidir. delivervehicleid
,
trackingid
veya taskid
iddialarını eklemeyin.
-
trackingid
GetTaskTrackingInfoAPI
ile iletişime geçerken kullanın. Hak talebi, istekteki izleme kimliğiyle eşleşmelidir. delivervehicleid
,
taskid
veya taskids
iddialarını eklemeyin.
Sırada ne var?
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-31 UTC.
[null,null,["Son güncelleme tarihi: 2025-08-31 UTC."],[[["\u003cp\u003eJSON Web Tokens (JWTs) are required for API calls to Fleet Engine from low-trust environments like smartphones and browsers, providing authentication and authorization.\u003c/p\u003e\n"],["\u003cp\u003eJWTs are digitally signed by a service account on your server, a trusted environment, and passed to the client for secure communication with Fleet Engine.\u003c/p\u003e\n"],["\u003cp\u003eJWTs contain header and claim sections with information about the private key, encryption algorithm, token lifespan, and authorized access scopes like vehicle or trip IDs.\u003c/p\u003e\n"],["\u003cp\u003eFleet Engine utilizes private claims within JWTs to ensure data security and limit access to specific resources based on assigned roles and vehicle or task IDs.\u003c/p\u003e\n"],["\u003cp\u003eUnlike API keys, JWTs are short-lived and restrict operations to those permitted by the associated service account role, enhancing security.\u003c/p\u003e\n"]]],[],null,["# JSON Web Tokens\n\nA JSON Web Token (JWT) is an open web standard that's used for authenticating\nand authorizing information exchanges between a client and a server. When an app\nuser first signs in with the appropriate role credentials, the server creates\nand returns an encoded, digitally-signed JWT for use with subsequent requests.\nThis process both authenticates the user and authorizes them to access routes,\nservices, and resources based on their account role.\n\nFleet Engine requires the use of **JSON Web Tokens** (JWTs) for API method calls\nfrom **low-trust environments**: smartphones and browsers.\n\nA JWT originates on your server, is signed, encrypted, and passed to the client\nfor subsequent server interactions until it expires or is no longer valid.\n\n**Key details**\n\n- Use [Application Default Credentials](https://google.aip.dev/auth/4110) to authenticate and authorize against Fleet Engine.\n- Use an appropriate service account to sign JWTs. See [Fleet Engine serviceaccount](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts#fleet_engine_service_account_roles) roles in **Fleet Engine Basics**.\n\nUnlike API keys, JWTs are short lived and limit operations to only those that\nthe role is authorized to perform. For more information on JWTs, see\n[JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) on Wikipedia. For detail on access roles, see\n[Service account roles](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts) in this guide.\n\nJWT elements\n------------\n\nJWTs contain a header and a claim section. The header section contains\ninformation such as the private key obtained from service accounts, and the\nencryption algorithm. The claim section contains information such as the JWT's\ncreate time, time to live, the services that the JWT claims\naccess to, and other authorization information to scope access; for\nexample, the delivery vehicle ID.\n\nThe following table provides descriptive details about JWT fields in general,\nas well as specific information about where you can find the values for these\nfields in your Fleet Engine Cloud project.\n\n| **Field** | **Description** |\n|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| alg | The algorithm to use. \\`RS256\\`. |\n| typ | The type of token. \\`JWT\\`. |\n| kid | Your service account's private key ID. You can find this value in the `private_key_id` field of your service account JSON file. Make sure to use a key from a service account with the correct level of permissions. |\n[JWT header fields]\n\n| **Field** | **Description** |\n|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| iss | Your service account's email address, found in the `client_email` field of your service account JSON file. |\n| sub | Your service account's email address, found in the `client_email` field of your service account JSON file. |\n| aud | Your service account's `SERVICE_NAME`, in this case `https://fleetengine.googleapis.com/` |\n| iat | The timestamp when the JWT was created, specified in seconds elapsed since 00:00:00 `UTC, January 1, 1970`. Allow 10 minutes for skew. If the timestamp is too far in the past, or in the future, the server might report an error. |\n| exp | The timestamp when the JWT expires, specified in seconds elapsed since `00:00:00 UTC, January 1, 1970`. The request fails if the timestamp is more than one hour in the future. |\n| authorization | Depending on the use case, may contain `deliveryvehicleid`, `trackingid`, `taskid`, or `taskids`. If specifying taskids, the authorization scope must be an array in one of the following forms: `\"taskids\": [\"task_id_one\",\"task_id_two\"]` or `\"taskids\": [\"*\"]` |\n[JWT claims fields]\n\n### Fleet Engine JWT claims\n\nFleet Engine uses private claims. Using private claims ensures that only\nauthorized clients can access their own data.\n\nFor example, when your server issues a JSON Web Token for a driver's mobile\ndevice, it should contain either the `vehicleid` claim or the\n`deliveryvehicleid` claim with the value of that driver's vehicle ID. Then,\ndepending on the driver role, JWTs enable access only for the specific vehicle\nID and not any other arbitrary vehicle ID.\n\nFleet Engine uses the following private claims: \n\n### On-demand trips\n\n- **`vehicleid`** :\n - The Driver SDK always uses this claim, whether operating on a trip or vehicle. The Fleet Engine backend assures that the vehicle is associated with the requested trip before doing the modification.\n - The JWT can cover both vehicle and trip operations, even if not required, which may simplify the JWT signing implementation.\n- **`tripid`** :\n - The Consumer SDK always uses this claim.\n - The JWT can cover both vehicle and trip operations, even if not required, which may simplify the token signing implementation.\n\n### Scheduled tasks\n\n- `deliveryvehicleid`\n\n Use when calling per-delivery-vehicle\n APIs.\n- `taskid`\n\n Use when calling per-task APIs.\n- `taskids`\n\n Use when calling\n `BatchCreateTasksAPI`. This claim must be in array form,\n and the array should contain all task IDs necessary to complete the\n request. Don't include `delivervehicleid`,\n `trackingid`, or `taskid` claims.\n- `trackingid`\n\n Use when calling the\n `GetTaskTrackingInfoAPI`. The claim must match the tracking\n ID in the request. Don't include `delivervehicleid`,\n `taskid`, or `taskids` claims.\n\nWhat's next\n-----------\n\n- Read about [Fleet Engine security design](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/security-design) to understand the complete authentication flow.\n- Learn how to [Issue JSON Web Tokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt) from your server."]]