问题标签 [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 投票
1 回答
44 浏览

azure-active-directory - 删除用户时,有什么方法可以从 IDP 调用 webapi

我们将 SSO 与 auth0 用于多个 IDP,例如 ADFS、AzureAd 和 SAML 等。其中用户从单个 IDP 进行身份验证。

我们想要的是当用户从 IDP 中删除时,我们应该得到一些触发器来进行一些清理。例如,当用户被删除时,可能会有一个由 IDP 调用的 api 端点。所以我们也可以从我们这边清理它的数据。

IDP 是否支持任何此类功能?我的方向对吗?有没有其他方法可以实现这一目标?

0 投票
1 回答
308 浏览

saml-2.0 - Shibboleth 3 Idp 使用 ws-fed

我们将 Shibboleth 3.4.4 作为 Azure 的 Idp,在登录门户时使用 SAML 可以完美运行。但是,当我们尝试将 Windows10 设备注册到 AAD 时,我们遇到的问题是,它只有在 Idp 能够说 ws-fed 和 ws-trust 的情况下才有效

https://docs.microsoft.com/en-us/azure/active-directory/devices/hybrid-azuread-join-federated-domains

我们找不到使这些协议与 shibboleth 一起工作的方法。

是否有任何教程或示例,或有人可以在任何地方使用的解决方法?

如果不可能使用 Shibboleth Idp,那么如果有人知道其他使用这些协议的免费 idp,那就太好了。

提前致谢!

0 投票
1 回答
408 浏览

keycloak - Keycloak 作为具有自定义身份验证器的 IDP 无法读取 http POST 参数 login_hint

我有一个 saml Keycloak 客户端,它包含一个身份验证流程覆盖,用于在 java 中构建并部署在 keycloak env 中的自定义 keycloak SPI 身份验证器。验证器非常简单,它显示一个用户名字段并获取该用户名,进行第 3 方检查,然后返回一个判断(go/nogo、yes/no 等)

我有一个 SAML SP 向这个 keycloak 客户端(作为 IDP)发送请求。SP 请求有一个 LoginHint。当 Custom Authenticator 在 authenticate 方法中收到此请求时,它无法检索 HTTP Post 参数,因为没有。

当用户在自定义身份验证器表单中输入他们的信息并单击提交时,当操作方法接管时,新的 HTTP POST 参数就在那里。

我需要从传入的 SP SAML 请求中检索身份验证方法中的 loginHint。

有人知道怎么做吗?我一生都无法阅读 login_hint。

0 投票
2 回答
3151 浏览

node.js - 使用 Node.js 处理 SAML 的身份提供者端

我需要实现一个应该能够的身份提供程序服务(使用 node.js)。


如果这里提到的软件包可以满足我的需求,您能否具体说明它们如何处理这个问题。任何其他方向和/或提示可能会有所帮助。

谢谢

0 投票
2 回答
784 浏览

single-sign-on - 使用 SAML V2 和 Java 实现身份提供程序

成功实施SAML-V2 服务提供商 (SP)后;为了支持一些特定的用例,我必须实现我自己的SAML-2 IdP。在阅读了OASIS 文档和许多其他关于 SAML 协议的内容之后,我开始实施它。

  • 我的用例只是一个配置文件(Web Browser SSO Profile), SP-Initiated SSO: Redirect Bindings只有。

我正在寻找一些精益的第三方库或基于 java 的实现,我可以参考/使用它们来加速实现并在此基础上进行自定义。

希望在这个方向上提出任何建议或建议。

具体来说,我正在寻找以下任何/所有内容:

  • 易于使用的开源库,用于在 Java 中实现 SAML-V2 身份提供程序。
  • 上述配置文件的详细文档/规范。
  • 具有过去实施此类 IdP 经验的专家的任何建议。

有很多可用于 SP 的材料。但是,对于 IdP 而言,这很少且复杂。我已经在寻找的一些基于 java 的实现是:KeyCloakLite-IdP

0 投票
1 回答
1111 浏览

shibboleth - 配置文件操作 PopulateBindingAndEndpointContexts:无法解析依赖方的出站消息端点

我们正在尝试将 shibboleth idp 版本从 3.1.1 迁移到 3.4.4,但我们遇到了错误

[net.shibboleth.idp.saml.profile.impl.PopulateBindingAndEndpointContexts:410] - 配置文件操作 PopulateBindingAndEndpointContexts:无法解析依赖方“ https://ipau.sp.sso.manager/sso ”的出站消息端点:EndpointCriterion [type ={urn:oasis:names:tc:SAML:2.0:metadata}AssertionConsumerService, Binding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST, Location= https://172.29.241.168:8086/ SSOSPManager/SSO,trusted=false] 2019-08-16 13:11:26,832 - 172.29.241.168 - WARN [org.opensaml.profile.action.impl.LogEvent:105] - 处理请求时发生未处理事件: EndpointResolutionFailed

请在我们的 SP 元数据文件中找到下面的 assertionConsumerService 配置

0 投票
1 回答
156 浏览

angular - WebAPI 第一次以 POST 的形式重定向,然后以 GET 的形式重定向到 Angular 应用程序

我有严格的基础设施,不能改变并试图使 IdentityServer4 与 SAML2.0 断言和令牌一起工作。只有 API 可以暴露给互联网。工作流程是这样的: 1. 用户点击 Angular 应用程序 2. 用户被重定向到外部 SAML2.0 IDP 提供者,并进行身份验证。3. IDP 使用 SAML 断言重定向到 WebApi,然后重定向到 IS4 以进行验证和令牌生成 4. WebAPI 使用 get 请求将令牌发送到 Angular APP(这是问题)

当我第一次登录 IDP 时,WebApi 将 POST 消息发送到角度,这显然会导致错误。当我刷新浏览器时,工作流程以相同的方式进行,但不需要提供凭据,因为我已经在 IDP 中唱歌,WebApi 发送 GET 消息,Angular 获取令牌并保存它。

我尝试了多种解决方案,几个重定向操作,向响应添加标头,发送带有位置和 301 状态代码的 HttpResponseMessage。在发送原始 httpResponseMessage 时,我第一次收到 POST 或者只是 Json。

或者

或者

0 投票
0 回答
245 浏览

java - Shibboleth 并发登录失败

我已经部署了一个带有 MFA 身份验证流程的 Shibboleth IDP 3.4。第一个流程是传统密码,第二个流程是基于外部身份验证(一个 servlet)的 2FA 流程。

身份验证一次对一个用户按预期工作。但是,当多个用户尝试同时登录,只有最后一个用户能够登录。所有其他用户在 idp 日志中认证成功后都会产生以下错误:

2FA servlet 基本上是以下方法:

有谁知道为什么并发身份验证失败或可以建议我应该去哪里看?

0 投票
2 回答
792 浏览

saml-2.0 - Azure AD B2C Idp 启动的登录不起作用

我正在尝试在我的 SAML B2C 自定义策略中启用 Idp 发起的 SSO,但它似乎不起作用。我已经启动了 SP 的 SSO 工作正常,但是在尝试加载登录 URL https://example.b2clogin.com/te/example.onmicrosoft.com/B2C_1A_samlsignin/samlp/sso/login时,我只收到一般错误:

“抱歉,我们无法让您登录。我们会自动跟踪这些错误,但如果问题仍然存在,请随时与我们联系。在此期间,请重试。相关 ID:fee21b5e-4d30-419c-b5d5-6423ac400ed5时间戳:2019-09-26 09:17:54Z AADB2C:发生异常。”

根据Azure AD B2C 中的自定义 SAML iDP 是否支持 iDP 发起的 SSO 中的说明?和引用的微软文章我在配置文件中设置了以下元数据标签

我将输出推送到提供错误的 Application Insights:

“HttpRequest 不包含任何 SAML 2.0 协议参数”

有谁知道我如何在 B2C 策略中允许 SAML Idp 发起的 SSO?

0 投票
0 回答
1273 浏览

django - 如何从 Django 代码中退出 Keycloak

无法从 Django 应用程序代码内部从 keycloak IDP 注销。所有 stackoverflow 的答案都对我不起作用(大多数是针对所涉及组件的旧版本),keycloak 文档也是如此。

最近我们为基于 Django 的网站实现了基于 keycloak 的身份验证。适用于身份验证。该应用程序由 docker 构建,三个容器:8000 端口上的网站,keycloak db(postgres 映像),8080 端口上的 keycloak(jboss/keycloak 映像)。

现在我必须为其添加“注销”功能,这意味着从我的 Django 代码中退出 keycloak,并将用户重定向回 keycloak 登录屏幕。

我的设置:

keycloak 文档表明了这一点:

POST /{realm}/users/{id}/logout

带有用户 ID 和域名。

这只会产生 404,所以我切换到这种模式(喜欢 stackoverflow):POST /auth/realms/acc/protocol/openid-connect/logout

这将返回 403 和错误:“Forbidden (CSRF cookie not set.): /{realm name}/users/{user id}/logout/”

我设法解决了(见下面的更新)

网址.py

视图.py

这让我回到了我网站的首页,我仍然登录并且可以正常浏览该网站。此时点击 keycloak 登录屏幕会将我返回到已经登录的网站首页,因此我仍然通过了身份验证。在 Django 代码中的 POST 之前终止会话不会改变任何内容。基本上,当我使用 keycloak 进行身份验证时,websste 或 keycloak 都不会注销。Keycloak 会随着时间的推移而过期,因此 realm.json 设置有效。

我确实尝试在我的 settings.py 中设置它:

..但没有效果。

那么,我在哪里可以找到从 Keycloak 注销用户的工作 Django 代码示例?谢谢

更新 难题的第一部分已解决(阅读Django CSRF Coo​​kie Not SetЕвгений Смирнов和类似帖子的答案):为了摆脱“CSRF cookie not set”错误,我必须做一件简单的事情:

并为我的注销视图添加装饰器:

之后注销请求被执行并返回:

我猜我没有发回正确的 refresh_token,而且我不知道如何测试这种怀疑。

-------------------------------------------------- -----

其他部分(可能无关紧要):

设置.py

码头工人-compose.yml

keycloak/realm.json