2017-02-24 75 views
0

我在Apache上使用mod_auth_mellon进行外部身份验证,使用SAML和ADFS作为IDP。我得到一个会话Cookie的身份验证正在工作,但我没有得到由IDP发送的属性。mod_auth_mellon环境变量为空

我在另一个主题(mod_auth_mellon not populating environment variables)的答案中读到,这些属性必须写在RequestHeader中,这就是我正在做的。

我梅隆配置如下:

<Location/> 
    MellonEnable info 
    MellonSessionDump On 
    MellonSamlResponseDump On 

    MellonEndpointPath /mellon    
    MellonSPMetadataFile /etc/apache2/saml2/metadata.xml 
    MellonSPPrivateKeyFile /etc/apache2/saml2/metadata.key 
    MellonSPCertFile /etc/apache2/saml2/metadata.cert 
    MellonIdPMetadataFile /etc/apache2/saml2/FederationMetadata.xml 


    MellonSetEnv "MELLON_SESSION" "MELLON_SESSION" 
    MellonSetEnv "MELLON_SAML_RESPONSE" "MELLON_SAML_RESPONSE" 

    RequestHeader set Mellon-Session "%{MELLON_SESSION}e" 
    RequestHeader set Mellon-SAML-Response %{MELLON_SAML_RESPONSE}e 

    MellonSetEnvNoPrefix "MELLON_uid" "uid" 
    MellonSetEnvNoPrefix "MELLON_NameID" "NameID" 

    RequestHeader set Mellon-UID %{MELLON_uid}e 
    RequestHeader set Mellon-NameID "%{MELLON_NAME_ID}e" 
</Location> 

# This is a location that will trigger authentication when requested. 
<Location /adfshandler > 
    AuthType Mellon 
    MellonEnable auth 
    Require valid-user 
</Location> 

我可以看到在页眉的设置Atributes,我有价值观为所有这些,除了UID,UID为空。我必须在某处指定requestet属性吗?或者它是错误的名字?

回答

0

uid的变量名称与定义的IdP的元数据文件中的不同(我使用FriedlyName)。除了idP没有发送属性。在他们纠正了他们的ClaimRules后,我看到了SAMLResponse中的属性(在我的Broswer插件中)