环境:Linux / Apache / Shibboleth SP 2.6
我正在寻找一些帮助,我需要做的映射才能填充REMOTE_USER变量。我不确定究竟需要添加到attribute-map.xml文件中才能实现这一点。
在shibboleth2.xml文件中,我们有..
<ApplicationDefaults entityID="https://tap-jmistst-rv02.usmstest.doj.gov/shibboleth"
REMOTE_USER="eppn persistent-id targeted-id"
cipherSuites="ECDHE+AESGCM:ECDHE:!aNULL:!eNULL:!LOW:!EXPORT:!RC4:!SHA:!SSLv2">
我不明白的是我需要特别放在attribute-map.xml文件中以便将NameID的值映射到REMOTE_USER
当我点击我的应用程序URL时,它会重定向到ADFS,然后我看到NameID在Shibboleth transaction.log中填充了我的用户名。我尝试做的是使用该值设置REMOTE_USER。
非常感谢任何帮助
答案 0 :(得分:1)
上面的ApplicationDefaults元素中的REMOTE_USER属性表示SP将用于填充Apache的REMOTE_USER的已解码属性列表(按优先顺序排列)。
为了使用Assertion NameID填充它,您首先需要将此解码为一个属性(此处名为persistent-id,但随时可以更改它)
<Attribute name="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" id="persistent-id">
<AttributeDecoder xsi:type="NameIDAttributeDecoder" formatter="$NameQualifier!$SPNameQualifier!$Name" defaultQualifiers="true"/>
</Attribute>
然后使用
将其分配给REMOTE_USERREMOTE_USER="persistent-id"
在你的
中<ApplicationDefaults>
答案 1 :(得分:0)
要在Linux(CentOS和RHEL 6和7)中填充REMOTE_USER参数,请使用mod_auth_ntlm_winbind配置apache。然后,您可以将参数传递给您的应用程序。
要配置mod_auth_ntlm_winbind,请参阅:https://hemakhema.blogspot.ae/2017/07/enable-sso-login-in-linux.html