JSON Web Jetonları

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.

JWT başlık alanları

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 private_key_id alanı. Marka doğru izin düzeyine sahip bir hizmet hesabından anahtar kullandığınızdan emin olun.

JWT hak talebi alanları

Alan

Açıklama

iss

Hizmet hesabınızın e-posta adresi: Hizmet hesabı JSON dosyanızın client_email alanı.

yerine girdi

Hizmet hesabınızın e-posta adresi: Hizmet hesabı JSON dosyanızın client_email alanı.

Aud

Hizmet hesabınızın SERVICE_NAME, bu örnek için https://fleetengine.googleapis.com/

iat

JWT'nin oluşturulduğu zaman damgası (saniye cinsinden belirtilir) geçen süre: 00:00:00 UTC, January 1, 1970. Eğiklik için 10 dakika bekleyin. Zaman damgası çok geçmişte veya gelecekte ise sunucu bir hata bildirebilir.

exp

JWT'nin süresinin dolacağı zaman damgası (geçen saniye cinsinden belirtilir) 00:00:00 UTC, January 1, 1970 tarihinden beri. İstek, zaman damgası bir saatten daha ileride.

yetkilendirme

Kullanım alanına bağlı olarak deliveryvehicleid, trackingid, taskid veya taskids.

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 veya taskid hak talebi.

  • trackingid

    GetTaskTrackingInfoAPI Hak talebi, izleme ile eşleşmelidir İstekteki kimlik. delivervehicleid eklemeyin, taskid veya taskids hak talebi.

Sırada ne var?