php单点登录方案如何实现。

nbjsnb 2014-09-17 03:53:41
现为客户开发一系统,需要实现SSO单点登录方式。该客户所有的的电脑已经纳入AD域管理,该系统安全性不是要求特别敏感所以可以用一些简易的方案。初步有俩种设想,不知是否可行该如何实现。
1.客户点击单点登录按钮,如客户已经登录域,将该客户的的登录本机的用户名递交到系统内,如系统中保存有该用户名则获准通过进入系统,该方案最简单,安全性不高。但是实现起来最容易,难点是如何把客户当前登录计算机的用户名获取到(用JS,VBS,COOKIE,php ldap还是什么)并post到系统中;
2.客户在系统中输入ad用户名和密码,递交到ad域服务器中验证,如验证通过将该用户递交的系统中和用户名匹配,如存在则登录成功,如不存在则提示在该系统中不存在帐号。这种方法需要输入用户名和密码(和登录计算机的用户名密码一致),安全性高一些,但是不知道该如何实现.

有劳各位给出合理的方案,如有实例那就更好了!在此先谢谢了!
...全文
379 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
晓敬 2014-09-19
  • 打赏
  • 举报
回复
针对你的方案提的建议: 1、建议Applet+证书的方式 2、服务器上有个守护程序(C/Python/Java)监听在指定本地端口上(安全原因不要监听外网),每次客户提交登陆请求之后,PHP使用socket通知该守护程序来验证。
猪崽儿0o0 2014-09-18
  • 打赏
  • 举报
回复
你这种需要跟硬件结合的建议还是采用C或者是Py这些可以编写脚本的语言去写脚本进行sso单点登录,如果是纯系统的话可以采用接口来进行交互判断。
ffg_2460057139 2014-09-18
  • 打赏
  • 举报
回复
PHP点击登录方案实现示例 //登录页面设置 <?php session_start(); include("conn/conn.php"); ?>//引入数据库连接 <form action="enter_ok.php" method="post" name="form1" id="form1" onSubmit="return check_user(this)">//设置表单 <div id="yonghu"><span>用户名:</span></div> <div id="yonghu1"><input id="tb_forum_name" type="text" name="tb_user" /></div>//用户名输入框 <div id="mima">密码:</div> <div id="mima1"><input id="tb_passwd1" type="password" name="tb_pass" /></div> <div id="yanzhengma">验证码:</div>//密码输入框 <div id="yanzhengma1"><input id="tb_validate" type="text" name="tb_validate"/></div> <div id="tubiao"><?php $num=intval(mt_rand(1000,9999)); for($i=0;$i<4;$i++) { echo "<img src=images/code/".substr(strval($num),$i,1).".gif>"; } ?> <input type="hidden" value="<?php echo $num;?>" name="num" /></div> <div id="anniu"> <input name="imageField" type="submit" id="imageField" value="登陆" src="images/index_1.jpg" />//登录处理程序页 <?php session_start(); class check_user{ var $tb_user; var $tb_pass; function check_user($x,$y){ $this->tb_user=$x; $this->tb_pass=$y; } function check_input(){ include_once("conn/conn.php"); $sql=mysql_query("select tb_forum_name from tb_forum_user where tb_forum_name='".$this->tb_user."'",$conn); $info=mysql_fetch_array($sql); if($info==false){ echo "<script>alert('对不起,不存在该用户!');history.back();</script>"; exit;//CodeGo.net/ }else{ $sql=mysql_query("select tb_forum_name from tb_forum_user where tb_forum_name='".$this->tb_user."' and tb_passwd1='".$this->tb_pass."'",$conn); $info=mysql_fetch_array($sql); if($info==false){ echo "<script>alert('对不起,密码输入错误!');history.back();</script>"; exit; }else{ if($_SESSION["tb_forum_name"]!=""){ session_unregister("tb_forum_name"); } session_register("tb_forum_name"); $_SESSION["tb_forum_name"]=$this->tb_user; echo "<script>alert('登录成功!');history.back();</script>"; } } mysql_close($conn); } } $chk=new check_user($_POST[tb_user],md5($_POST[tb_pass]),$tb_validate); $chk->check_input(); ?>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