Crowdin uygulamasının Crowdin’den gelen verilerle çalıştığı (yani crowdin_app
aracılığıyla yetkilendirmeyi kullandığı) durumlarda yüksek seviyede güvenlik sağlamak için bir güvenlik mekanizması geliştirdik. Bu güvenlik mekanizmasının ana prensibi, Crowdin ile Crowdin uygulaması arasındaki JWT belirtecinin takasına dayanmaktadır. JWT belirteci, sadece son iki tarafça bilinen bir OAuth İstemci Gizli Anahtarı ile imzalanır. Bu şekilde Crowdin uygulaması, sayfanın tam olarak Crowdin’de açıldığına dair bir onay alabilir.
Yetkilendirme ve kimlik doğrulamayı Crowdin uygulamanızda uygulamak için şu adımları izleyin:
crowdin_app
aracılığıyla uygulama tanımlayıcınıza ekleyin ve yetkilendirme için kullanılacak OAuth İstemci Kimliğini ekleyin.Yukarıdaki yöntemleri kullanarak, Crowdin uygulamasına yapılan her istekte, Crowdin, OAuth’tan gelen bir gizli anahtar ile doğrulanabilen bir güvenlik belirteci ile birlikte bir dizi parametre geçirecektir.
Aşağıda Crowdin tarafından bir modül sayfasını açmak için kullanılan URL’nin bir örneğini görebilirsiniz.
Sorgu parametreleri:
jwtToken | Tür: Açıklama: Yetkilendirme için kullanılan JWT belirteci. |
origin | Tür: Açıklama: Modül sayfasını açmak için kullanılan anamakine. |
clientId | Tür: Açıklama: Yetkilendirme için kullanılan OAuth İstemcisinin kimliği. |
En iyi uygulama, her isteğin geçerli bir imzası ve süresi dolan bir belirteci olup olmadığını doğrulamak için Crowdin uygulamasına ara yazılım eklemek olacaktır. Belirtecin özgünlüğünü doğrulamak için varolan kütüphanelerden birini kullanabilirsiniz.
JWT belirteci aşağıdaki bölümlerden oluşur:
JWT belirteç yükü örneği:
{
"aud": "Br4a2hpQiNW96anuuO4a",
"sub": "1",
"domain": null,
"context": {},
"iat": 1600000000,
"exp": 1600000900
}
Özellikler:
aud | Tür: Açıklama: Belirteci veren OAuth İstemcisinin kimliği. |
sub | Tür: Açıklama: Crowdin uygulamasına istekte bulunan kullanıcının tanımlayıcısı. |
domain | Tür: Zorunlu: evet Açıklama: Uygulamaya erişen kuruluşun adı. Crowdin için etki alanı değeri her zaman |
context | Tür: Açıklama: Crowdin uygulaması modülünün açıldığı ortamla ilgili bilgiler (örn. proje, yerel ayar, kullanıcının saat dilimi vb.). |
iat | Tür: Açıklama: Belirtecin verilme zamanını tanımlar. |
exp | Tür: Açıklama: Belirtecin sona erme zamanını tanımlar. |