0

CAS サーバーの SAML 1.1 認証で空の応答が返されました

私たちは長い間、CAS SAML 1.1 プロトコルに悩まされてきました。

CAS クライアント ライブラリである phpCAS を使用しています。

ユーザーの電子メールなどのユーザー属性を取得するために、プロトコル SAML 1.1 を使用しています。

しかし、空の応答エラーで失敗しました。

クライアント ログは次のとおりです: (これはインタラクション ログの一部で、少し長いですが、理解しやすいものです)

3CEE .|    |    |    |    => CAS_Client::_readURL('https://portail.cigref.fr/cas/samlValidate?TARGET=https%3A%2F%2Frfly-99.cvtest.com%2Fztest%2FphpCAS%2Fdocs%2Fexamples%2Fexample_simple.php', NULL, NULL, NULL) [Client.php:2062]
3CEE .|    |    |    |    |    => CAS_Client::_buildSAMLPayload() [Client.php:2806]
3CEE .|    |    |    |    |    <= '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><samlp:Request xmlns:samlp="urn:oasis:names:tc:SAML:1.0:protocol"  MajorVersion="1" MinorVersion="1" RequestID="_192.168.16.51.1024506224022" IssueInstant="2002-06-19T17:03:44.022Z"><samlp:AssertionArtifact>ST-5376-cjRtmnPYQBxIMFWOQY1x-cas01.example.org</samlp:AssertionArtifact></samlp:Request></SOAP-ENV:Body></SOAP-ENV:Envelope>'
3CEE .|    |    |    |    |    => CAS_Request_CurlRequest::sendRequest() [AbstractRequest.php:242]
3CEE .|    |    |    |    |    |    CURL: Set CURLOPT_CAINFO ../../ssl/portail.cigref.fr.pem [CurlRequest.php:132]
3CEE .|    |    |    |    |    |    Response Body: 
3CEE .|    |    |    |    |    |    
3CEE .|    |    |    |    |    |     [CurlRequest.php:84]
3CEE .|    |    |    |    |    <= true
3CEE .|    |    |    |    <= true
3CEE .|    |    |    |    server version: S1 [Client.php:2071]
3CEE .|    |    |    |    dom->loadXML() failed [Client.php:2082]
3CEE .|    |    |    |    => CAS_AuthenticationException::__construct(CAS_Client, 'SA not validated', 'https://portail.cigref.fr/cas/samlValidate?TARGET=https%3A%2F%2Frfly-99.cvtest.com%2Fztest%2FphpCAS%2Fdocs%2Fexamples%2Fexample_simple.php', false, true, '') [Client.php:2087]
3CEE .|    |    |    |    |    => CAS_Client::getURL() [AuthenticationException.php:76]
3CEE .|    |    |    |    |    <= 'https://rfly-99.cvtest.com/ztest/phpCAS/docs/examples/example_simple.php'
3CEE .|    |    |    |    |    CAS URL: https://portail.cigref.fr/cas/samlValidate?TARGET=https%3A%2F%2Frfly-99.cvtest.com%2Fztest%2FphpCAS%2Fdocs%2Fexamples%2Fexample_simple.php [AuthenticationException.php:79]
3CEE .|    |    |    |    |    Authentication failure: SA not validated [AuthenticationException.php:80]
3CEE .|    |    |    |    |    Reason: bad response from the CAS server [AuthenticationException.php:85]
3CEE .|    |    |    |    |    CAS response:  [AuthenticationException.php:101]
3CEE .|    |    |    |    |    exit()
3CEE .|    |    |    |    |    -

チケットは有効で、ペイロードは送信されましたが、応答本文は空です。

上記のログは、お客様の CAS サーバーのものです。

ローカル CAS サーバーでテストを行いましたが、問題ありません。

また、Tomcat ログである顧客の CAS サーバー ログを確認したところ、次のことがわかりました。

2016-03-22 03:31:25,647 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Audit trail record BEGIN

=============================================================

WHO: audit:unknown

WHAT: ST-5376-cjRtmnPYQBxIMFWOQY1x-cas01.example.org

ACTION: SERVICE_TICKET_VALIDATED

APPLICATION: CAS

WHEN: Tue Mar 22 03:31:25 CET 2016

CLIENT IP ADDRESS: 124.127.186.129

SERVER IP ADDRESS: 178.22.130.235

=============================================================



2016-03-22 03:31:25,647 DEBUG [org.jasig.cas.web.ServiceValidateController] - Successfully validated service ticket ST-5376-cjRtmnPYQBxIMFWOQY1x-cas01.example.org for service [https://rfly-99.cvtest.com/ztest/phpCAS/docs/examples/example_simple.php]

チケットが検証され、関連するはずのないログアウト エラーを除いて、ログにエラーはありません。

この問題の理由は何ですか? 誰もこの問題に遭遇したことがありますか? 私たちを助けてください。

4

1 に答える 1

0

チケットを samlValidate にも渡す必要はありませんか? TARGETしか見えない。

于 2016-03-29T16:14:13.027 に答える