2011年5月 2日

[PHP-users 35558]post命令を受け取るサイトへのシングルサインオン

こんにちは。
このメーリングリストに出してよいものかと迷ったのですが、質問させて頂きた
いと思います。

ID、パスワードを指定してフォーム認証を行っているパッケージがあります。
ソースを見ると、以下のようになっています。
<FORM name="form1" method="post" action="http//localhost/p/p@xxxxx">
<INPUT type='text' name='id' value=''>

<INPUT type='password' name='password'>
</FORM>
これを別サーバーの認証を使って自動的に行いたいと思っています。
具体的には、個人アカウントで認証して組織を取得、組織毎のアカウントとパス
ワードに置き換えて
上記のパッケージに対してログオンする、シングルサインオンもどきのことを行
いたいと思っています。
headerに対するパラメタ値を渡すにはどうしたらよいのでしょうか?
自分で作ったものであれば、GETで受け取るようにするなり、セッション変数で
渡せるように作り直すことも可能でしょうが、パッケージなのでそうもいきません。

ネットで同じような用途かどうか判りませんが、POST送信をPHPで行う方法が書かれて
ありましたので、上記のパッケージに対して強制的にPOST送信でログオンさせる
スクリプトを作ってみました。(server及びgroupはログインフォーム上になくhtml上
で隠しフィールドとして記述されているパラメタ)

パスワードの属性に問題があるのかどうか判りませんが、動作しません。
エラーも何も出ないので調べようもなく行き詰っています。

<?php
$server = "http//localhost/p/login.exe";
$host = "localhost";
$port = 80;
$timeout = 30;
$userid = "MYNAME";
$password = "PASSWORD";
$data = "userid=".$userid."&password=".$password."&server=mars&group=PPP";
$sock = fsockopen($host, 80, $errno, $errstr, 60);
if($sock === FALSE){
echo "fsockopen error";
return (-1);
}
fwrite($sock, "POST " . $server . " HTTP/1.0\r\n");
fwrite($sock, "Content-Type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-Length: " . strlen($data) . "\r\n");
fwrite($sock, "\r\n");
fwrite($sock, $data);
fwrite($sock, "\r\n");
fclose($sock);
?>

このパッケージに対して、直接アカウントを指定するシングルサインオン自体は、使
用中のグループウェア上で実装されているので、何か方法があるかと思い、
お知恵を拝借致したくお願い申し上げます。

▼最終的に動作させたいスクリプトのイメージ
<?php
include_once('@Svr_Check.php');
if(isset($_POST['id'])){
if(Svr_Check($_POST['id'],$_POST['pass']) == true){
// 入力値が渡せない
????=$_POST["id"];
header("Location:http//localhost/p/login.exe");
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login</title>
</head>
<body>
<h3>ログイン</h3>
IDとパスワードを入れて下さい。
<form action="p@xxxxx" method="post">
ID:<input type="text" name="id" value="" size="20" maxlength="20">
PASSWORD:<input type="password" name="pass" value="" size="20"
maxlength="20">
<input type="submit" value="OK">
</form>
</html>

初穂太郎


_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2011年5月 2日 10:53
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103535
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。