Hesab başına bir sessiyaya icazə verən siyasət ikinci giriş gələnə qədər həll olunmuş görünür. İki nəticə mümkündür: yeni gələn mövcud sessiyanı əvəz edir, ya da mövcud sessiya slotu saxlayır və yeni gələn rədd edilir. Yalnız ikincisi ilk sessiya qazanır siyasətidir. Çoxlarının müraciət etdiyi müştəri seçimi paralelliyi aktivləşdirir və buna görə bu nəticəni vermir.

Bir parametrin arxasında iki müqavilə gizlənir

Paralellik söndürüldükdə eyni sertifikat adını daşıyan ikinci bağlantı artıq işləyən sessiyanı sıxışdıra bilər. Paralelliyi açmaq bir neçə sessiyaya eyni vaxtda icazə verir, bu isə məhdudiyyətin əksidir. Heç biri rədd siyasəti deyil, ona görə qərar tamamilə başqa yerdə verilməlidir.

Heç nə tətbiq etməzdən əvvəl müqaviləni yazın: kim rədd edilir, mövcud sessiyanı hansı sübut müəyyən edir və sessiya təmiz ayrılmadan öləndə nə olur. Bu şəkildə heç kimin dilə gətirmədiyi siyasəti sonra sınamaq mümkün deyil.

Çıxarış sizin qoşulma qarmağınızdan əvvəl baş verir

2.6 server kod yolunda yeni müştəri üçün erkən quraşdırma, paralellik söndürüldükdə eyni adlı mövcud nüsxələri silir. Bu silmə qoşulma idarəedicisi zənciri işləməzdən əvvəl baş verir. Buna görə dublikatı görüb uğursuzluq qaytaran skript yeni gələni artıq mövcud sessiya atıldıqdan sonra rədd edir - siyasətin qarşısını almaq istədiyi nəticənin eynisi. Upstream tətbiqindəki callback sırası quruluşunuz üçün yeganə etibarlı cavabdır.

StageWho can still refuseEffect on the incumbent
Certificate checkServer trust configurationNone
Authentication decisionThe authentication controllerNone, because establishment has not run
Connect handlerA profile scriptAlready evicted in the same-name case
Post-establishmentStatus tooling, monitoringBoth sessions already exist or one is gone

Status faylını yoxlamaq da qapı deyil. Eyni anda gələn iki cəhd hər hansı biri qeydə alınmadan əvvəl boş slotu görə bilər və hər ikisi davam edir.

Qərarı autentifikasiyaya köçürün

İdarəetmə interfeysi sertifikat yoxlanıldıqdan sonra autentifikasiya qərarını öz üzərinə götürə bilər. Bu quruluşda nəzarətçi monitor deyil: hər qoşulan müştəri nüsxəsini qəbul edir və onun davam edib-etməyəcəyini cavablandırır. Cavab qurulmadan əvvəl gəldiyi üçün rədd mövcud sessiyaya toxunmur. Eyni kanal ayrılmaları bildirir və nəzarətçi beləcə slotun qanuni olaraq azad edildiyini öyrənir.

Hər yeni nüsxə bu qapıdan keçməlidir, o cümlədən yenidən qoşulmalar və sorğu olmadan yenidən autentifikasiya edən istənilən yol. Bəzi nüsxələrin heç vaxt çatmadığı qapı heç nəyi qorumur və buraxılış kimsə yan keçidi sınamayana qədər görünməz qalır.

Tokenlər qapıdan yan keçə bilər

Token verildikdən sonra server onu daxildə yoxlaya və həmin bağlantı üçün xarici autentifikasiyanı atlaya bilər. İdarəetmə çağırışı heç vaxt baş vermir, ona görə yalnız orada tətbiq olunan slot yoxlaması yeni nüsxəni görmür. Bu davranış istifadəçilər üçün rahatlıq, paralellik siyasəti üçün isə deşikdir. Tokenlə autentifikasiya olunan bağlantıları ekvivalent səlahiyyətli yoxlamadan keçirin və ya siyasət hər bağlantıda qərar tələb edəndə token yolunu söndürün.

Hər tokeni şərtsiz qəbul etməklə bunu kompensasiya etməyin. Vaxtı keçmiş və ya etibarsız token yenə də uğursuz olmalıdır və bu, hər şey kimi eyni qərar nöqtəsindən keçməlidir.

Rezervasiyanı ünvana deyil, nüsxəyə bağlayın

Ünvan zəif kimlikdir: eyni noutbukdan yenidən qoşulma fərqli ünvandan gələ bilər, kopyalanmış etimadnamə isə eyni ünvandan gələ bilər. Rezervasiyanı serverin təyin etdiyi müştəri nüsxəsinə bağlayın ki, artıq qəbul edilmiş nüsxənin yenidən autentifikasiyası sahib kimi tanınsın. Yeni nüsxə identifikatoru eyni tokeni təqdim etsə belə, öz slotunu ilk qalib gəlir qərarı ilə almalıdır.

Yalnız uğursuz cəhdə aid rezervasiyanı azad edin. Köhnə cəhddən gecikmiş ayrılma hadisəsi daha yeni sahibin slotunu təmizləməməlidir; buna görə azadetmə hesabı deyil, nüsxəni adlandırır. Nəzarətçi yenidən başladıqdan sonra kimsəni qəbul etməzdən əvvəl canlı sessiyaları uzlaşdırın və hesaba xidmət edən hər şlüzdə eyni qaydanı tətbiq edin.

Həqiqətən köhnəlmiş slotun necə bərpa olunacağına ayrıca qərar verin. Administratorun onu təmizləmək üçün sənədləşdirilmiş yolu olmalıdır və bu yol sadəcə yenidən qoşul düyməsini basan istifadəçi üçün əlçatan olmamalıdır.

Vacib cütləri sınayın: iki demək olar ki, eyni vaxtda giriş, təmiz ayrılmadan sonra yenidən qoşulma, mövcud sessiyanın yenidən autentifikasiyası, rədd edilən yeni gələn və nəzarətçinin yenidən başlaması. Hər halda mövcud sessiya istifadəyə yararlı qalmalı, yeni gələn isə digər hesablara ziyan vurmadan rədd edilməlidir.

Əlaqəli məqalələr