问题标签 [kentor-authservices]

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 回答
263 浏览

saml-2.0 - 使用 Kentor/Sustainsys AuthServices SAML2 进行范围界定

有没有人使用Kentor/SustainsysAuthServices 进行范围界定?

发布历史https://github.com/Sustainsys/Saml2/releases指出版本 v0.18.0 支持范围,确实似乎有一些范围类,但它们似乎没有被使用。

具体来说,Saml2AuthenticationRequest实例的创建不包括任何地方的范围。

我在这里错过了什么吗?有没有办法通过 web.config 中的配置来实现这一点,或者代码还没有准备好进行范围界定?

我正在尝试使用 AuthServices MVC 包添加SAML2到现有MVC项目以SSO支持SP.

0 投票
1 回答
315 浏览

javascript - Kentor SAML2 身份验证问题

好的,首先让我说我真的觉得问这些问题很愚蠢,因为我认为我对事物有很好的理解,但我似乎无法理解 Kentor 授权 MVC 模型发生了什么。例如,在 Web.config 文件中,他们指定了表单身份验证,如下所示:

但我在任何地方都找不到那个终点。然后在 HomeController.cs 文件中,他们有一个这样指定的端点:

但是当我通过调试器运行它时,它永远不会被击中。很抱歉提出这样的开放式问题,我知道人们在 Kentor 图书馆投入了大量时间,非常感谢。MVC 示例是否完整,或者其中一些只是您如何做事的示例,但并未真正用于示例项目中?

编辑:我找到了丢失的终点。作为 MVC 的新手,我没有意识到一个基本事实 --> 引用的 DLL 可以添加控制器端点。我认为所有的端点都必须在我的代码中。(让鞭笞开始)。

我现在意识到的是,虽然我在 VS 中被认为是一个 MVC 项目,但我实际上是一个拥有 Web API 的客户端。所以我的问题是我的项目似乎找不到授权/登录端点。我假设这意味着我必须使用 OWIN 模型,我什至不知道 OWIN 是什么,所以这应该是一种享受。

我的下一个问题是无论如何都要使用带有 Web API 的 MVC 模型?如果是这样,我如何让我的客户识别 Kentor 库中的登录端点?

编辑:所以我退后一步,使用 HTTP 模块,而不是潜入 OWIN。我知道我出轨了。一个重要的事实是,如果您使用此模块并继续以未经授权的方式恢复您的身份,请确保此部分在您的 Web.config 中:

我不记得说明中有很多关于此的内容,但对我来说,它允许填充我的 User.Identity 对象。现在我开始尝试找出用户ID(它仍然没有被填充,但在声明中)。希望这个线程在未来对某人有所帮助。

0 投票
1 回答
252 浏览

kentor-authservices - Kentor 在 Acs ReturnUrl 后识别身份提供者

我定义了多个身份提供程序以与我的 AuthServices 一起使用,他们每个人都向我的 AssertionService 发送一个 SamlResponse,因为应该然后重定向到我的 RedirectUrl,如 Sustainsys.Saml2.StubIdp 示例中定义的“ExternalLoginCallback”。我无法知道身份提供者的女巫返回了 externalIdentity,我必须检查当前用户是否属于此 idp。

我希望我不必强迫他们发送带有 Idp Id 或类似内容的特殊声明。

是否存在将 Acs 之间的 entityId 传递给我的回调操作的方法?

谢谢

0 投票
1 回答
413 浏览

asp.net-mvc - 清除 cookie 后,带有 Okta 的 MVC 5 Kentor Auth 不起作用

我已经按照本页https://github.com/Sustainsys/Saml2/blob/master/docs/OwinMiddleware.md中提到的说明实现了对 Okta 的 SAML 身份验证支持。

第一次有人单击 Okta 中打开我的应用程序的磁贴时,身份验证不起作用。具体来说,来自我的 ExternalLoginCallback 函数的 AuthenticationManager.GetExternalLoginInfoAsync() 调用返回 null。

当用户第二次单击磁贴时,一切都按预期工作。

我可以通过从浏览器中为我的 Web 应用程序清除所有 cookie,然后尝试从 Okta 登录来始终重现该问题。第一次它总是失败,第二次它工作。

到目前为止,我已将其缩小到 1 个 cookie:ASP.NET_SessionId。如果我删除此 cookie 并尝试登录它会失败。

我的 ExternalLoginCallback 方法看起来很标准:

我在这里想念什么?

注意: 我尝试了使用 Kentor Auth Services 附带的 SampleOwinApplication 应用程序清除 cookie 的相同步骤。这个应用程序适用于所有情况(即使在清除 cookie 之后)

0 投票
2 回答
154 浏览

saml - Shibboleth->Saml2 元数据

所以我们的站点需要通过外部 Shibboleth 系统进行身份验证。他们说他们支持 SAML2,所以我将 Saml2 nuget 添加到 IdentityServer3,并将其指向他们的站点。似乎有效,但在他们的最后它说我们不允许访问它。

他们需要添加一些元数据路径,这样我们才能被认为是有效的,知道那会是什么吗?他们说https://your.sp-host.com/Shibboleth.sso/Metadata但我们内部并没有使用 Shibboleth ,所以很明显,我们这边的路线没有意义。

这是我要插入的包 https://www.nuget.org/packages/Sustainsys.Saml2/

0 投票
1 回答
730 浏览

saml-2.0 - 如何在身份服务器 3 中为 Sustainsys 外部提供商设置 acr 值

Idsvr3在 SQL 中有本地用户帐户。此外,我还使用https://github.com/Sustainsys/Saml2配置了支持 SAML2 的外部身份提供程序,我遵循了此处的示例

