Ana içeriğe geç

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.

Veri göçü(migrasyonu) için kolon tanımlarının ve kısıtlarının yapıldığı dokümantasyondan yararlanabilirsiniz.

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.