phpMyAdmin 的单点登录

Posted

技术标签:

【中文标题】phpMyAdmin 的单点登录【英文标题】:Single signon for phpMyAdmin 【发布时间】:2011-08-07 00:11:30 【问题描述】:

我无法让它工作。我安装了 phpMyAdmin,我可以毫无问题地登录。但我无法让单点登录工作。 phpMyAdmin 位于http://mydomain.com/sql/。我的登录脚本位于http://mydomain.com/sql/scripts/signon.php。这是 phpMyAdmin 配置的内容:

<?php
/*
 * Generated configuration file
 * Generated by: phpMyAdmin 3.3.10 setup script by Piotr Przybylski <piotrprz@gmail.com>
 * Date: Fri, 08 Apr 2011 00:43:27 +0200
 */

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['auth_type']     = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'PHPSESSID';
$cfg['Servers'][$i]['SignonURL']     = 'http://mydomain.com/sql/scripts/signon.php';
$cfg['Servers'][$i]['LogoutURL']     = 'http://mydomain.com/sql/scripts/logout.php';
/* End of servers configuration */

$cfg['blowfish_secret'] = '<my secret ;)>';
$cfg['DefaultLang'] = 'nl-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
?>

这是我的登录脚本:

session_start();

$_SESSION['PMA_single_signon_user'] = 'root';
$_SESSION['PMA_single_signon_password'] = '<my root password :)>';
    if (!isset($_SESSION['PMA_single_signon_token'])) 
        $_SESSION['PMA_single_signon_token'] = md5(uniqid(rand(), true));
    
$id = session_id();

header('Location: http://mydomain.com/sql/index.php?server=1');

我做错了什么:(?当我执行登录脚本时,我得到了 PMA 的正常登录屏幕。

【问题讨论】:

【参考方案1】:

您没有使用相同的登录会话名称。使用

session_name('PHPSESSID');

在 session_start 之前。

【讨论】:

以上是关于phpMyAdmin 的单点登录的主要内容,如果未能解决你的问题,请参考以下文章

sso单点登录,单点登录原理图,单点登录图解,单点登录

EBS单点登录SSO

什么是单点登录?单点登录有什么优势?

单点登录 SSO

CAS搭建单点登录Web端

话说单点登录