Web Form
Web Form Nedir?
Web Form, kullanıcının giriş formuna yazdığı bilgileri mevcut bir web uygulamasının kendi giriş formuna gönderen ve uygulamanın yanıtına göre girişi kabul eden Authentication Providers türüdür. Ayrı bir kimlik doğrulama API'si sunmayan, yalnızca bir giriş sayfası olan uygulamalar için kullanılır. Başarı, yanıtın durum kodu, çerezi, yönlendirme adresi ya da JSONata ifadesiyle belirlenir; sunucu profili gerekmez, istek profilin Namespace route tablosundan çıkar.
Nasıl çalışır?
- Bu ekranda Provider Type olarak Web Form seçilir; uygulamanın giriş formu adresi ve form alanları girilir.
- Profil, erişim akışına giriş formundan sonra Authentication Provider adımı olarak eklenir.
- TR7, kullanıcı bilgilerini uygulamanın giriş formuna gönderir.
- Uygulamanın yanıtı başarı koşullarını sağlarsa (genellikle başarılı girişte yapılan yönlendirme) akış success, sağlamazsa fail geçişinden devam eder.
Operasyonel En İyi Uygulamalar
- Form alan adları birebir. Login Form Fields tablosundaki alan adları, uygulamanın giriş formundaki
nameöznitelikleriyle aynı olmalıdır. - Başarı koşulu yönlendirme. Uygulamaların çoğu başarılı girişte 301 ya da 302 yönlendirmesi yapar; hatalı girişte aynı sayfayı 200 ile döndürür. Koşul buna göre seçilmelidir.
- Öznitelikler elle eşlenir. Bu türde otomatik öznitelik eşlemesi yoktur; formdaki User Attribute Mapping bölümünde No automatic mapping for this provider - every attribute has to be mapped below bilgisi görüntülenir.
- Kilitleme. Parola doğrulayan bu türde Account Lockout Policies atanmalıdır.
Nasıl Eklenir?
Yeni bir Web Form sağlayıcısı, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlarla eklenir:
- Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
- AGS → Authentication → Authentication Providers → Add adımları takip edilir.
- Profil için benzersiz ve açıklayıcı bir isim girilir; Provider Type olarak Web Form seçilir.
- Login Form URL, form alanları ve başarı koşulları girilir.
Addbutonuna tıklanarak profil eklenir.
Profil Ekleme Formu
AGS → Authentication → Authentication Providers → Add adımları takip edilerek Provider Type alanında Web Form seçildiğinde form aşağıdaki alanlarla açılır.
Web Form Seçiliyken Form
INFO
Provider Name Zorunlu
Profilin adı; listede, akış şemasındaki adım seçiminde, oturum listesinde ve loglarda profili tanımlar. Ad cihazda benzersiz olmalıdır; aynı adla ikinci bir profil kaydedilmez ve Name is used uyarısı görüntülenir. Boş bırakıldığında Required field uyarısı görüntülenir.
INFO
Provider Type Zorunlu
Sağlayıcı türü; bu sayfada Web Form seçilidir. Tür değiştirildiğinde yalnızca yeni türün alanları görüntülenir ve kaydedilir; tür düzenleme formunda da değiştirilir.
INFO
Namespace Varsayılan: varsayılan route tablosu
TR7'nin giriş formu isteğinin çıkacağı Route Tables kaydı; uygulamaya erişimi olan route tablosu seçilmelidir. Alan cihazın varsayılan route tablosuyla dolu gelir; bu tablonun adı cihaza göre değişir (ör. DEFAULT ya da DEFAULT_ROUTE).
INFO
Login Form URL Zorunlu
Kullanıcı bilgilerinin gönderileceği, uygulamanın giriş formunun action adresi; ƒx simgesiyle smart değişken eklenir. Boş bırakıldığında Required field uyarısı görüntülenir.
INFO
Login Form Fields Zorunlu
Forma gönderilecek alanlar Field Name ve Field Value tablosunda girilir. Form iki satırla açılır: username alanı AGS input (username), password alanı AGS input (password) değişkeniyle dolu gelir. Yeni satırlar etiketin yanındaki + simgesiyle eklenir, satırlar soldaki tutamaçtan sürüklenerek sıralanır ve sağdaki × simgesiyle silinir; en az bir satır bulunur. Değer alanında ƒx simgesiyle smart değişken seçilir.
INFO
Success Conditions Varsayılan: Status code
Girişin başarılı sayılması için yanıtta aranacak koşullar; birden fazla seçilir ve her seçim kendi alanını açar:
| Seçenek | Anlamı |
|---|---|
| Status Code | Yanıtın durum kodu Expected Status Codes listesinde olmalıdır. |
| Cookie | Yanıt Expected Cookie Name adlı çerezi içermelidir (ör. uygulamanın oturum çerezi). |
| Redirect URL | Yanıt Expected Redirect URL adresine yönlendirmelidir. |
| JSONata | JSONata Success Expression ifadesi yanıt üzerinde doğru sonuç vermelidir. |
Expected Status Codes Varsayılan: 301, 302
Status Code seçiliyken görüntülenir; başarılı sayılan durum kodları çoklu seçilir. Web Form türünde başarılı girişteki yönlendirme kodlarıyla (301: Moved Permanently, 302: Found (Moved Temporarily)) dolu gelir.
Expected Cookie Name Zorunlu
Cookie seçiliyken görüntülenir; başarılı girişte uygulamanın yanıtta döndürmesi beklenen oturum çerezinin adı.
Expected Redirect URL Zorunlu
Redirect URL seçiliyken görüntülenir; başarılı girişte uygulamanın yönlendirmesi beklenen adres. Alan ƒx simgesiyle smart değişken kabul eder.
JSONata Success Expression Zorunlu
JSONata seçiliyken görüntülenir. İfade yanıt zarfının kökünde değerlendirilir; kökteki alanlar status (yönlendirmeler izlendikten sonraki son durum kodu), initialStatus (zinciri başlatan ilk durum kodu), finalUrl, headers, cookies, body ve redirects şeklindedir. Bu türde body ham HTML metnidir; sayfa içeriği $htmlQuery ve $htmlQueryAll işlevleriyle sorgulanır.
Örnekler: $count($htmlQueryAll(body, ".login-error")) = 0, $htmlQuery(body, "#welcome-banner") != null, $contains(finalUrl, "/home").
User Attribute Mapping
INFO
Custom User Attribute Mapping Varsayılan: No customisation
Sağlayıcı yanıtındaki alanların oturum özniteliklerine nasıl eşleneceği yönetilir. Bu türde otomatik eşleme yoktur; alanın solundaki bilgi çubuğunda No automatic mapping for this provider - every attribute has to be mapped below yazar ve gerekli her öznitelik bu alanda elle eşlenir.
Sağdaki anahtar Customised konumuna alındığında AGS Attribute ve Source Attribute tablosu görüntülenir: sol kolonda oturum özniteliği (öneri listesiyle), sağ kolonda JSONata ifadesi girilir. İfade, gönderilen form ile girişten sonra ulaşılan sayfa üzerinde çalışır; kökteki alanlar res.data (ham HTML), res.finalUrl, res.cookies, res.status, req.form ve req.url şeklindedir. Öznitelikler ya gönderilen form alanından (req.form.username) ya da HTML içinden kazınarak alınır: $htmlQuery(res.data, ".user-name"), $htmlQuery(res.data, ".user-meta", "data-mail"), $htmlQueryAll(res.data, "li.group"). Anahtar açıldığında çubuğun sağında satır ekleyen + Add bağlantısı belirir. AGS'nin standart öznitelikleri dışında bir ad girildiğinde bu öznitelik vService'te özel kullanıcı alanı olarak tanımlanır; _ ile başlayan adlar gizli alan sayılır ve özel kullanıcı alanı üretmez.
Lockout Configuration
INFO
Lockout Behavior Varsayılan: Use gateway defaults
Bu sağlayıcıdaki başarısız denemelerin hangi kilitleme politikalarıyla sayılacağı seçilir:
| Seçenek | Anlamı |
|---|---|
| Use Gateway Defaults | vService'in Default Lockout Policies listesindeki politikalar kullanılır. |
| Replace Defaults | Yalnızca Lockout Policies alanında seçilen politikalar kullanılır. |
| Add to Defaults | vService'in varsayılan politikalarına ek olarak Lockout Policies alanında seçilenler de kullanılır. |
| No Lockout | Bu sağlayıcıda başarısız denemeler sayılmaz, kilitleme yapılmaz. |
Lockout Policies
Replace Defaults ya da Add to Defaults seçiliyken görüntülenir; Account Lockout Policies ekranındaki hazır ve tanımlı politikalar seçilir.
