2017-04-11 28 views
0

私はSAMLをセットアップしようとしています。サービスプロバイダとIDプロバイダの両方にSimpleSAMLphpを使用しました。だから私のサービスプロバイダをテストするために、私はssocircleを代替アイデンティティプロバイダとして使用するように設定しました。私が抱えている問題は、私が何をするにしても、RelayState(SimpleSAMLphpが最後にリダイレクトするために使用する)の代わりに/にリダイレクトされるということです。これに対処する規格の部分はありますか?それは常に/にリダイレクトすべきか、またはssocircleは私のパラメータを無視してはいけないのでしょうか?idpとしてssocircleを使用してページにリダイレクトするにはどうすればよいですか?

<a href="https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=https://myServer/simplesaml/module.php/saml/sp/metadata.php/sp2&RelayState=https://myServer/SAMLHandler.php?idp=2&destination=https://myServer/SAMLHandler.php?idp=2">Log in with ssocircle</a> 

答えに基づいて、私は次のように変更しましたが、私はまだ同じ結果を見ています。

https://idp.ssocircle.com/sso/hos/AdPage.jsp?returnUrl=/sso/idpssoinit&metaAlias=%2Fpublicidp&RelayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2 

その後、私は、私はロボットじゃないというボックスをクリックしてください:

ここ
<a href="https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&RelayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2">Log in with ssocircle</a> 

は私のブラウザが見るリンクの順序です。彼らは私を信じていないので、いくつかの画像を選ぶ必要があります。それから私は続けることができます。

https://idp.ssocircle.com/sso/idpssoinit?metaAlias=%2Fpublicidp&spEntityID=https%3A%2F%2FmyServer%2Fsimplesaml%2Fmodule.php%2Fsaml%2Fsp%2Fmetadata.php%2Fsp2&relayState=https%3A%2F%2FmyServer%2FSAMLHandler.php%3Fidp%3D2&g-recaptcha-response=03AOP2lf7g9SbzDz_d3YQ7s-RpbtUTdlIntJ8PCr-jHHK97Wmua4xHYOzk0jwRbbzbPUJnigOjEoCDib4LTcacS_0rd0rSvEve2JBZoDh5BxKHOFXae2Eht_ZYK2mOG6tS3VEwXxbM4u7Bgc3l3OY3tan2cRenS1aUcHQHggvlr32Jd5POg5a1wHm5cPx-AhdnRZZC3X-8pU1VSgjq4w1IqNBmCRCPICPOGWdnLrdab0-VOIV0NYkMFS66kUUFb69sTAASudJNZUds-6IFtmT2uqxBcMqAw25MrVUUj1q7LUl5E7t79lqW9zRhXc94TvsBJcrI1pEEWghK 

そして最後に

https://myServer/ 

私は私のAssertionConsumerServiceにダイ()の呼び出しを置けば、それは死ぬんが。 $ _REQUESTを印刷すると、RelayStateはありません。

答えて

1

SAMLおよびSSOCircle IDPは、RelayStateパラメータをサポートしています。 POSTパラメータとしてSAMLResponseメッセージと共に送信されます。パラメータが適切にURLエンコードされていることを確認してください。

更新:無料のSSOCircleアカウントの場合、IDPは追加のキャプチャページにリダイレクトされます。リダイレクト中に、RelayStateの値がサーバーで失われました。問題は修正されました。これらのユーザーはキャプチャページにリダイレクトされないため、有料のサブスクリプションアカウントでは動作を確認できませんでした。

+1

ブラウザのURLに質問を更新しました。私は、URLのエンコーディングを変更し、違いは見られません。 – Andrew

+0

URLエンコーディングを修正し、詳細なフローの説明は、問題に取り組むのに役立ちました。キャプチャの処理でパラメータが失われるようです。私のテストは、「ロボットなし」の傍受をスキップした有料のサブスクリプションアカウントに基づいていました。とにかくもう一度やってみてください。 – Hos

+0

有料の定期購読なしでは機能しませんか? – Andrew

0

レスキューへのurlencode;ブラウザがRelayState URLの一部であるパラメータとSAMLリクエストの一部であるパラメータを区別する方法

+0

これを 'Log in with ssocircle'に変更しました。同じ結果が表示されています。/ – Andrew

+0

にリダイレクトされます.SpEntityIDはURLエンコードされていないため、RelayStateパラメータがURLまたはspEntityIDに属していることが明確ではありませんパラメータ値。デフォルトでは前者が当てはまります。 URLエンコーディングが完全に正しいことを確認するだけです。 –

+0

私はそれが別のものになっていると信じています。元のURLのように扱われるのでしょうか?では、どうしてそれはうまくいかないでしょうか? – Andrew

関連する問題