Page 89 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 89
Kimlik Doğrulama Altyapılarının Kullanımı | 89
9.2. TGC Içeriği
CAS sunucusu, SSO oturumu boyunca giriş durumunu sağlamak için TGT’yi kullanır. Redis’te bu değer
TGT-1-xyz-denizg-l tarzındayken, TGC çerezi içerisinde JWT olarak tutulmaktadır. Bunun nedeni, CAS
sunucusu TGT’yi tarayıcıya göndermeden önce, güvenliğini sağlamak için JWT oluşturarak, TGT’yi
JWT payload içerisine koyar, daha sonra imzalar, daha sonra da JWT payload’ını şifreler. Eğer bu
şifreleme anahtarı ve imzalama anahtarı tanımlanmazsa, CAS uygulama ayağa kalkma aşamasında
kendi otomatik olarak anahtarlar oluşturur.
WARN [--.] - Secret key for encryption is not defined. CAS will auto-generate
the encryption key
WARN [--.] - Generated encryption key ABC of size --. The generated key MUST be
added to CAS settings
Birçok sunuculu ortamda çalışırken, tüm sunucular aynı anahtarları kullanmalıdır, aksi takdirde
tanımlanmazsa her sunucu kendi şifreleme/imzalama anahtar ikilisini üretecek ve her sunucu
birbirinden farklı anahtarları kullanacaktır. Bu durumda, bir sunucuda üretilen TGT, diğer sunucuya
geldiğinde kullanılamayacak ve dahası, var olan TGT silinerek yerine boş bir TGT gönderilecektir.
cas.tgc.crypto.signing.key=dasdasd
cas.tgc.crypto.encryption.key=dasdad
cas.tgc.crypto.enabled=true
9.3. CAS Bilet Kaydı (Ticket Registry)
Biletler (tickets), Spring Data Redis yardımıyla Redis’te saklanır. Bu sayede, çok sunuculu ortamda,
her bir sunucu, aynı bilet üzerinde işlem yapabilir. Bu biletler için anahtar isimleri, CAS:Ticket ile
başlar.
cas.ticket.registry.redis.sentinel.master=redis-cluster cas.ticket.registry.
redis.sentinel.node[0]=10.x.y.z:26379 cas.ticket.registry.redis.sentinel.
node[1]=10.x.y.z:26379 cas.ticket.registry.redis.sentinel.node[2]=10.x.y.z:26379
cas.ticket.registry.redis.password=test-sifre
9.4. Yüksek Erişilebilirlik
Yüksek erişilebilirliğin (high availability) sağlanması için CAS’ın küme (clustered) biçimde tasarlanması
önerilmektedir.