我在saml20-SP-hosted.php中配置了多个SP,我希望我的一个SP使用mail属性作为nameid。
saml20-sp-hosted.php
$metadata['entityId1'] = array (
'entityid1' => 'entityId',
'contacts' =>
array (
0 =>
array (
'contactType' => 'technical',
'givenName' => 'XXX',
'surName' => 'XXX',
'emailAddress' =>
array (
0 => 'XXX@YYY.com',
),
),
),
'metadata-set' => 'saml20-sp-remote',
'attributes' => array('mail', 'sn', 'givenName', 'uid'),
'AssertionConsumerService' =>
array (
0 =>
array (
'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
'Location' => 'http://www.XXXYYY.com/SSO/ACS.aspx',
'index' => 0,
),
),
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
);
对于上面给定的SP,我想使用"mail"属性作为nameid,但我在下面给定的idp文件中定义了"uid"属性,因此它正在覆盖该属性。如果我试图在saml20-sp-hosted.php文件中用"mail"属性进行覆盖,它将发布临时名称ID。
saml20-idp-hosted.php
'authproc' => array(
3 => array(
'class' => 'saml:AttributeNameID',
'attribute' => 'uid',
'Format' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
),
50 => array(
'class' => 'core:AttributeMap',
'mail' => 'Email',
'sn' => 'Lastname',
'givenName' => 'Firstname',
// 'memberOf' => 'Groups',
'uid' => 'Username'
//'cn' => array('name', 'displayName', 'sn'),
),
),
您确定您的IdP端文件是saml20-IdP-hosted.php,而不是saml20-sp-remote.php吗?