问题标签 [idp]

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.

0 投票
0 回答
97 浏览

ios - Objective-C iOS 应用程序中的 SAML 身份验证

尝试使用 SAML 在我的应用程序上实现单点登录。

我有一个 WKWebView,我重定向到 idp,以便用户可以登录,然后 idp 向我的服务器发送一个带有身份验证信息的发布请求,我在其中为我的应用程序的用户生成一个 jwt 令牌。

使用 decisionPolicyForNavigationResponse 我可以判断 webview 何时收到最终响应,但我无法访问响应正文。

我通常对如何在我的应用程序中实施 SAML 感到困惑。

如何访问响应正文,是否有更好的方法来解决此问题?

0 投票
1 回答
276 浏览

single-sign-on - 带有 2 个 SP 的 SimpleSAMLphp IDP 的 SLO 问题:重定向到错误的登录屏幕

我们已将 SimpleSAMLphp 设置为 SAML IDP,注册了 2 个 SP(Liferay 和 MyWebMethods)。

每个 SP 都使用自己的 ACS 和 SLO 链接在 simplesamlphp/metadata/saml20-sp-remote.php 文件中注册到 IDP。就像是 :

我使用 SSO 没有问题:通过身份验证(通过 IDP)后,我可以到达第一个 SP,然后我可以转到第二个 SP,而无需再次登录。

当用户从同一会话(Google Chrome 中的 2 个选项卡)同时连接到 2 个 SP 中的每一个时,我的问题是注销 (SLO)。如果他先从 SP2 注销,则每当他尝试从 SP1 注销时,他都会被重定向到 SP2 的登录屏幕(即:正常的 SSO 外登录屏幕),而不是被重定向到 IDP 登录屏幕.

注销 url 实际上由我们的 SP 过滤器捕获,然后我们创建一个执行 logout() 的 saml Auth 对象:

一个信息是 SP1 支持 SP 启动,而 SP2 仅支持 IDP 启动。

请问有什么想法吗?

0 投票
1 回答
219 浏览

azure - 使用自定义 SAML 策略注册 B2C 应用程序 - 配置声明

我在 Azure b2c 中为我们的 SAML 应用程序创建了一些自定义策略。现在我想编辑由 azure b2c 发送到 SAMLResponse 中的应用程序的声明。

我在 trustframwworkbase 中添加了声明:

我更改了我的自定义策略并在那里添加了一些新的输出声明:

但是我的 SAML 响应中仍然缺少该声明。

我有一个应用程序需要一些信息作为 SAML 声明,但我看不到如何传输它。在“普通 Azure AD”上,我将能够配置每个应用程序的声明。因此,一个应用程序发送的声明不同于另一个应用程序。如何在 azure b2c 中执行此操作?我尝试在我的应用注册清单中添加声明:

但这也不起作用。我的传输属性是:

有人建议吗?

0 投票
1 回答
232 浏览

go - 无法从 IDP 创建 SAML 响应

我必须为 Salesforce 创建单点登录 (SSO)。对于授权,我将使用用户的手机号码进行 OTP。验证 OTP 后,我只需使用 Go 创建 SAML 响应。

我可以看到Go 编程语言的go-samlgosamlgo-oauthgoauth有几个库,但是即使经过几个小时的搜索,我也无法确定哪个适合我. 我不必实现完整的 IDP,我只需动态创建 SAML 响应。

我找到了需要从https://www.samltool.com/generic_sso_res.php创建的 XML 响应模板。所以我必须创建如下 SAML 响应:-

其中我只需要更新几个参数,如 Assertion_Id、Issuer、Audience、Recipient、Subject、Not before/After date、Attribute Statement 等。我不确定我是否需要任何库或可以获得单个脚本。

0 投票
1 回答
178 浏览

python - 在 Python 中验证 SAML2 断言(作为密码替换)

我需要在 Python 中验证 SAML2 断言(作为密码替换)。(大图:Shibboleth Idp <-> SOGo SP 将断言响应传递给我的模块(基于 pam-script))

我试图保证事情的安全,但尽可能简单/易于管理。SIGNXML Python 库似乎是一个很好的起点,但是 AFAIK 有一些拼图游戏缺失的部分......

PS我对以下任何主题都不是新手,也不是日常的主力程序员......所以我会很感激任何进一步的(“一般”)建议,从一开始就采取正确的方向...... .