现在,当用户访问客户端应用程序时,他会被重定向到登录页面,该页面显示用于本地登录的用户 ID/密码文本框,还有一个用于重定向到外部提供商的按钮。

我想改变这种行为。我希望用户根据某些条件直接转到外部登录。我读过我可以将所需的登录提供程序传递给acr_valuesIdSvr3 将直接转到外部提供程序。

这是我注册外部提供商的方式IdSvr3 (注意,为简洁起见,删除了一些代码)

这是客户端应用程序启动

但是身份服务器抛出错误External login error: provider requested saml2 is not a configured external provider

提供者的有效名称Sustainsys/Saml2是什么,它在哪里配置?

0 投票
1 回答
432 浏览

asp.net-identity - 如何在 SAML2 或 WS-Federation 中请求声明?

我有当前配置为使用IdPOpenID Connect 协议的 ASP.NET MVC 应用程序(带有 OWIN)。在 OpenId Connect 中,我可以使用 Scope 值作为 singin 请求的一部分来请求声明。例如。

作为回报,将IdP这些声明包含在令牌中,应用程序 (SP) 可以访问它们。

IdP现在我想在我的应用程序中再配置两个,一个SAML2用户和另一个用户WS-Federation。对于 SAML2 Idp,我使用的是SustainSys库,对于 WS-Federation,我使用的是Microsoft.Owin.Security.WsFederation库。

我认为scopes仅对 OpenID Connect 协议有效,对于其他 2 个协议,我如何请求我的应用程序需要的这些声明?

0 投票
2 回答
2816 浏览

salesforce - 使用签名中包含的密钥正确验证了签名,但该密钥不受信任

我正在尝试将 SAML2 IdP 配置Salesforce为 IdentityServer3 中的外部提供程序。我正在使用SustainSys/Saml2库。因此,出于测试目的,我下载了SampleIdentityServer3。并配置 SAML2 IdP,如下所示

请注意,如果我没有设置MinIncomingSigningAlgorithm为 sh1,那么 SustainSys 库会引发错误。

Sustainsys.Saml2.Exceptions.InvalidSignatureException:签名算法http://www.w3.org/2000/09/xmldsig#rsa-sha1弱于最低接受 http://www.w3.org/2001/04/ xmldsig-more#rsa-sha256。如果要允许此签名算法,请使用 minIncomingSigningAlgorithm 配置属性。

所以我设置为MinIncomingSigningAlgorithm摆脱"http://www.w3.org/2000/09/xmldsig#rsa-sha1"错误。

但后来我得到不同的错误

Sustainsys.Saml2.Exceptions.InvalidSignatureException:使用签名中包含的密钥正确验证了签名,但该密钥不受信任。

根据问题#493 #735,元数据中的证书必须与 SAML2 响应中的证书匹配。

在元数据中,证书是(注意开始和结束值)

但在 SAML2 响应中(由 SustainSys 库记录的响应)

查看X509Certificate元数据和 SAML2 响应中的值,它们不匹配。

问题SAML2 响应中
的值是否应该与元数据中的值匹配?如果是,为什么 SustainSys 库不能始终使用SAML2 响应中的值?X509CertificateX509CertificateX509Certificate

更新
只是为了看看匹配值是否有效,我将 SAML2 响应中的证书值保存到单独的.cer文件中。然后在 KeyInfoSerializer.cs 文件中我更新ReadX509Certificate了方法(这是从元数据加载证书的方法)

但是,它仍然会引发错误The signature verified correctly with the key contained in the signature, but that key is not trusted.

0 投票
1 回答
659 浏览

asp.net - 带有滑动过期的 ASP.Net 外部 Cookie 显示为会话 cookie

我正在尝试在 Asp.Net 中配置一个滑动过期 cookie。我希望 cookie 出现在 Google Chrome 开发人员工具 cookie 管理器中,并在身份验证后 5 分钟到期,但它显示为“会话”,并且在单击退出按钮之前永不过期。如果浏览器关闭,它确实会消失。

Cookie 始终设置为会话 Cookie

以下是目前的代码。该网站使用基于 Saml 的单点登录身份验证和Kentor.AuthServicesnuget 包(现在称为SustainSys.Saml2,我们落后于版本)。

OnResponseSignIn最近根据此 MSDN 答案添加了 该块: https ://forums.asp.net/t/2121970.aspx?OWIN+Authentication+ExpireTimeSpan+not+working

我希望 cookie 在 30 分钟的非活动时间内过期。上面的代码设置为 5 以便于测试。

0 投票
1 回答
2771 浏览

identityserver3 - 提供的证书对加密/解密无效

我正在使用 IdentityServer3 进行身份验证。IdentityServer3 正在使用根据本文使用 makecert ar 创建的签名证书(用于签署令牌的证书)。

此仅签名证书与 identityserver3 一起工作正常

现在我正在尝试使用SustainSys库添加 SAML2 外部提供程序。我将 SPOptions 配置为加载相同的仅签名证书。但是它会 Saml2AuthenticationOptions.SPOptions.ServiceCertificates.Add(LoadCertificateFromWindwosStore()) 抛出错误

提供的证书对加密/解密无效。Windows 证书存储中对其私钥的权限可能不足,或者证书本身可能没有正确的用途。如果您只想将其用于签名,请将 Use 属性设置为 Signing (CertificateUse.Signing)。

当我调试库代码时,实际的异常是Bad Key. 如#412中所述

现在确定为什么这个证书不能与 SustainSys 一起使用,当它与 IdentityServer3 一起使用时?

(请注意,如果我按照@brockallen 文章创建新的 SSL 证书,

然后 SustainSys 库使用 SSL 证书。但不是带有signonly证书)