පරිශීලක මුරපද සහ පිවිසුම් ආරක්ෂණ වින්‍යාසය - hmislk/hmis GitHub Wiki

භාෂාව: සිංහල · English

මුරපද සහ පිවිසුම් ආරක්ෂණ වින්‍යාසය

දළ විශ්ලේෂණය

HMIS පද්ධතියේ මුරපද ශක්තිය, මුරපද කල් ඉකුත්වීම, මුරපද නැවත භාවිතය, බලහත්කාරයෙන් මුරපදය වෙනස් කිරීම සහ සැසි කල් ඉකුත්වීම පාලනය කරන සියලුම වින්‍යාස විකල්පයන් මෙම පිටුවේ ලැයිස්තුගත කර ඇත. මේ සියල්ල යෙදුම් මට්ටමේ (application-level) සැකසුම් වේ — ඒවා සමස්ත ස්ථාපනයටම, සෑම ආයතනයකටම, සෑම දෙපාර්තමේන්තුවකටම සහ සෑම පරිශීලකයෙකුටම අදාළ වේ.

මෙම ලිපිය වින්‍යාස සඳහා වූ යොමුකිරීමකි. දෛනික පරිශීලක ක්‍රියාවලිය (උදා: පරිපාලකයෙකු මුරපදය වෙනස් කිරීමේ තිරයට පිවිසෙන ආකාරය) පිළිබඳ විස්තර සඳහා මුරපද යළි පිහිටුවීම සහ පරිශීලක තොරතුරු වෙනස් කිරීම පිටුව බලන්න.

මෙම සැකසුම් බල පවත්වන ස්ථාන

එකම වින්‍යාස යතුරු යෙදුමේ ස්ථාන තුනකදී කියවනු ලැබේ:

ස්ථානය පරිශීලකයාට පෙනෙන දේ වින්‍යාසය විග්‍රහ වන අවස්ථාව
පිවිසුම් පිටුව (ez:login, සත්‍යාපනයට පෙර පෙන්වයි) පරිශීලක නාමය සහ මුරපදය සඳහා පිවිසුම් ආකෘතිය පරිශීලකයා Login ක්ලික් කළ පසු — SessionController.loginActionWithoutDepartment() විසින් arePasswordRequirementsFulfilled() ක්‍රියාත්මක කර, මුරපදය කල් ඉකුත් වී ඇත්නම් හෝ පරිශීලකයා නැවත සැකසීමට සලකුණු කර ඇත්නම් ඇතුළුවීම අවහිර කරයි
දෙපාර්තමේන්තුව තෝරන පිටුව (ez:select_department, පිවිසීමෙන් පසු දෙපාර්තමේන්තුවක් තෝරාගෙන නොමැති විට පෙන්වයි) Select Department කාඩ්පත මුරපද අවශ්‍යතා සපුරා නොමැති නම්, මෙනුව ප්‍රතිපාදනය කිරීම වෙනුවට, අඩංගු කරන ලද මුරපදය වෙනස් කිරීමේ පැනලයට යළි යොමු කරයි (template.xhtml, passwordRequirementsFulfilled පැනලය)
මුරපදය වෙනස් කිරීමේ පිටුව (/admin/users/change_password.xhtml) ක්ෂේත්‍ර තුනේ ආකෘතිය (නම / පරිශීලක නාමය / නව මුරපදය / නැවත ඇතුළත් කරන්න) සහ වෛකල්පිකව Force Password Reset on Next Login බොත්තම පෝරමය පෙන්වන විට (අදාළ රීති පෙන්වීමට) සහ නව මුරපදය සුරැකෙන විට (වලංගුකරණය)

පිවිසීමෙන් පසු එම්බඩ් කර ඇති මුරපදය වෙනස් කිරීමේ තිරය (ezcomp/pages/admin/change_password.xhtml) මත එම තර්කනයම ක්‍රියාත්මක වේ — එම තිරය මෙම වින්‍යාස අගයන්ගෙන් කෙළින්ම ක්‍රියාත්මක රීති මුද්‍රණය කරයි ("මුරපදයේ විශාල අකුර, කුඩා අකුර, ඉලක්කමක් සහ විශේෂ අකුරක් අඩංගු විය යුතුය", "මුරපදය සෑම දින N කට වරක් වෙනස් කළ යුතුය", ආදිය), එමඟින් පරිශීලකයින්ට වර්තමානයේ බල පැවැත්වෙන රීති පමණක් දැකගත හැකි වේ.

