我在Apache上使用mod_auth_mellon进行外部身份验证。我得到了一个会话Cookie,身份验证正在工作,但我没有得到IDP发送的属性。
我在另一个主题(mod_auth_mellon not populating environment variables)的答案中看到,属性必须在RequestHeader中编写,这就是我正在做的事情。
我的mellon配置如下:
<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>我可以在标题中看到set Atributes,并且除了uid之外的所有属性都有值,uid为空。我必须在某个地方指定requestet属性吗?或者是名字错了?
发布于 2017-03-01 21:33:30
uid的变量名与定义的IdP的元数据文件中的名称不同(我使用的是FriedlyName)。此外,idP没有发送该属性。在他们更正了他们的ClaimRules之后,我在SAMLResponse中看到了这个属性(在我的浏览器插件中)
发布于 2018-04-23 22:40:27
您应该尝试使用:
MellonSetEnvNoPrefix REMOTE_USER NAME_ID
RequestHeader Myheader %{REMOTE_USER}e请注意,它不适用于"NameID“
https://stackoverflow.com/questions/42438405
复制相似问题