php – ADFS 2.0 InvalidNameIDPolicy

我已经在adfs依赖方信任上配置了一个应用程序,因此我可以使用adfs / sso登录.
之后i’va安装了simplesamlPHP来处理该登录,并处理响应saml.

这是我的authsources配置:

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

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

Exception during login: 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
(require) 0
/home/……../adfs/simplesamlPHP/www/module.PHP:135
(N/A)

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

谢谢

解决方法:

simplesamlPHP通常使用UPN或电子邮件作为NameID.你需要检查配置.

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

一个用于创建声明(UPN或电子邮件) – 普通的LDAP声明.

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

同样,simplesamlPHP可能没有使用瞬态 – 您需要检查配置.

更新:

假设UPN:

c:[Type ==“http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname”,Issuer ==“AD AUTHORITY”]
 =&GT issue(store =“Active Directory”,types =(“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn”),query =“; userPrincipalName; {0}”,param = c.Value);

c:[Type ==“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn”]
 =&GT issue(Type =“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier”,Issuer = c.Issuer,OriginalIssuer = c.OriginalIssuer,Value = c.Value,ValueType = c.ValueType,Properties [“http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format”] =“urn:oasis:names:tc:SAML: 2.0:填充NameID格式:瞬态“);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...