2

simplesamlphp をサービス プロバイダーとして使用しているときに SAML 2.0 トークンを正常に受信した後、次のエラーが発生します。

 Oct 21 17:30:15 simplesamlphp DEBUG [6b6e3c270f] GenerateGroups - attribute 'eduPersonAffiliation' not found.
    Oct 21 17:30:15 simplesamlphp DEBUG [6b6e3c270f] Session: doLogin("default-sp")
    Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Unable to find the SAML 2 binding used for this request.
    Oct 21 17:30:15 simplesamlphp WARNING [6b6e3c270f] Request method: 'GET'
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] Backtrace:
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] 0 /var/www/simplesamlphp/www/module.php:180 (N/A)
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] Caused by: Exception: Unable to find the current binding.
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] Backtrace:
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] 2 /var/www/simplesamlphp/lib/SAML2/Binding.php:95 (SAML2_Binding::getCurrentBinding)
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] 1 /var/www/simplesamlphp/modules/saml/www/sp/saml2-acs.php:11 (require)
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] 0 /var/www/simplesamlphp/www/module.php:135 (N/A)
    Oct 21 17:30:15 simplesamlphp ERROR [6b6e3c270f] Error report with id bd213fb5 generated.

私のSPは次のよ​​うに設定されています:

**authsources.php**

    'default-sp' => array(
        'saml:SP',
        'entityID' => NULL,
        'idp' => NULL,
        'discoURL' => NULL,
        'RelayState' => '{link to my application}',
        'acs.Bindings' => array(
            'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
            'urn:oasis:names:tc:SAML:1.0:profiles:browser-post',
        ),
    ),

saml20-idp-remote.php

$metadata['https://{idp entity id}'] = array(
    'metadata-set' => 'saml20-idp-remote',
    'entityid' => 'https://{idp entity id}',
    'name' => array(
        'en' => 'IDP Name',
        'no' => 'IDP name',
    ),
    'description'  => 'IDP desc',
    'SingleSignOnService' => 
      array (
        0 => 
        array (
          'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
          'Location' => '{SSO url}',
        ),
        1 =>
        array(
          'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact',
          'Location' => '{SSO url}',
        ),
      ),
    'SingleLogoutService'  => '{SLO url}',
    'certFingerprint' => '{the fingerprint}',
);

私はシングルサインオンにかなり慣れていません。機密保持のために URL も非表示にしましたが、何か不足しているのか、それともこのエラーがスローされる原因なのかはわかりません。誰かが私を正しい方向に向けるのを助けることができれば、それは大歓迎です。また、 https://drupal.org/project/simplesamlphp_authを使用してアプリケーションにフックしようとしていることに言及する必要があります。

これは IDP ファースト フローです。私はmysqlを使用してセッションを保存しています。

4

2 に答える 2

5

" Unable to find the current binding." は、現在のバインディングを特定できないことを正確に意味します。あなたの saml20-idp-remote.php には HTTP-POST バインディングが記載されており、ログには が記載Request method: 'GET'されていhttps://…/module.php/saml/sp/saml2-acs.php/default-spます。

ここでは勝手な推測をしていますが、私の経験では、最も一般的な原因は Web サーバーのリダイレクトです。たぶん、別のホスト名にリダイレクトしますか?HTTPS を強制しますか? AssertionConsumerServiceの URLが正しいことを IdP で確認します。リダイレクトなしで SimpleSamlPhp に直接つながるはずです。

于 2014-03-03T17:52:22.237 に答える
1

私は同じ状況に直面しました。

saml エンティティは、リダイレクト コード 301 で www.mysite.com を mysite.com にリダイレクトしていた apache 構成で www.mysite.com を指していました。

ありがとう、アヌバフ

于 2016-05-06T12:10:36.260 に答える