AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 701071
Accepted
OrangeGrover
OrangeGrover
Asked: 2015-06-24 10:36:50 +0800 CST2015-06-24 10:36:50 +0800 CST 2015-06-24 10:36:50 +0800 CST

AD FS - 将 AD 属性发送到 Shibboleth SP

  • 772

我设置了一个 AD FS 声明提供程序,并且一个 Shibboleth SP 成功地对其进行了身份验证。当我登录到受 Shibboleth 保护的站点时,索引会显示所有标题。我按预期收到了 UPN,但我无法获取要发送的其他属性,例如 surname 或 sAMAccountName。

我目前有 3 条索赔规则: 索赔规则

规则1:

规则 2:

规则 3:

从 Shibboleth SP 机器上的日志来看,sn 似乎没有作为 OID 属性发送。

如果我编辑 attribute-map.xml 并删除对 eppn 的引用,那么我会在 shibd 日志中得到以下内容:

2015-06-23 11:29:08 INFO Shibboleth.AttributeExtractor.XML [1]: skipping unmapped SAML 2.0 Attribute with Name: urn:oid:1.3.6.1.4.1.5923.1.1.1.6

在 shibd 日志中没有提到与上述输出类似的 surname 或 sn,这让我认为“转换 SN”规则没有正确写入。


更新信息:

sn通过将规则 1 从手动输入更改为选择下拉选项,我能够让姓氏起作用surname。我需要做什么才能让其他没有下拉菜单的 AD 字段选择工作?

我正在添加诸如streetAddress. 对于规则 1,我为 LDAP 属性和传出声明类型手动输入了 streetaddress。

然后我添加了一个附加规则:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress"]
 => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");

我不知道是否http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress正确,但值不是映射。
如何让无法从下拉列表中选择的 LDAP 属性起作用?


编辑2:

我忘了添加选择查看规则语言的结果(按照下面的 Matthieu 的要求):

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
 => issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", "streetaddress"), query = ";userPrincipalName,sn,givenName,sAMAccountName,streetaddress;{0}", param = c.Value);

似乎它只是 get streetaddress,而所有其他值都有一个模式。由于没有架构,它不会匹配 Transform 规则,streetaddress因为 if 语句正在寻找http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress. 对于未从下拉选择中选择的值,我应该怎么做?


我想到了:

我将转换规则更改为以下内容:

 c:[Type == "streetaddress"]
     => issue(Type = "urn:oid:2.5.4.232", Value = c.Value, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");

我没有寻找 Type == A 模式,而是输入街道地址。然后在 Shibboleth SP 中,我更改了 Attribute-map.xml 以添加以下内容:

<Attribute name="urn:oid:2.5.4.232" id="streetaddress"/>

上面的 OID 是任意的。

adfs
  • 1 1 个回答
  • 2071 Views

1 个回答

  • Voted
  1. Best Answer
    Matthieu
    2015-06-25T03:20:37+08:002015-06-25T03:20:37+08:00

    要检查您的“转换 SN”规则是否按预期工作,请安装Fiddler。然后安装此检查器,以便更轻松地阅读 SAML 消息。

    使用这些工具,您将能够查看从 ADFS 服务器发送到 Shibboleth SP 的内容。然后你就会知道配置错误在哪一侧。

    编辑:在屏幕 #1 的窗口底部,单击“查看规则语言”按钮时会看到什么?您是否在右侧的“Outgoing Claim Type”框中手动输入了“sn”?

    编辑 2:您在框中输入的内容正是用作声明类型的内容。如果您键入“foo”,则您的声明类型为“foo”。如果你想要“ http://foo ”,那么你必须输入“ http://foo ”。如果您需要长声明类型,而不是在框中键入所有内容,而是创建一个新的声明描述(导航左侧的树,“AD FS”->“服务”->“声明描述”)。这会在下拉列表中创建一个新选项,使用起来更简单。

    • 2

相关问题

  • ADFS v2 服务器是否必须位于实际的域服务器上?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve