Crowdin uygulamasının Crowdin’den gelen verilerle çalıştığı (yani yetkilendirmeyi authorization_code
aracılığıyla kullanır) 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:
authorization_code
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, bir modül sayfasını açmak için Crowdin tarafından kullanılan URL’nin bir örneğini inceleyebilirsiniz.
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. |