JSON Web Token (JWT), istemci ile sunucu arasında bilgi alışverişinin kimliğini doğrulamak ve yetkilendirmek için kullanılan açık bir web standardıdır. Uygulama oturum açtığında sunucu tarafından ve sonraki isteklerde kullanılmak üzere kodlanmış, dijital olarak imzalanmış bir JWT döndürür. Bu işlem, hem kullanıcının kimliğini doğrular hem de rotalara erişme ve hizmetleri ve kaynakları hesap rollerine göre.
Düşük güven düzeyine sahip ortamlardan gelen API yöntemi çağrıları için Fleet Engine, Uygun bir hizmet hesabı tarafından imzalanan JSON Web Jetonlarının (JWT) kullanımı. Akıllı telefonlar ve tarayıcılar, güven düzeyinin düşük olduğu ortamlara dahildir. JWT tamamen güvenilir bir ortam olan sunucunuzdan kaynaklandığı için JWT imzalanır, şifrelenir ve sonraki sunucu için istemciye iletilir geçerlilik süresi sona erene kadar veya geçerliliğini yitirene kadar işlem gerçekleştiremez. Örneğin, hizmet hesabı rollerinin listesi için Fleet Engine hizmet hesabı rollerine bakın Fleet Engine Basics (Filo Motoru Temel Bilgileri) bölümüne göz atın.
Buna karşılık, arka ucunuzun Fleet Engine'e karşı kimlik doğrulaması ve yetkilendirme yapması gerekir. standart Uygulama Varsayılan Kimlik Bilgilerini kullanarak mekanizmalar.
API anahtarlarından farklı olarak JWT'ler kısa ömürlüdür ve işlemleri yalnızca rolün gerçekleştirme yetkisine sahip olanlarla sınırlandırır. JWT'ler hakkında daha fazla bilgi için bkz. JSON Web Jetonlar'da bulabilirsiniz. Erişim rolleriyle ilgili ayrıntılar için Hizmet hesap rollerini inceleyebilirsiniz.
JWT öğeleri
JWT'ler bir başlık ve hak talebi bölümü içerir. Başlık bölümünde Örneğin, hizmet hesaplarından alınan özel anahtar ve şifreleme algoritmasıdır. Hak talebi bölümünde JWT'nin zaman, geçerlilik süresi, JWT'nin talep ettiği hizmetleri kapsam erişimi için erişim ve diğer yetkilendirme bilgileri; şunun için: Örneğin, teslimat aracının kimliği.
Aşağıdaki tabloda, genel olarak JWT alanları hakkında açıklayıcı ayrıntılar verilmiştir: ve bu öğelerin değerlerini nerede bulabileceğinizle ilgili alanları oluşturun.
Alan |
Açıklama |
---|---|
Alg |
Kullanılacak algoritma. "RS256". |
typ |
Jetonun türü. "JWT". |
çocuk |
Hizmet hesabınızın özel anahtar kimliği. Bu değeri
Hizmet hesabı JSON dosyanızın |
Alan |
Açıklama |
---|---|
iss |
Hizmet hesabınızın e-posta adresi:
Hizmet hesabı JSON dosyanızın |
yerine girdi |
Hizmet hesabınızın e-posta adresi:
Hizmet hesabı JSON dosyanızın |
Aud |
Hizmet hesabınızın |
iat |
JWT'nin oluşturulduğu zaman damgası (saniye cinsinden belirtilir)
geçen süre: 00:00:00 |
exp |
JWT'nin süresinin dolacağı zaman damgası (geçen saniye cinsinden belirtilir)
|
yetkilendirme |
Kullanım alanına bağlı olarak Görev kimlikleri belirtiliyorsa yetkilendirme kapsamı tek bir alanda bir dizi olmalıdır şu biçimlerdeki gibidir: "taskids": ["task_id_one","task_id_two"]
veya "taskids": ["*"] |
Fleet Engine JWT talepleri
Fleet Engine, gizli hak talepleri kullanır. Gizli hak taleplerini kullanmak, kendi verilerine erişebilir.
Örneğin, sunucunuz bir sürücünün mobil cihazı için bir JSON Web Jetonu yayınladığında
vehicleid
hak talebini veya
Sürücü araç kimliğinin değeriyle deliveryvehicleid
hak talebinde bulunun. Ardından,
JWT'ler sürücü rolüne bağlı olarak yalnızca belirli bir araç için erişimi etkinleştirir
Kimliği (başka bir rastgele araç kimliği değil).
Fleet Engine, aşağıdaki gizli hak taleplerini kullanır:
İstek üzerine geziler
-
vehicleid
:- Sürücü SDK'sı, seyahatte çalışıyor olsun ya da olmasın, her zaman bu hak talebini kullanır. veya araç. Fleet Engine arka ucu, aracın .
- JWT hem aracı hem de seyahati kapsayabilir işlemlerini gerçekleştirmeniz (gerekmese bile) ve bu da JWT imzalama sürecini bazı ipuçları vereceğim.
-
tripid
:- Tüketici SDK'sı her zaman bu hak talebini kullanır.
- JWT hem araç hem de seyahat operasyonlarını kapsayabilir. gerekmese bile, bu işlem jeton imzalama sürecini basitleştirebilir. bazı ipuçları vereceğim.
Planlanmış görevler
-
deliveryvehicleid
Teslimat başına araç başına arama yaparken kullan API'ler.
-
taskid
Görev başına API çağrısı yaparken kullanın.
-
taskids
Arama yaparken kullan
BatchCreateTasksAPI
Bu iddia dizi biçiminde olmalıdır. Ayrıca dizi, isteği gönderin.delivervehicleid
eklemeyin,trackingid
veyataskid
hak talebi. -
trackingid
GetTaskTrackingInfoAPI
Hak talebi, izleme ile eşleşmelidir İstekteki kimlik.delivervehicleid
eklemeyin,taskid
veyataskids
hak talebi.
Sırada ne var?
- Fleet Engine güvenlik tasarımı hakkında bilgi edinin ve kimlik doğrulama akışı.
- Sunucunuzdan JSON Web Jetonları'nın nasıl düzenleneceğini öğrenin.