මෙම විකල්ප සංස්කරණය කරන ස්ථානය

  1. AdministrationManage InstitutionsApplication Options මත ක්ලික් කරන්න
  2. පෙරහන් කොටුවට Key ටයිප් කරන්න (යතුරු පහත ලැයිස්තුගත කර ඇත — යටිඉරි සහ ඉංග්‍රීසි කුඩා/විශාල අකුරු සමඟ එලෙසම පිටපත් කරන්න)
  3. පේළිය මත ක්ලික් කර, අගය වෙනස් කර, සුරකින්න
  4. ශීර්ෂයේ ඇති Reload Config ක්ලික් කරන්න — යළි පූරණයකින් තොරව, සැසි දිගටම පැරණි අගයන් භාවිතා කරයි

අවශ්‍ය වරප්‍රසාදය: AdminInstitutions (Admin භූමිකාව නිර්දේශිතයි)

සම්පූර්ණ Application Options යොමුව: Application-Level Configuration (ඉංග්‍රීසි).

මුරපද ශක්තිය වින්‍යාසය

යතුර වර්ගය පෙරනිමි අගය කාර්යය
Prevent matching password with username Boolean false true නම්, පරිශීලක නාමයට සමාන ඕනෑම මුරපදයක් ප්‍රතික්ෂේප කරයි. පිවිසෙන විට සහ මුරපදය වෙනස් කරන විට පරීක්ෂා කරයි.
Enforce password complexity Boolean false true නම්, නව මුරපදය පහත රීති සමඟ ගැලපිය යුතුය. මුරපදය වෙනස් කිරීමේ තිරය මෙය සක්‍රීය විට පමණක් "මුරපදයේ විශාල අකුර, කුඩා අකුර, ඉලක්කමක් සහ විශේෂ අකුරක් අඩංගු විය යුතුය" යන රීතිය පෙන්වයි.
Password complexity regex Short Text ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$ සංකීර්ණතාව බල පැවැත්වෙන විට යොදන regex. පෙරනිමි අගය අවශ්‍යතා: අවම අකුරු 8, එක් කුඩා අකුරක්, එක් විශාල අකුරක්, එක් ඉලක්කමක්, @ $ ! % * ? & අතරින් එකක්. ප්‍රවේශමෙන් වෙනස් කරන්න — වැරදි regex එකකින් සියලුම පිවිසීම් අවහිර වේ.

මුරපදයේ උපරිම දිග: අකුරු 15. මෙය මුරපදය වෙනස් කරන ආදානයේ දැඩි ලෙස කේතගත කර ඇත (maxlength="15") — වෙනස් කළ නොහැක. ඕනෑම සංකීර්ණතා regex එකකට අකුරු 15 ට වඩා දිගු නොවන මුරපද පිළිගත යුතුය.

මුරපද කල් ඉකුත්වීම වින්‍යාසය

යතුර වර්ගය පෙරනිමි අගය කාර්යය
Enable password expiration Boolean false කල් ඉකුත්වීමේ විශේෂාංගය සඳහා ප්‍රධාන ස්විචය. false විට මුරපද කවදාවත් කල් ඉකුත් නොවේ.
Set password expiration period (days) Long (integer) 30 පරිශීලකයාගේ lastPasswordResetAt සිට ගණන් කරන දින ගණන — එයින් පසු පද්ධතිය "Password has expired. Please reset your password." පණිවිඩය සමඟ ඇතුළුවීම අවහිර කරයි. කල් ඉකුත්වීම සක්‍රීය විට පමණක් බල පැවැත්වේ.

ඔරලෝසුව මුරපදය වෙනස් කළ අවසන් අවස්ථාවේ සිට ක්‍රියාත්මක වේ, එය WebUser.lastPasswordResetAt තුළ ගබඩා කර ඇත.

බලහත්කාරයෙන් මුරපදය වෙනස් කිරීම (පරිපාලක ක්‍රියාවලිය) වින්‍යාසය

යතුර වර්ගය පෙරනිමි අගය කාර්යය
Allow admin to force password change Boolean false true නම්, පරිපාලක Change Password තිරයේ ඇති Force Password Reset on Next Login සහ Reverse Request to Reset Password on Next Login බොත්තම් ක්ලික් කළ හැකි බවට පත් වේ. false නම්, බොත්තම් පෙනෙයි නමුත් අක්‍රීය වේ.

පරිපාලකයා නැවත සැකසීමක් බල කරන විට, පරිශීලකයාගේ needToResetPassword ධජය WebUser වාර්තාවේ සකසනු ලැබේ. ඊළඟ පිවිසීමේදී, arePasswordRequirementsFulfilled() false ලබා දෙයි.

මුරපද නැවත භාවිතය වින්‍යාසය

යතුර වර්ගය පෙරනිමි අගය කාර්යය
prevent_password_reuse Boolean false true විට, නව මුරපදයක hash එක පරිශීලකයාගේ WebUserPasswordHistory තුළ ඇති පහත සීමාව තුළ ඕනෑම ඇතුළත් කිරීමකට ගැලපේ නම් එය ප්‍රතික්ෂේප කරයි.
password_history_limit Integer 5 පරීක්ෂා කරන අතීත මුරපද කීයක්ද යන්න. අගය 5 නම් අවසන් මුරපද 5 නැවත භාවිතය අවහිර කරයි.

