openldap密碼策略,定期短信及郵件提醒用戶修改密碼(ldap自身密碼策略無法使用前提下的妥協)

鑑於互聯網公司越來越多的需求,各種自建以及第三方服務不斷的被加入到公司的系統裏。同時互聯網公司的人員更替也是流水一般時刻不停,這時候對於員工的賬戶管理也就變成了一個非常有挑戰的任務。這時候開源的賬戶統一管理產品就必須被用起來了。Openldap作爲開源目錄服務,也是大家首選的產品。優點很多,開源(免費用),用戶量大(遇坑可以找出坑方法),功能強大,衆多第三方的軟件都加入了對openladp的支持。缺點呢,也不少,特別是數據結構難理解。

目前公司已經用上了openladp,搭建環境網上各種教程所以就不多說。目前有一個需求就是對員工的的賬戶生命週期進行控制,對員工的祕密複雜度進行加強。

  • 目標
  1. 用戶自助修改密碼,密碼包含3種不同字符,最低8位。
  2. 密碼修改後,重新獲得60天的生命週期,到期前15天通過mail&sms提醒修改。
  3. 到期了後不修改,直接系統替你重置一個隨機密碼。然後你就只能通過sms的形式來重置密碼後登陸賬戶

實現方式

  1. 使用開源的第三方self-service-passwd來做密碼重置,密碼強度檢測
  2. 使用mysql存儲用戶的信息,包括用戶的密碼生命週期
  3. 修改self-service-passwd 源代碼,修改密碼後執行sql,重置mysql的用戶生命週期
  4. 服務器每天凌晨1點執行ldap新用戶掃描,新用戶加入錄入mysql,給予60天密碼生命,同時對於老用戶密碼生命減一。 對於用戶生命週期15天用戶發送sms&mail,對於生命爲0用戶,重置隨機密碼。
  • 實現邏輯

1.目前openldap密碼定時修改的任務是基於開源工具self-service-password,mysql存儲用戶密碼lifetime,定時任務每天遞減lifetime,定時獲取openldap新加用戶到mysql表中同時賦予60天的密碼lifetime

2.當遇到用戶密碼剩餘15天的lifetime時,發送郵件與sms短信提醒相應用戶更改密碼。用戶可以在短信與郵件中點擊鏈接自助修改密碼

3.當用戶修改密碼後,會重置用戶密碼的lifetime(default=60)

4.密碼lifetime 15天以內的用戶會持續多天收到郵件短信提醒,系統在lifetime=0時 重置用戶密碼,用戶此時只能在鏈接通過sms短信修改密碼

5.mysql表中存在一個old_password 字段,用戶存儲用戶上一次的密碼,可以用來校驗新老密碼是否一致(未實現內容)

 

  • mysql 表結構
id increase  
name openldap提取用戶名  
count_time lifetime 密碼生命,每天減一
not_change 不需要修改密碼用戶 離職用戶,系統用戶無需提醒改密
old_password 用戶上一次密碼 校驗用戶新老密碼的重複

 

  •  功能腳本
  1. 密碼lifetime重置腳本:/opt/reset_day.sh

#! /bin/bash

# This Script is used updating count_time in mysql_db

#數據庫地址

host=127.0.0.1

#數據庫用戶

user=root

#數據庫密碼

passwd=110110

#更新用戶天數

reset="use ldap;update ldap set count_time = $lifetime where name = '$1';"   #此處的lifetime就是密碼重置後的默認lifetime週期

mysql -u$user -p$passwd -N -e"${reset}"

  • /opt/reset_day.sh 腳本觸發在 /usr/share/self-service-password/lib/functions.inc.php的410行

      2. 阿里雲sms腳本 /usr/share/self-service-password/lib/sms.py

需要傳人三個參數:

argv1:用戶手機號

argv2:短信驗證碼

argv3:短信模版

        3. 短信發送模塊 /usr/share/self-service-password/lib/smsapi.inc.php

         三個傳入參數

          $mobile:從openldap的信息中提取到的mobile號碼,需提取錄入到openladp裏面

          $message:系統隨機生成的6位驗證碼

          SMS_175538413 這個參數爲阿里雲短信模版

 

 

編寫評論...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章