Shibboleth服务提供商 - 如何填充REMOTE_USER变量

时间:2017-06-09 18:54:16

标签: adfs shibboleth

环境: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。

非常感谢任何帮助

2 个答案:

答案 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_USER
REMOTE_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