1

我已经在 adfs 依赖方信任上配置了一个应用程序,所以我可以使用 adfs/sso 登录。之后,我安装了 simplesamlphp 来处理该登录,并处理响应 saml。

这是我的 authsources 配置:

'myauth' => array( 
    'saml:SP', 
    'idp' => 'http://domain/adfs/services/trust', 
    'privatekey' => 'saml.key', 
    'certificate' => 'saml.crt', 
), 

但是登录后,在返回帖子上我收到以下错误:

登录时出现异常:sspmod_saml_Error: Requester/InvalidNameIDPolicy Backtrace: 3 /home/......../adfs/simplesamlphp/modules/saml/lib/Message.php:376 (sspmod_saml_Message::getResponseError) 2 /home/。 ......../adfs/simplesamlphp/modules/saml/lib/Message.php:503 (sspmod_saml_Message::processResponse) 1 /home/......../adfs/simplesamlphp/modules/saml/ www/sp/saml2-acs.php:81 (要求) 0 /home/......../adfs/simplesamlphp/www/module.php:135 (N/A)

我错过了什么吗?我如何获得该名称 ID 政策?在哪里定义它?

谢谢

4

1 回答 1

3

simplesamlphp 通常使用 UPN 或电子邮件作为 NameID。您需要检查配置。

所以在 ADFS 中,创建两个声明规则:

创建声明的一种(UPN 或电子邮件)- 普通的 LDAP 一种。

以及采用上述内容并转换为具有“瞬态”类型的 NameId 声明的转换。

同样,simplesamlphp 可能没有使用瞬态 - 您需要检查配置。

更新:

假设 UPN:

c:[Type == " http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname ", Issuer == "AD AUTHORITY"] => issue(store = "Active Directory", types = (" http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn "), 查询 = ";userPrincipalName;{0}", 参数 = c.Value);

c:[类型==“ http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn ”]=>问题(类型=“ http://schemas.xmlsoap.org/ws/2005 /05/identity/claims/nameidentifier ",颁发者 = c.Issuer,OriginalIssuer = c.OriginalIssuer,值 = c.Value,ValueType = c.ValueType,属性 [" http://schemas.xmlsoap.org/ws/2005 /05/identity/claimproperties/format "] = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient");

于 2013-11-06T20:29:18.513 回答