• OpenLDAP 自助修改密码系统——筑梦之路


    self-service-password简述为ssp, 支持以下功能:

    1. 支持samba模式以及修改 samba密码

    2. 支持Active directory

    3. 支持本地自定义策略,比如密码的最小长度,密码组合规律等

    4. 支持基于问题/邮件/短信找回密码等

    5. 支持ldap目录sshkey的修改

    6. 密码修改通知等

    此服务解决了使用openldap修改密码困难的问题,不仅简化了不懂ldap使用的用户修改密码的流程,还可以通过查找密码自助解决密码丢失遗忘的问题。通过自定义设置密码的组合策略,也进一步巩固安全防护。

    1. version: '2'
    2. services:
    3. ssp-app:
    4. image: tiredofit/self-service-password:latest #建议修改为指定的版本的镜像
    5. container_name: ssp-app
    6. volumes: # 挂载数据目录以及日志
    7. - ./data/:/www/ssp
    8. - ./logs/:/www/logs
    9. ports:
    10. - 8888:80
    11. environment:
    12. - LDAP_SERVER=ldap://172.16.0.3:389 # ldap服务: ldap://ip:port
    13. - LDAP_STARTTLS=false
    14. - LDAP_BINDDN=cn=admin,dc=openldap,dc=devopsman,dc=cn # 绑定的dn. 具体根据自己的实际修改(管理员dn)
    15. - LDAP_BINDPASS=nicaicaikan # 上述cn=admin的密码
    16. - LDAP_BASE_SEARCH=ou=People,dc=openldap,dc=devopsman,dc=cn
    17. - LDAP_LOGIN_ATTRIBUTE=uid
    18. - LDAP_FULLNAME_ATTRIBUTE=cn
    19. # Active Directory mode
    20. # true: use unicodePwd as password field
    21. # false: LDAPv3 standard behavior
    22. - ADMODE=false
    23. # Force account unlock when password is changed
    24. - AD_OPT_FORCE_UNLOCK=false
    25. # Force user change password at next login
    26. - AD_OPT_FORCE_PWD_CHANGE=false
    27. # Allow user with expired password to change password
    28. - AD_OPT_CHANGE_EXPIRED_PASSWORD=false
    29. # Samba mode
    30. # true: update sambaNTpassword and sambaPwdLastSet attributes too
    31. # false: just update the password
    32. - SAMBA_MODE=false
    33. # Shadow options - require shadowAccount objectClass
    34. # Update shadowLastChange
    35. - SHADOW_OPT_UPDATE_SHADOWLASTCHANGE=false
    36. # Hash mechanism for password:
    37. # SSHA
    38. # SHA
    39. # SMD5
    40. # MD5
    41. # CRYPT
    42. # clear (the default)
    43. # auto (will check the hash of current password)
    44. # This option is not used with ad_mode = true
    45. - PASSWORD_HASH=MD5 # 密码hash类型
    46. # Local password policy
    47. # This is applied before directory password policy
    48. # Minimal length
    49. - PASSWORD_MIN_LENGTH=12 # 此处定义密码的组合
    50. # Maximal length
    51. - PASSWORD_MAX_LENGTH=30
    52. # Minimal lower characters
    53. - PASSWORD_MIN_LOWERCASE=2
    54. # Minimal upper characters
    55. - PASSWORD_MIN_UPPERCASE=2
    56. # Minimal digit characters
    57. - PASSWORD_MIN_DIGIT=2
    58. # Minimal special characters
    59. - PASSWORD_MIN_SPECIAL=2
    60. # Dont reuse the same password as currently
    61. - PASSWORD_NO_REUSE=true
    62. # Definition of special characters
    63. - PASSWORD_SPECIAL_CHARACTERS="^a-zA-Z0-9" # 定义特殊字符
    64. # Forbidden characters
    65. # Check that password is different than login
    66. - PASSWORD_DIFFERENT_LOGIN=true
    67. # Show policy constraints message:
    68. # always
    69. # never
    70. # onerror
    71. - PASSWORD_SHOW_POLICY=onerror # 何时显示密码策略信息
    72. # Position of password policy constraints message:
    73. # above - the form
    74. # below - the form
    75. - PASSWORD_SHOW_POLICY_POSITION=above
    76. # Who changes the password?
    77. # Also applicable for question/answer save
    78. # user: the user itself
    79. # manager: the above binddn
    80. - WHO_CAN_CHANGE_PASSWORD=user # 指定谁来修改密码
    81. ## Questions/answers
    82. # Use questions/answers?
    83. # true (default)
    84. # false
    85. - QUESTIONS_ENABLED=false
    86. ## Mail
    87. # LDAP mail attribute
    88. - LDAP_MAIL_ATTRIBUTE=mail
    89. # Who the email should come from
    90. - MAIL_FROM=cloudnative@qq.com
    91. - MAIL_FROM_NAME=云原生生态圈认证中心
    92. # Notify users anytime their password is changed
    93. - NOTIFY_ON_CHANGE=true
    94. # PHPMailer configuration (see https://github.com/PHPMailer/PHPMailer)
    95. - SMTP_DEBUG=0
    96. - SMTP_HOST=smtp.qq.com # 定义邮件信息,用于发送邮件
    97. - SMTP_AUTH_ON=true
    98. - SMTP_USER=cloudnative@qq.com
    99. - SMTP_PASS=nicaicaikan # 这里是邮箱的授权码
    100. - SMTP_PORT=465
    101. - SMTP_SECURE_TYPE=ssl
    102. - SMTP_AUTOTLS=false
    103. ## Tokens
    104. # Use tokens?
    105. # true
    106. # false
    107. - USE_TOKENS=true
    108. # Crypt tokens?
    109. # true
    110. # false
    111. - TOKEN_CRYPT=true
    112. # Token lifetime in seconds
    113. - TOKEN_LIFETIME=1800
    114. ## SMS
    115. # Use sms (NOT WORKING YET)
    116. - USE_SMS=false
    117. # Reset URL (if behind a reverse proxy)
    118. - IS_BEHIND_PROXY=true
    119. # Display help messages
    120. - SHOW_HELP=true
    121. # Language
    122. - LANG=en
    123. # Debug mode
    124. - DEBUG_MODE=false
    125. # Encryption, decryption keyphrase
    126. - SECRETEKEY=secretkey
    127. ## CAPTCHA
    128. # Use Google reCAPTCHA (http://www.google.com/recaptcha)
    129. - USE_RECAPTCHA=false
    130. # Go on the site to get public and private key
    131. - RECAPTCHA_PUB_KEY=akjsdnkajnd
    132. - RECAPTCHA_PRIV_KEY=aksdjnakjdnsa
    133. ## Default action
    134. # change
    135. # sendtoken
    136. # sendsms
    137. - DEFAULT_ACTION=change
    138. - BACKGROUND_IMAGE="images/unsplash-space.jpeg" # 自定义背景图片
    139. - LOGO="images/logo.png" # 自定义logo图片

     

    [1]self-service-password:https://github.com/ltb-project/self-service-password

    [2]ssp官方文档:https://self-service-password.readthedocs.io/en/latest/

    [3]ssp的docker实现:https://github.com/tiredofit/docker-self-service-password

    [4]docker-self-service-password支持的变量:https://github.com/tiredofit/docker-self-service-password#ldap-settings

  • 相关阅读:
    JSTL(jsp标准标签库)
    GSAman | 我「玩着游戏」就把「科研做了」
    漏刻有时API接口实战开发系列(14):身份证实名鉴权验证
    【附源码】计算机毕业设计JAVA中小学教务管理平台
    木聚糖-聚乙二醇-聚乙烯亚胺|PEI-PEG-Xylan|聚乙烯亚胺-PEG-木聚糖
    表单重复提交:
    内存泄露的最直接表现
    基于java+springboot+mybatis+vue+elementui的球鞋销售商城网站
    NBlog Java定时任务-备份MySQL数据
    二叉树的后序遍历-力扣
  • 原文地址:https://blog.csdn.net/qq_34777982/article/details/127097741