なぜHTML形式のリダイレクトに使用OpenID2?
質問
なぜい自動HTMLポストより簡単にリダイレクト?
このよう開発者は自動的に生成するログイン形の投稿ディレクトリのリモートサーバーの場合はOpenIDですか。
例えば.
- ユーザーがログインしていない訪問などお客様のログインページです。
- きを検出するユーザーのopenIDからクッキー.
- ォームが生成される直接投稿をリモートOpenIDサーバーです。
- リモートサーバーのリダイレクトのユーザーに戻ります。
- サイトにログインのユーザーです。
そのような場合にはご覧になれます。しかしこのままで、ユーザーのopenIDにクッキーがログインします。
私が非常に少ない情報をどのようにこの仕様はベストを実装します。
見HTML形式のリダイレクトの公式スペック:
http://openid.net/specs/openid-authentication-2_0.html#indirect_comm
ここから見る PHP OpenID Library (バージョン2.1.1).
// Redirect the user to the OpenID server for authentication.
// Store the token for this authentication so we can verify the
// response.
// For OpenID 1, send a redirect. For OpenID 2, use a Javascript
// form to send a POST request to the server.
if ($auth_request->shouldSendRedirect()) {
$redirect_url = $auth_request->redirectURL(getTrustRoot(),
getReturnTo());
// If the redirect URL can't be built, display an error
// message.
if (Auth_OpenID::isFailure($redirect_url)) {
displayError("Could not redirect to server: " . $redirect_url->message);
} else {
// Send redirect.
header("Location: ".$redirect_url);
}
} else {
// Generate form markup and render it.
$form_id = 'openid_message';
$form_html = $auth_request->htmlMarkup(getTrustRoot(), getReturnTo(),
false, array('id' => $form_id));
// Display an error if the form markup couldn't be generated;
// otherwise, render the HTML.
if (Auth_OpenID::isFailure($form_html)) {
displayError("Could not redirect to server: " . $form_html->message);
} else {
print $form_html;
}
}
解決
次のものに対するモチベーションとしてマークBrackettのとおり、制限ペイロードサイズ制をリダイレクトや取得します。一部の実装にだけ使用時のメッセージが、一定規模以上のとおりであ確かに、これらの点、ポスト。(長していることは"戻る"ボタンは無効となります。) その他の実装のコード例は、ま引用され、簡単のため、一貫性のなのでしょうかることを条件.
他のヒント
私はを考えることができるカップルでの理由
- A modicumのセキュリティの育ではややとがありまざまな用途で使用さ後の投稿もカップル-家族で来られた
- キャッシュおよび再提出の規則がより厳しい方のためのポストより取得します。いかにこのようにOpenIDの利用の場合れています。
- ボットなのポスト形式でのリダイレクト.この影響を及ぼすサーバー負荷時のものです。
- 異なるブラウザの違い最大の長さが短く要請が無かったとします。
- 一部のブラウザに警告を表示上にリダイレクトを別のドメイン.ションの制作について警告れば提出し後、非HTTPS url。
- の回転によるJavaScriptをoffでき、比較的安で体験できない静にリダイレクトを別のドメイン.
わからないがいずれもマ-ダンクを選択すべき理由の後い限りデータの送信を超えるquerystring長くつかの主要なブラウザです。
同じような質問をするとともに、使用のためにSAML WebブラウザSSOます。の原動機のHTMLを利用した後のリダイレクト:
実質的に無限の長さのペイロード:にSAML、ペイロードはXML文書の署名XMLDSigとbase64エンコードします。では通常1024文字制限のURL(ベストプラクティスをサポートするのみならず他のブラウザが仲介ネットワーク機器などのファイアウォール、リバースプロキシとして、負荷バランサーもいらっしゃいます)。
W3CのHTTPの標準というトを取り付ける際に使用します。べき等と同じURLを取得し複数回実行されず、結果と同じ対応を結キャッシュするまでの道中にはいないと報告することが義務付けられ、URLます。の応答OpenID HTML形式はSAML HTML形式の後はキャッシュされます。で報告することが義務付けられ、標的に認証された。
できると主張を使用しHTTPリダイレクトを取得しい仕事のURLのクエリはいつでも、いいです。しかし、この回避策は、W3C標準とすべきでない標準的な代替の実装もの両端に同意します。