へのアクセスへのPHPアプリケーションを許可する私は/のOAuth2/openam者のエンドポイントを認可へのアクセスにアクセスするには、このPHPスクリプトを使用しています:は/のOAuth2 /エンドポイントOPENAMを承認
<?php
//debug
error_reporting(E_ALL);
ini_set('display_errors', 1);
//debug end
function get_web_page($url)
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => true, // return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
);
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
//print($header[0]);
echo $content;
//var_dump($content);
return $header;
}
$thisurl = "http://openam.example.com:8080/openam/oauth2/authorize?realm=/openLDAP&client_id=agent2&redirect_uri=http://openam.test.com:8080/openam&response_type=code&scope=profile";`
$myUrlInfo = get_web_page($thisurl);
//echo $myUrlInfo["url"];
?>
そして、私は空白のWebページを取得していますが、私は "ForgeRock Access ..."のサブタイトルで見ることができ、 "agent2"を "agent1"に変更すると、私はこのエラーがデバッグフォルダにあるので、agent2認証が成功したと思います。ERROR: Unable to get Client Registration for client_Id = agent1
それが私がエンドポイントに接続するが、私はなぜユーザー認証Webページにリダイレクトされていないのか分からない。 私はすでに同じスクリプトを試して、URLを "https://www.google.fr/"に変更します。その場合、私はGoogleにリダイレクトされます。 ご協力いただきありがとうございます。 var_dump($ myUrlInfo)を追加した後の出力。 :
array(26){["url"] => string(35) "http://openam.test.com:8080/openam/" ["content_type"] =>文字列(9) "text/html" ["http_code"] => int(200 ["ssl_verify_result"] => int(0)["redirect_count"]は、["header_size"] => int(391)["request_size"] => int(498) float(1.7E-5)["pretransfer_time"] => int(1)["total_time"] => float(0.007415)["namelookup_time"] => float(1.4E-5)["connect_time" float(169)["speed_download"] => float(219285)["speed_upload"] => float(9.4E-5)["size_upload"] => float float(0)["download_content_length"] => float(1626)["upload_content_length"] => float(0)["starttransfer_time"] =>浮動小数点(0.001315)["redirect_time"] =>浮動小数点(0.006082)[" (0){} ["primary_port"] =>文字列(12) "XXX.XX.XX.XX" ["certinfo"] =>配列(0) > int(xx)["local_ip"] => string(12) "XX.XX.XX.XX" ["local_port"] => t(xxx)}
openamがライブドメインのみにリダイレクトするかどうかをテストする別のライブドメインにリダイレクトし、サブドメインではなくドメインにリダイレクトしようとします。 –
ありがとう@LasVegasCoder。ライブドメインではどういう意味ですか?私は既にhttp://openam.example.com:8080/openamにリダイレクトしようとしましたが、このエラーが発生しました:Not Found 要求されたURL/umaTestAppli/UI/Loginはこのサーバ上に見つかりませんでした。私はなぜそれが/ umaTestAppli/UI/Loginを取得しようとしているのか分かりませんでした。 http://openam.test.com:8080/openam/XUI/#login/ – aicha
私のPHPアプリケーションのURLは:http://uma.test.com/umaTestAppli/ – aicha