1. Keysis#
Keysis, içerisinde barındırdığı authentication, authorization ve session uygulamaları ile endüstride kabul görmüş OAuth2 standartlarına uygun kullanıcı yetkilendirme ve yetki validasyonunu sağlayan altyapı bileşenidir. OAuth için tercih edilen Access Token, JWT(Json Web Token)'dır. Token payload kısmında HVL_SESSION_ID ve kullanıcıya ait bir kaç veri (username vb.) barındırır. HVL_SESSION_ID , kullanıcının sistemde varolan session bilgisinin referansıdır.
Uygulamanın sağladığı sınıflara ait javadoc'a buradan ulaşabilirsiniz.
Yetenekler#
- Kullanıcıların sisteme giriş, sistemden çıkış, oturum tazeleme işlemlerini yapabilmelerini sağlar.
- Çok faktörlü kimlik doğrulaması (Multi-factor authentication) olanağı sağlar.
- Kullanıcıların yetki alabilmesini ve aldıkları yetkilerin validasyonlarının yapılabilmesini sağlar.
- Kullanıcıların birden çok pozisyona sahip olmasına olanak sağlar.
- Kullanıcıların arayüzden yetkilendirilmesi ve bu yetkilendirilmeyi kolaylaştıracak ve hızlandıracak gruplama yetenekleri sağlar.
- Yetkilerin devredilebilmesini sağlar.
- Kurum organizasyon şemasına uygun yetkilendirme yapılabilmesini sağlar.
- Kullanıcı profillerinin vekalet verilebilmesini sağlar.
- Kullanıcıların sisteme kayıt olabilmelerini sağlar.
- Third-party ürünler için identity provider olarak kullanılabilmeyi sağlar.(OIDC)
Veri Depolama (Data Storage)#
PostgreSQL (Zorunlu)#
Kullanıcı, profil, role gibi Keysis ürünü tarafından yönetilen, authorization domain verilerini barındıran ilişkisel veri tabanı olarak kullanılmaktadır. Ayrıca Authentication uygulaması eğer RDBMS'i referans gösteren db
profili ile kaldırılırsa, kullanıcı veri kaynağı olarak kullanılır.
LDAP#
Basit İndeks Erişim Protokolü(Lightweight Directory Access Protocol) veya kısaca LDAP, TCP/IP üzerinde çalışan indeks servislerini sorgulama ve değiştirme amacıyla kullanılan uygulama katmanı protokolüdür. OpenLDAP, Sun Directory Server, Microsoft Active Directory en çok bilinen LDAP hizmeti veren indeks sunucularıdır. LDAP tüm kullanıcılarının en hızlı şekilde ve sürekli olarak bilgiye ulaşmalarını sağlayabilmek için hızlı, ölçeklenebilir ve yönetilebilir bir ağ altyapısı kurmak için oluşturulmuştur. Bu sayede kullanıcı bilgilerinin(username, password) doğrulama merkezi olarak da kullanılmaktadır. Authentication uygulaması için kullanıcı veri kaynağı olarak LDAP seçilebilir. Bu durumda authentication uygulaması ldap
profili ile çalıştırılmalıdır.
LDAP Parametreleri#
Değişken Adı | Değeri | Açıklama |
---|---|---|
LDAP_URLS | [endpoint] | Indeks sunucu adres bilgisidir. |
LDAP_USERNAME | [username] | Indeks sunucu authentication username bilgisidir. |
LDAP_PASSWORD | [password] | Indeks sunucu password bilgisidir. |
LDAP_BASE | [domain_controller] | Domamin controller bilgisidir. |
LDAP_TIMEOUT | 10000 | Milisaniye türünden bağlantı kurulabilmesi için verilen maksimum süre bilgisidir. |
LDAP_ATTRIBUTE_OBJECTCLASS_FIELD | objectclass | Indeks sunucu üzerindeki nesne türü bilgisidir. |
LDAP_ATTRIBUTE_OBJECTCLASS_VALUE | user | Indeks sunucu üzerindeki nesne adı bilgisidir. |
LDAP_ATTRIBUTE_USERNAME_FIELD | sAMAccountName | Indeks sunucu üzerindeki username field adı bilgisidir. |
LDAP_ATTRIBUTE_CHANGE_PASSWORD_FIELD | unicodePwd | Indeks sunucu üzerindeki username field'ına ait password bilgisidir. |
Redis (Zorunlu)#
- Önbellekte saklanabilecek verilerin dağıtık mimaride tutulabilmesi (Cache)
- Oturum (Session) bilgilerinin dağıtık mimaride tutulabilmesi
Kafka#
- Dış uygulamaların ihtiyaç duyabileceği Keysis Eventlerini(Kullanıcı ekle, sil vb.) produce işlemi.
- Mail gönderilmesi ihtiyacı olan Keysis Eventlerinin (rol atandı, rol alındı vb.) produce işlemi gibi.
Uygulama Paketi (Instance) Bilgileri#
Authentication (Zorunlu)#
Erişime açık hizmet uçlarını(login, verification vb.) sunan uygulamadır.
Authorization (Zorunlu)#
Kullanıcı yetkilendirme ve Keysis ürününe ait domain hizmet uçlarını sunan uygulamadır.
Session (Zorunlu)#
Kullanıcılara ait session bilgilerini oluşturan, yöneten ve validate eden uygulamadır.
Event#
Keysis tarafından produce edilen eventlerin consume edilerek anlamlandırılmasını sağlayan uygulamadır.
Dış (External) Uygulama Bağımlılıkları#
Settings Instances (Opsiyonel)#
Keysis kapsamında ihtiyaç duyulan ayar bilgilerinin sağlandığı uygulamadır. Ayar adları ve açıklamaları aşağıdaki tabloda verilmiştir:
Değişken Adı | Açıklama |
---|---|
failed_count | Sistemde kullanıcı hatalı giriş sayısını belirleyen ayardır. |
locked_duration | Sistemde kullanıcının kilitli kalma süresini belirleyen ayardır. Örneğin 15 dk ise |
token_ttl | Token süresidir. |
password_expire_time | Kullanıcı parolası geçerlilik süresidir. |
verification_code_min_duration | Üretilen verification kodunun geçerlilik süresidir. |
session_count | Sistemde kullanıcının maksimum session sayısını belirler. |
session_count_enabled | Sistemde multiple session kullanılıp kullanılamadığını belirler. (session_count ayarının aktiflik durumunu belirler) |
description | Değişkenin açıklamasıdır. |
setting_id | Değişkene sahip ayar bilgisidir. |
number_value | Sayısal değer barındıran ayarlar için alandır. |
string_value | Text değer barındıran ayarlar için alandır. |
boolean_value | Boolean değer barındıran ayarlar için alandır. |
Not: Sistemde ayarların aktiflik durumunun yönetilmesini sağlar. Aktif/pasif olarak yönetilmek istenen ayarlar için enabled (boolean) değerleri oluşturulmalıdır.
- SECURITY -> Authentication ile ilgili ayarlardır. (failed_count, locked_duration vs.)
- NOTIFICATION -> Uygulamada belirli işlemler sonrası bildirim gönderilme durumunu yönetmek için kullanılır.
- SYSTEM -> Audit tutulmasını yönetmek için kullanılan ayardır.