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

Shibboleth Service Provider - How to populate REMOTE_USER variable

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

我不明白的是,为了将 NameID 的值映射到 REMOTE_USER

,我需要专门在属性 -map.xml 文件中放入什么

当我点击我的应用程序 URL 时,它会重定向到 ADFS,然后我在 Shibboleth transaction.log 中看到 NameID 填充了我的用户名。我想要做的是将 REMOTE_USER 设置为该值。

非常感谢任何帮助

上面 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>

要在 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