یکی از روش های ارائه شده استفاده از URL های یکبار مصرف می باشد که برای کاربر مورد نظر ما ایجاد می گردد و بوسیله آن می تواند در کنترل پنل دایرکت ادمین لاگین نماید.
نکته: کلید ورودی فعالی که برای یوزر ایجاد می گردد، می بایست در فایل user.conf ، آن یوزر حتما تعریف شده باشد.
بطور مثال برای کسی اگر قرار است دسترسی یوزر ادمین ارسال شود با دستور زیر
/usr/local/directadmin/directadmin --create-login-url user=admin
اقدام به ایجاد یک URL بشکل زیر می گردد
URL: http://1.2.3.4:2222/CMD_LOGIN_URL?hash=cJbIk9GNsXk43....xmAHSTaKFiFe
که کلید رمزنگاری hash آن بصورت رندوم و بین 120 تا 148 کاراکتر می باشد
فازعملیاتی
الف) کلید hash تولید شده در مسیر زیر بصورت global قرار می گیرد
/usr/local/directadmin/data/admin/login_hashes.conf
اما مجدد بصورت نمایه سمت چپ رمزنگاری می گردد که جزییات کلید hash در سمت راست آن قرار دارد.
بنابراین، جستجوی یک hash معین باید در هر آیتم جست و جو نماید و رمز را تا زمانی که پیدا شود آزمایش کند.
این عملیات یک کد رمزنگاری شده را بصورت "key=hash" ذخیره می کند که نشان دهنده ی یک ULR برای لاگین می باشد.
ب) وقتی یک کلید hash تایید شد، کلید ورود با یک رمز عبور رمزگذاری شده واقعی تعویض می شود و رمز عبور جدید در session فایل ذخیره می شود.
· رمز عبور نهایی قابل مشاهده نیست
· کلید عبور hash از فایل login_hashes حذف می شود.
· کوکی ارسال می شود و عملیات لاگین صورت می گیرد.
مدت زمان (اعتبار رمز)
بصورت پیش فرض این کلید hash و رمز عبور کدگذاری تا 3 روز معتبر است. بنابراین شما 3 روز زمان برای login و logout فرصت دارید. و با تبدیل کد hash به رمز عبور نیز تمدید نمی گردد.
این زمان را نیز با استفاده از دستور زیر می توانید تغییر دهید
expiry=1d
در مسیر --create-login-url واحد های زمانی معتبر به صورت s,m,h,d,M,y بوده و نسبت به کوچک و بزرگی حروف نیز حساس می باشند.
اعمال محدودیت
و در عبارت زیر می توانید یک یا تعدادی آی پی را نیز محدود نمایید.
ips=1.2.3.4,5.6.7.8-9
مشابه کلید های لاگین می توانید دستورات CMD را نیز محدود یا مجاز نمایید
deny=ALL_RESELLER,CMD_LOGIN_KEYS,CMD_API_LOGIN_KEYS
در این دستور تمامی عملیات که محدود به admin می باشد برای URL hash تولید شده بلاک می نماید. دقت نمایید اگر ALL_ADMIN را بلاک نمایید دستورات ادمین اجرا نمی شود . مثال : شمارش ajax
وقتی با کلید hash لاگین می نمایید، زمانیکه “logout” (CMD_LOGOUT) را کلیک نمایید. Session از بین می رود و کلید نیز حذف می گردد.
JSON
همچنین می توانید خروجی json با فراخوانی json=yes: مشاهده نمایید،
/usr/local/directadmin/directadmin --create-login-url user=admin json=yes
که خروجی مشابه زیر می باشد
{
"allow_htm": "yes",
"clear_key": "yes",
"expiry_timestamp": "1566096767",
"hash": "QTyjeGyhIDpZLit4....abZ2UJCczm1U",
"keyname": "HASHURLvicJDn5L",
"max_uses": "0",
"url": "http://1.2.3.4:2222/CMD_LOGIN_URL?hash=QTyjeGyhIDpZLit4....abZ2UJCczm1U"
}