SimpleSamlphp:在另一个属性

时间:2015-06-08 10:01:33

标签: php simplesamlphp

我实际上使用simpleSamlPhp在我的网站上创建了一个身份验证,所以我在我的网站上安装了一个服务提供商,我也安装了一个身份提供商,直到他们没问题。我的服务提供商连接到我的身份提供商,连接工作正常。

我的文件“config / authsources.php”是我的不同用户:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => 'att2'
        )
    ),
    ...
),
...

我的问题是,我希望在一个属性中有几个attribut,因为它有类似的东西:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => array(
                'Attribut21' =>  'att21',
                'Attribut22' => 'att22',
                 ...    
            )
        )
    ),
    ...
),
...

但是当我这样做时,我有这个错误:

SimpleSAML_Error_Error: UNHANDLEDEXCEPTION
Backtrace:
1 C:\wamp\www\Idp\simplesamlphp\www\_include.php:37 (SimpleSAML_exception_handler)
0 [builtin] (N/A)
Caused by: Exception: Invalid attributes for user userTest in authentication source example-userpass: Invalid attribute value for attribute Attribut2: array (
  'Attribut21' => 'att21',
  'Attribut22' => 'att22'
)

那么我如何在其他属性中添加一个attribut?

2 个答案:

答案 0 :(得分:0)

更改

'Attribut21' =  'att21',
'Attribut22' = 'att22',

'Attribut21' =>  'att21',
'Attribut22' => 'att22',

因为它们应该是associative array

编辑:好的,不知道这里的问题是什么......我要发布一个例子,希望你能理解这个模式。 (每个数组实际上都是更多的属性)

<?php
$config = array(
    'example-userpass' => array(
        'exampleauth:UserPass',
        'student:studentpass' => array(
            'uid' => array('student'),
            'eduPersonAffiliation' => array('member', 'student'),
        ),
        'employee:employeepass' => array(
            'uid' => array('employee'),
            'eduPersonAffiliation' => array('member', 'employee'),
        ),
    ),
);

答案 1 :(得分:0)

最后我不得不这么做:

$config = array(
    ...
    'example-userpass' => array(
        'userTest:pwd' => array(
            'uid' => array('userTest'),
            'NameIdentifier' => 'Test',
            'Attribut1' => 'att1',
            'Attribut2' => array(
                'att21',
                'att22',
                 ...    
            )
        )
    ),
    ...
),
...