我使用 SimpleSAMLphp 作为 OpenID 消费者,但我尝试的 openID 提供程序似乎都不起作用。
我总是收到以下错误:
Exception during login: SimpleSAML_Error_BadRequest: BADREQUEST('%REASON%' =>
'Not a valid OpenID: \'https://www.google.com/accounts/o8/id\'')
或者:
Exception during login: SimpleSAML_Error_BadRequest: BADREQUEST('%REASON%' =>
'Not a valid OpenID: \'https://me.yahoo.com\'')
我尝试将我的 ID 与其他网页一起使用,并且运行正常。
我正在使用 apache 2.2 和 php5.3 以及来自有效 CA 的证书。有什么线索可以告诉我该如何解决这个问题吗?有人遇到过同样的问题吗?我还试图理解为什么库返回的 authn_request 为空...
答案1
我的 authsources 只是默认值加上 yahoo:
'openid' => array(
'openid:OpenIDConsumer',
'attributes.required' => array('nickname'),
'attributes.optional' => array('fullname', 'email',),
// 'sreg.validate' => FALSE,
'attributes.ax_required' => array('http://axschema.org/namePerson/friendly'),
'attributes.ax_optional' => array('http://axschema.org/namePerson','http://axschema.org/contact/email'),
// Prefer HTTP redirect over POST
// 'prefer_http_redirect' => FALSE,
),
'yahoo' => array(
'openid:OpenIDConsumer',
'target' => 'https://me.yahoo.com',
'attributes.ax_required' => array(
'http://axschema.org/contact/email',
),
'extension.args' => array(
),
),
'google' => array(
'openid:OpenIDConsumer',
// Googles OpenID endpoint.
'target' => 'https://www.google.com/accounts/o8/id',
// Custom realm
// 'realm' => 'http://*.example.org',
// Attributes that google can supply.
'attributes.ax_required' => array(
//'http://axschema.org/namePerson/first',
//'http://axschema.org/namePerson/last',
//'http://axschema.org/contact/email',
//'http://axschema.org/contact/country/home',
//'http://axschema.org/pref/language',
),
// custom extension arguments
'extension.args' => array(
//'http://specs.openid.net/extensions/ui/1.0' => array(
// 'mode' => 'popup',
// 'icon' => 'true',
//),
),
),