所以我的问题是:

  1. 推荐的方式/库(简单地(处理/解密来自 IdP 的加密断言回复?

  2. 如何延长断言有效性时间范围(通过定义的宽限/倾斜时间段)和/或完全禁用时间有效性检查(用于非生产环境)?

  3. 解析“uid”、SP 的 EntityId 等属性的 SAML2 断言的首选方式(lxml.etree 对我来说似乎是正确的方式,但是......)

  4. 是否需要进一步考虑以确保验证过程中的完整性/安全性?

非常感谢您提供任何帮助/建议/示例!

最好的问候, 卢博斯

0 投票
1 回答
626 浏览

amazon-web-services - AWS Cognito 将其他参数传递给 OIDC IDP

我将 AWS Cognito 用于我的 SSO 并添加了一个联合 IDP (pingfederate)。Cognito 没有任何选项可以添加我想要用于 ping federate 的其他查询参数(acr_values 和提示)。AWS 中也没有关于此的文档。

有没有一种方法可以强制 Cognito 向联合 IDP 发送额外的查询参数?我读过 Auth0 具有可以解决此问题的动态参数

0 投票
2 回答
2211 浏览

azure - AzureAD IDP 发起的 SAML 始终返回 nameid-format:persistent 而不是 nameid-format:emailAddress

我正在使用 SAML 开发 SSO,我的 IdP 是 Azure。

我遇到了 IDP 发起的流程问题。在 SAML 响应中,我总是得到这个 NameID:

这是我所期望的:

我总是得到nameid-format:persistent而不是nameid-format:emailAddress. 虽然我已将“名称标识符格式”设置为“电子邮件地址”:

在此处输入图像描述

请注意,在 SP 启动的流程中,我可以通过指定 NameIDPolicy 让 Azure 发送电子邮件地址:

但是在 IdP 发起的流程中,AuthnRequest 没有 NameIDPolicy

我想知道我的 Azure 应用配置是否有问题。

顺便说一下 IdP 启动流,我认为 IdP 将创建 SAML 响应并直接发送到 SP 的 ACS 端点。为什么还有 SAML 请求?(在 Azure 上测试应用程序时,我可以看到下载 SAML 请求的选项)。当我从应用程序面板 (office.com) 打开应用程序时,我也可以看到 SAML 请求。(使用 chrome 扩展 saml-chrome-panel)

在此处输入图像描述

0 投票
1 回答
528 浏览

amazon-web-services - saml 2.0 身份提供商 AWS IAM 无法解析元数据

我已经设置了 AD DS、AD FS,并导出了自签名证书。我从链接中获得了元数据文件:

但是,当我尝试加载它以创建用于创建 SAML2.0 IAM 角色的身份提供者时,

它说明了这个错误:

我们在处理您的请求时遇到以下错误:无法解析元数据

你能帮忙吗?ADFS 联合元数据 xml 内容/文件中需要更改的内容是什么?

0 投票
1 回答
587 浏览

saml - SAML 2.0 单次注销问题 - IdP 应如何终止在不同用户代理中运行的 SP 会话?

我遇到了 SAML 2.0 single logout的问题。

我有一个 SAML 2.0 环境,其中有一个 IdP(身份提供者)和一个充当 SP(服务提供者)的 Web 应用程序。

作为用户,我在用户代理(浏览器)中启动 Web 应用程序会话。使用 IdP 对用户进行身份验证。

在不同的浏览器中(在同一台客户端机器上运行),我在同一个 Web 应用程序中以同一个用户的身份启动另一个会话,即在 SAML 方面的同一个 SP 中。

现在我有两个独立的 Web 应用程序会话,其中对同一用户进行身份验证。

然后,当我在其中一个浏览器中执行由 IdP 发起的单次注销时,IdP 仅发出一个注销请求,该请求终止在该浏览器中运行的会话。IdP 发出的注销请求的元素等于 IdP 在使用该浏览器(用户代理)发送到 SP 的断言的 AuthnStatement 的属性 SessionIndex 中发送的元素。

IdP 是否真的有必要为所有打开的会话发送注销请求以实现真正的“单次注销”?

0 投票
2 回答
2934 浏览

single-sign-on - Keycloak:外部 IdP 的 SAML 响应无效

我正在使用带有外部 IdP 的 SAML 实施 SSO 选项。如果我在单击浏览器中的 SSO 按钮后检查收到的 SAML 响应,我可以看到我需要的身份验证数据(例如用户名和电子邮件),因此与 IdP 的通信工作正常。

但是 Keycloak 不执行登录,而是向我显示了一个页面,上面写着:“我们很抱歉......登录超时,请重新登录。”,并且没有注册新用户。我领域中令牌的登录超时设置为 30 分钟。

查看日志我发现以下错误:

我发现这可能是由于 IdP 和 SP 中的 EntityID 不一致,但我联系了我的 IdP 并且 EntityID 是相同的。

可能是什么问题呢?