1.2. Authorization#
Authorization yetkilendirme
Yetenekler#
Bu uygulama temelde kullanıcıların yetkilendirilmesini ve yetkilerinin çekilmesini sağlayan uygulamadır.
İstek Yaşam Döngüsü(Request Lifecycle)#
Authorization istek yaşam döngüsü yukarıdaki adımlardan oluşmaktadır.
- Sistemde giriş işlemi başarılı yapıldıktan sonra authorization uygulamasına session'ın ihtiyaç duyduğu bilgileri eklemek için istek gönderir.
- Kullanıcı güvenlik ve yetki kontrolü (security check) yapılır.
- Kontrol başarılı ise bir sonraki adıma geçilir. Değil ise 6.adım ile kullanıcı hata mesajı ile bilgilendirilir.
- Veri kaynağından bilgiler doğrulanarak authorization işlemi gerçekleştirilir.
- Sonuç authorization uygulamasına dönülür.
- Bu adımlar başarılı şekilde gerçekleşmiş ise talep edilen veri ve sonuç bilgisi ile kullanıcıya iletilir. Adımlardan birinde meydana gelecek hata durumunda, hata cevaba eklenerek kullanıcı tarafına iletilir.
Kullanıcıların Sisteme Kayıt Olması#
Kullanıcıların sisteme arayüz üzerinden kayıt olabilmeleri sağlanmaktadır. Bu sayede kullanıcılar kayıt ekranından kendi kullanıcılarını oluşturarak sisteme giriş yapabilirler. Kullanıcı kaydı işlemleri aşağıdaki adımlardan oluşmaktadır.
- Kullanıcılar "Giriş Yap" ekranında "Üye Ol" seçeneği ile kullanıcı kaydı ekranına erişebilirler.
- Kullanıcı email bilgisi ile birlikte kayıt olma isteğinde bulunur.
- Sistem bu maile karşılık bir doğrulama kodu oluşturur ve bu kayıt Redis'te tutulur.
- İlgili mail adresine bir link iletilir ve kullanıcı bu linke tıklayarak aktivasyon gerçekleştirir (Üretilmiş olan kod ve mail ile kullanıcı doğrulanmış olur).
- Kullanıcı kaydı ekranına yönlendirilen kullanıcı bilgilerinin doldurarak kayıt işlemini tamamlar. Bu ekranda girilen bilgiler ile sistemde kullanıcı detay, kullanıcı ve varsayılan profil oluşturulmaktadır.
- Kullanıcıya sisteme giriş yapabileceği linki içeren mail atılır. Kullanıcı yeni oluşturmuş olduğu kullanıcı adı ve şifre bilgileri ile sisteme giriş yapar.
Bu özelliğin aktif olabilmesi için KAFKA_SUPPORT_ENABLED ve AUTHZ_EVENT_ENABLED environmentları 'true' olmalıdır. Aynı zamanda Event ve Notification instance'larına bağımlılığı bulunmaktadır.
Kullanıcı kaydı sırasında mail uzantısı ve seçilebilecek olan kullanıcı tipi setting instance'dan konfigüratif olarak ayarlanabilmektedir. Ayarlardan register_allowed_domain_extensions
ve register_user_detail_types
koduna sahip ayarların değeri *
olarak verildiğinde her değer kabul edilmektedir. Kısıtlama getirilmek istendiği durumda virgül ile istenilen değerlerin belirtilmesi gerekmektedir.
Kullanıcı kaydı özelliği konfigüratif olarak yönetilmektedir. Kullanıcı kaydı aktif/pasifliğini yöneten ayar registration_enabled
koduna sahip ayardır ve setting instance'da initialize edilmiş olması gerekir.
INSERT INTO system.sys_setting (id, created_by, created_at, updated_at, updated_by, uuid, obj_version,
code, description, type_id, field_type, string_value, number_value,
boolean_value)
VALUES (NEXTVAL('system.sys_setting_seq'), 'unknown', CURRENT_DATE, CURRENT_DATE, 'unknown',
'SETTING_UUID_00000000000000000000047',
0, 'registration_enabled', 'registration_enabled', (SELECT id FROM system.sys_setting_type WHERE name = 'SECURITY'), 2, '', 1, 1);