问题标签 [shibboleth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-ec2 - AWS 和 Shibboleth/SAML
我一直在研究是否可以将 Shibboleth/SAML 与 Amazon Web Services 一起使用。
我发现这方面的信息很少。据我所知,可以在 EC2 服务器上安装 Shibboleth/SAML 作为服务提供者。
我不太确定的是是否有可能将所有 AWS 与 Shibboleth 联系起来——以及这将如何运作。
我对这三个方面的知识都模糊不清——我读了很多书,但我对这项技术一点也不熟悉。
shibboleth - Shibboleth 身份服务器使用外部 Shibboleth 身份服务器进行身份验证
我正在设计一项服务来处理跨多个托管平台的身份验证。该服务需要能够为用户管理许多不同的协议:LDAP、Shibboleth,毫无疑问还有其他。
我希望在内部使用 Shibboleth 协议并将服务作为 Shibboleth IdP 运行,其中取决于用户类别、受保护资源的性质等。身份验证的艰苦工作被传递到本机 LDAP、Shibboleth 或其他服务器用户已经有一个帐户。
似乎这应该是可能的,但我还没有从 Shibboleth 文档中获得足够的清晰度来确定它是否是,更不用说如何去做了。
这可能吗?我该怎么做?非常感谢有用的文档。
php - php 仅在受 shibboleth 保护的目录中不被解释
我到处寻找答案,但没有成功。
我在我的 OSX Web 服务器上安装了 PHP。当我访问 myserver.com/test.php 时,一切正常。
但是,我有一个由 mod_shib 和 shibd 保护的子目录,名为 /shibboleth/
当我将完全相同的 test.php 文件放入 /shibboleth/ 时,它会返回给浏览器而不是解释。我弄乱了 AddType 和 AddHandler 的一百万种组合;我已经检查过我正在使用
这是我的 httpd.conf 文件的相关部分:
apache - Apache Config - 从身份验证中排除位置
我有一个受 Shibboleth 身份验证模块保护的 Web 应用程序。我当前的配置如下
shibboleth是一个提供 SSO 功能的身份验证模块,当前流程将用户引导到身份提供者,以便用户输入登录凭据。我希望能够打开一个特定的 URL,以便 URL 被身份验证模块绕过。我尝试了以下方法,但它似乎不起作用,并且在加载 URL 时出现空白页
方法一
方法二
我做了一些额外的调试,似乎问题出在Login.html加载的其他文件上 - 例如 css、js 等。在 Apache 中配置它的正确方法是什么,以便可以绕过身份验证中的 Login.html
谢谢
ruby-on-rails - OmniAuth Shibboleth 策略配置未通过
我正在尝试使用omniauth-shibboleth策略(使用rack-saml)。
我的omniauth初始化程序如下所示:
一切都是成功的,直到omniauth-shibboleth应该设置omniauth.auth
ENV变量,但这最终是部分的。
即-它确实检测到eduPersonPrincipalName
并将其uid
正确传递给归档-我可以看到它。
但它无法填写email
,并且额外的参数cn, sn, schacHomeOrganization
。
我已经验证了request.env
确实包含所有必需的属性,所以问题不在于 Shibboleth 方面。
为了调试,我硬编码了 Gem 文件中的选项lib/omniauth/strategies/shibboleth.rb
:
然后一切正常。
因此,我的Omniauth设置或omniauth-shibboleth处理选项的方式似乎存在问题,因此我的配置最终不会与默认值合并。
我究竟做错了什么?
版本:
single-sign-on - 我是否应该要求 IdP 签署 SAML2 SSO 响应?
我们的应用程序与 3 个不同的 (Shibboleth) IdP 集成了 SAML2 SSO。我们正在尝试添加第 4 个(也是 Shibboleth),但遇到了一些问题,因为我们的应用程序希望所有 SSO 响应都经过可验证签名。其他 3 个正在签署他们的响应,但第 4 个没有,并且犹豫是否添加自定义配置以强制为我们的应用程序签名。
从技术上讲,我可以修改我们的应用程序以接受未签名的 SSO 响应,但我想知道我是否应该这样做。允许未签名的 SSO 响应有哪些陷阱?是否存在安全漏洞?
是否有任何 Shibboleth(或其他 SAML2 SSO)文档建议将响应签名作为最佳实践?
apache - 同一路径的多个 Apache 位置指令
我有一个 Web 应用程序当前在两个 HTTPS 端口上提供服务 - 比如说443和8443。该应用程序有一个 Apache HTTP 服务器作为前端,我在设置 Apache 配置以排除其中一个端口上的某些路径时遇到了麻烦。我在Apache中设置了如下配置
我在 Apache 中设置了我的虚拟主机,如下所示
考虑到Location指令不获取主机和端口信息,上述配置的预期问题是什么?Location 指令是使用第一个匹配条目还是会使用一个之后的条目?
了解 Shibboleth 的人的更多详细信息
第一个位置条目允许用户在 SSO(单点登录)环境中访问应用程序。第二个条目旨在允许用户在不通过 SSO 的情况下访问不同端口 (8443) 上的同一虚拟主机。我们看到的是,请求标头在处理链的末端丢失了。当我删除第二个 Location 条目时,一切正常。
permissions - 我可以使用 Shibboleth 将其他用户的不同属性呈现给不同的用户吗
好的,所以这是一个措辞不好的问题。但是很难用一句话来解释。
我试图阅读 Shibboleth 文档,并且作为一个新手很快就超出了我的深度。如果专家可以花半分钟时间说“没有机会,那是行不通的”,我真的不想花几天时间来理解它。
我有很多用户组,可以说(现在)这些组是不同的公司。
我想做的只是让用户看到其他公司的一些字段。
例如,我是 A 公司的 Alice,我可以看到 B 公司的 Bob 有一个电子邮件地址 bob@b.com。他可以看到我是 alice@a.com
但是,B 公司的其他人都可以看到 Bob 有姓氏和电话号码等。A 公司的其他人都可以看到我的详细信息。
为了使这更复杂,假设 Bob 和我成为朋友并决定我们想要分享我们的信息,然后我们创建一个“临时”组“alice&bob”。因为我们都是该组的成员,所以我们都可以看到彼此的完整细节。(但 A 中的其他任何人都无法看到 Bob 的详细信息,除非他们也是朋友,反之亦然)
我可以通过查询所有属性和关系并仅显示相关的内容来对应用程序代码中的所有内容进行排序,但为了额外的安全性,我想限制源头信息的披露。
我想我需要使用属性过滤器,但不确定它们是否能够给我这种级别的控制。有了这种能够形成关系的灵活性,我是否需要即时构建过滤器文件,然后最终生成数千个过滤器,因为逻辑太长,Shibboleth 开始窒息。类似于“是组中的请求者”过滤规则: https ://wiki.shibboleth.net/confluence/display/SHIB2/IdPFilterRequirementAttributeRequesterInEntityGroup
attributes - CAS 和 Shibboleth 集成将主体名称(用户名)作为 SAML 中的属性发布
我觉得我已经在高处和低处搜索了应该是一个简单的配置:并且空无一物。
我对 Shibboleth 完全陌生,虽然我曾与 CAS 合作过一点,但没有什么太紧张的。我已经设置了它(按照以下指南:https ://wiki.jasig.org/display/CASUM/Shibboleth-CAS+Integration ),以便 Shibboleth 重定向到 CAS 进行身份验证。这很好用,一旦用户通过身份验证,他们就会通过 Shibboleth 重定向,并发送 SAML 响应。我正在使用https://sp.testshib.org进行测试,它正在正确接收响应并显示页面。
我似乎无法弄清楚如何使用用于登录 CAS 的用户名发布一个简单的属性。我知道 Shibboleth 看到了它(来自 idp-process.log),但我不知道在 attribute-resolver.xml 和 attribute-filter.xml 中放什么来释放它。
当前的 SAML 响应如下所示:
我只需要一个如何进行此设置的示例。我已经阅读了 wiki.shibboleth.net 上的所有文档,但似乎仍然无法理解。
非常感谢您的帮助,我知道这只是一个配置问题,但它让我的大脑感到愚蠢,我什至没有尝试与比 TestShib 更激烈的东西集成!
编辑:我发现这个设置指南有部分帮助,我可以通过搜索活动目录将名称作为属性传递,但这不是一个合适的长期解决方案,因为 CAS 可以检查多个用户存储库,它不一定是同一个,这将检查得到它。我只想将 ${requestContext.principalName} 作为属性发布。
有更好的想法吗?也许是一个静态连接器,但我不确定如何让它解决 ${requestContext.principalName}?
php - mod_rewrite 从 HTTP 标头中剥离长值
我正在使用 OpenAthensSP 返回可能访问我们服务的 IdP 元数据。OpenAthensSP 在 HTTP(s) 标头中以环境变量的形式返回此数据,然后我们在 PHP 中读取(来自 $_SERVER)。
到目前为止,一切都很好。
但是,当 mod_rewrite 用于重写 OpenAthens 调用的 URL 时,元数据(即 HTTP 标头中包含的来自 OpenAthens 的环境变量)被剥离。我已经在并行测试中展示了这一点:直接调用 PHP 脚本(存在元数据)与将 URL 重写为完全相同的 PHP(元数据被剥离,但其他值,例如 cookie 存在且未更改)。被剥离的值具有非常长的值(太长而无法在此处粘贴 - 超过 100k) - 这是我能看到的唯一潜在问题。这些值是正确的 URL 编码的。
我曾尝试在 Apache 中设置诸如 LimitRequestFieldSize 和 LimitRequestLine 之类的东西,但它们没有任何效果,所以我认为问题一定出在 mod_rewrite 上。
所以问题本质上是:
如何在仍然使用 mod_rewrite 的同时在 HTTP 标头中保持非常长的值不变?
我目前的解决方案不是很好,我不得不这样做(来自 VirtualHost 部分的 httpd.conf 片段):
通过这种方式,index.php 接收到“/discovery”请求,并且你瞧,$_SERVER 中的冗长值是存在且正确的,尽管触发了 404,这不用说是丑陋和骇人听闻的。
我不能做的只是将 OpenAthens 的输出直接发送到有效页面(例如,discovery.php),因为需要元数据来填充必须存在于正在使用的 PHP 框架中的登录表单——它必须启动关闭 index.php。
(以防万一:这是在 CentOS 5.6 / Apache 2.2.3 上)