prevent_password_reuse යතුර සියලුම අකුරු කුඩා, යටිඉරි සහිතයි — එය සමහර පැරණි ලේඛනවල පෙන්වන Prevent Password Reuse හා සමාන නොවේ. නිවැරදි කුඩා අකුරු යතුර භාවිතා කරන්න.

සාර්ථක මුරපදය වෙනස් කිරීමක් සෑම විටම WebUserPasswordHistory වෙත ඇතුළත් කිරීමක් එක් කරයි සහ lastPasswordResetAt යාවත්කාලීන කරයි, එමඟින් කල් ඉකුත්වීමේ ටයිමරය සහ නැවත භාවිතා ඉතිහාසය සමමුහූර්ත වේ.

සැසි කල් ඉකුත්වීම (Session Timeout)

ස්වයංක්‍රීය ලොග් අවුට් කාල පරතරය Application Option එකක් නොවේ. එය WEB-INF/web.xml තුළ දැඩි ලෙස කේතගත කර ඇත:

<session-config>
    <session-timeout>60</session-timeout> <!-- minutes -->
</session-config>
  • පෙරනිමි අගය: අක්‍රියතාවයේ විනාඩි 60 (රෝගී දත්ත ආරක්ෂාව සඳහා 180 සිට අඩු කරන ලදී, ගැටළුව #19867).
  • කල් ඉකුත් වූ පසු පරිශීලකයා /timeout.xhtml වෙත යළි යොමු කරනු ලැබේ.
  • මෙම අගය වෙනස් කිරීමට web.xml සංස්කරණය කර CI/CD හරහා WAR යළි ස්ථාපනය කළ යුතුය — Application Options තිරයෙන් වෙනස් කළ නොහැක.

නිර්දේශිත සැකසුම් (Recommended Baselines)

සෑම නිෂ්පාදන සැකසුමක්ම තමන්ගේ පරිශීලකයින්ට ඉවසිය හැකි ලෙස දැඩිම සංයෝජනය තෝරා ගත යුතුය. සාධාරණ නිෂ්පාදන සැකසුම:

සැකසුම නිර්දේශිතය
Prevent matching password with username true
Enforce password complexity true
Password complexity regex (පෙරනිමිය තබන්න)
Enable password expiration true
Set password expiration period (days) 60 හෝ 90
Allow admin to force password change true
prevent_password_reuse true
password_history_limit 5

සායනික හෝ මූල්‍ය දත්ත හසුරුවන ස්ථාපනයන් සඳහා (රෝහල්, හිමිකම් ක්‍රියාවලිය) ඉහත සියල්ල සක්‍රීය විය යුතුය.

ඉක්මන් යොමුව: එක් තිරයක සියලු යතුරු

Prevent matching password with username     (Boolean, default false)
Enforce password complexity                 (Boolean, default false)
Password complexity regex                   (Short Text, default 8-char regex)
Enable password expiration                  (Boolean, default false)
Set password expiration period (days)       (Long,    default 30)
Allow admin to force password change        (Boolean, default false)
prevent_password_reuse                      (Boolean, default false)
password_history_limit                      (Integer, default 5)

දෝෂහරණය (Troubleshooting)

Force Password Reset බොත්තම් අක්‍රීය වී ඇත

Allow admin to force password change විකල්පය false වේ (පෙරනිමිය). එය true ට සකසා Reload Config ක්ලික් කරන්න.

පරිශීලකයෙකු "Password has expired" දෝෂයෙන් අවහිර වී ඇත

එක්කෝ Enable password expiration අක්‍රීය කරන්න (පද්ධතිය පුරා) හෝ Manage Users විවෘත කර, පරිශීලකයා තෝරා, Manage Password ක්ලික් කර, නව මුරපදයක් සකසන්න.

පරිශීලකයින්ට තවමත් "password" හෝ "12345" සැකසිය හැක

Enforce password complexity false වේ. එය සක්‍රීය කරන්න.

නැවත භාවිතා ප්‍රතිපත්තිය පැරණි මුරපද අවහිර නොකරයි

  • යතුර prevent_password_reuse (යටිඉරි සමඟ කුඩා අකුරු) බව සහතික කරන්න, Prevent Password Reuse නොවේ.
  • සක්‍රීය කිරීමෙන් පසු Reload Config ක්ලික් කරන්න.

පරිශීලකයාට පෙන්වන සංකීර්ණතා රීතිය වැරදිය

මුරපදය වෙනස් කිරීමේ තිරය ගැලපෙන Boolean එක true විට පමණක් රීති පෙළ පෙන්වයි. Reload Config ක්ලික් කරන්න.

අදාළ පිටු


English Version: Password and Login Security Configuration