问题标签 [adfs3.0]
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.
wif - ADFS、IdP 发起的 SAML 发布问题
我们有一个可感知索赔的 .net 应用程序。我们有两个拥有自己的 Active Directory 的客户想要访问该应用程序。一位客户使用 ADFS,它在我们的 ADFS 中设置为 Claims Provider。他们的访问就像一个魅力。现在,第二个客户端不使用 ADFS。他们希望使用他们将编写的 SAML 令牌对我们的 ADFS 进行不请自来的 POST。我们将它们设置为另一个索赔提供者。他们将 SAML 发布到https://ouradfsserver/adfs/ls/IdPInitiatedSignon.aspx. 我们正处于服务器说“您已登录”并要求他们从下拉列表中选择一个应用程序的位置(只有一个)。当他们这样做时,ADFS 会尝试再次重定向到身份提供程序以识别用户,这是不可能的,因为没有可查询的端点。有没有人看到这个问题或有过这种安排的经验?如我所见,要么 ADFS 没有正确解析 SAML 令牌并为应用程序创建安全上下文,要么它不知道如何正确重定向到应用程序。任何指针将不胜感激!
saml - SAML 2.0 声明未通过 ADFS
我们有一个声明感知应用程序,并使用 ADFS 服务器对来自我们合作伙伴网络的用户进行身份验证。拥有自己的 ADFS 服务器的客户没有问题。他们的 ADFS 服务器以 SAML 1.0 格式向我们发送令牌,一切都很好。我们有一个客户端向我们的 ADFS 服务器执行未经请求的 SAML 2.0 发布。信任关系有效,用户进入我们的系统,但没有任何索赔通过。我们得到的只是这个(来自我们的应用程序日志文件):
比较 SAML 令牌,格式完全不同。例如,在 SAML 1 中有一个自定义声明,如下所示:
但他们的进来是这样的:
我们正在考虑也许我们需要对声明规则做一些事情。它们看起来与此类似:
我们添加了自定义声明类型并尝试更改声明规则以使用它们来尝试获取 CustomerGuid 但这没有任何区别:
寻找有关如何使这项工作的任何指示。
single-sign-on - 使用依赖方 STS 的 ADFS 3.0 单点注销
我正在实现单点注销功能。我的设置是:ASP.NET 依赖方 <-> 依赖方 STS <-> SAML2 STS。SAML2 STS 有用户目录。我将 ADFS 3.0 用于依赖方 STS。ASP.NET 依赖方使用 WS-Federation 协议与依赖方 STS 通信,而依赖方 STS 通过 SAML2 协议与 SAML2 STS 通信。
我试图实现的行为是单点注销功能。当用户从 ASP.NET 应用程序注销时,ASP.NET 应用程序使用 FS-Federation 协议向依赖方 STS 发送注销请求。依赖方 STS 首次使用 SAML2 协议将注销请求转发给 SAML2 STS。但是如果用户立即重新登录并再次注销,则依赖方不会将注销请求转发到 SAML2 STS。用户不会将注销请求转发到 SAML2 STS,而是看到依赖方 STS (ADFS 3.0) 的已注销页面。ADFS 3.0 似乎将 MSISSignoutProtocol cookie 维护了 10 分钟,并且在该 cookie 未过期之前,它不会将注销请求转发到 SAML2 STS。
我该如何解决这个问题?我希望用户在用户注销时始终通过依赖方 STS (ADFS 3.0) 重定向到 SAML2 STS。是否有任何配置可用于覆盖我在 ADFS 3.0 上看到的行为?
asp.net-mvc - 从 ADFS 检索用户 ID 声明
我有一个当前正在针对 Azure Active Directory 进行身份验证的 ASP.NET 应用程序。当用户进行身份验证时,返回给我的应用程序的声明之一是 ObjectIdentifier,我正在使用此 GUID 将 SQL Server 中的本地“用户”记录链接到此 AD 用户。
我正在使用的代码是这样的:
现在需要在本地移动此应用程序并针对本地 ADFS 服务器进行身份验证。
我已经让应用程序成功地针对本地 ADFS 服务器进行身份验证,但声明中不存在上述 objectidentifier 声明,并且我无法在 ADFS 中看到添加 objectidentifier 声明的位置:
更改上面的代码以使用不同的声明我没有问题,但是对于哪个声明将是用户的唯一 ID 的一些指导将不胜感激。
asp.net-core - 使用 ADFS 3 进行 ASP.NET 5 身份验证
我想在 ADFS 3.0 上创建一个带有身份验证的 ASP.NET 5 / MVC 6 应用程序。
新的 ASP.NET 安全中间件不支持 WsFederation 身份验证。
ADFS 3.0 不支持 OpenID 连接。
是否有工作方案来实现这一目标?
wildfly - ADFS 和 Spring-SAML 应用程序之间的循环
我已经将 Spring SAML SSO 实现到 Wildfly 8.2 上的 JEE6 Web 应用程序中,以使用 ADFS2/3 进行身份验证,但目前我无法成功进入授权过程。这是请求/响应 ping/pong:
回复:
当我在最后两分钟内达到超过 6 个请求时,ADFS 断开连接并收到错误消息。可能的错误是什么?我已将所有必需的密钥添加到我的密钥库中,为什么即使状态代码响应的字段已成功,客户端也会继续请求?
c# - 在 c# 中信任存储在“受信任的根证书颁发机构”中的 SSL 证书
语境:
我正在尝试使用 ADFS SSO 并按照本教程首先连接到 Azure AD:
那行得通。
然后按照其他教程尝试使其连接到我们的 Win Server 2012 R2 上的 ADFS:
正如他们在第三个教程中所说: https ://msdn.microsoft.com/en-us/library/dn660967.aspx
我收到 SSL 证书错误:
问题:
我知道我可以绕过证书验证或在ServicePointManager.ServerCertificateValidationCallback中放置特殊逻辑来解决此问题,但由于我在本地机器“受信任的根证书颁发机构”中导入了证书......:
...为什么我的服务仍然抱怨证书?
...有没有办法告诉我的 C# 服务接受“受信任的根证书颁发机构”存储中的所有证书?
注意:我确实实现了一个ServicePointManager.ServerCertificateValidationCallback并且它有效,但是由于我们将获得一大堆客户向我们发送他们的 ADFS 证书,我只想将他们的证书导入证书存储区以让我们的服务信任他们。
谢谢
php - SimpleSamlPHP / ADFS SAML 2.0
我正在尝试将 Simplesamlphp 作为服务提供者与 ADFS IDP 集成。我之前已经将它与其他客户端集成了两次,但现在我遇到了一个我无法弄清楚的错误。
这是来自微软的日志:
The SAML request contained a NameIDPolicy that was not satisfied by the issued token. Requested NameIDPolicy: AllowCreate: True Format: urn:oasis:names:tc:SAML:2.0:nameid-format:transient SPNameQualifier: . Actual NameID properties: null.
我将瞬态设置为NameIDPolicy
simplesaml。我还尝试了此链接InvalidNameIDPolicy中的声明。这适用于其他 idp,但不适用于这个。
同样,我之前使用 ADFS 实现过两次,一次使用第三方解决方案。不确定下一步要采取什么步骤。任何帮助表示赞赏。
c# - 将 ADFS 身份验证添加到 WebForms asp.net 应用程序
我的 C# .net 4.5 asp.net 应用程序当前使用表单身份验证。我们需要通过本地 ADFS 3.0 服务器在其上实施 SSO,该服务器将使用 Claims Provider Trusts 链接到外部 ADFS 服务器。
问题是一些用户将继续以旧的 Forms Auth 方式登录,而其他用户将使用他们的 ADFS 凭据进行身份验证。
ADFS 和 Forms Auth 可以混合使用吗?如何将不同的用户引导到不同的登录名?
我在这里读到我可能需要编写自己的自定义身份验证提供程序......这看起来很复杂。还有另一种更简单的方法吗?
authentication - 尝试在 ADFS 3.0 上托管的面向 Internet 的动态 CRM 2015 部署上设置 OAuth 2.0 端点时遇到错误?
我正在按照 msdn 网站中描述的指南在我的本地域中设置动态 CRM 服务器 2015,一切都按预期工作。
但是我在使用 OAuth 2.0 身份验证访问我的服务器时遇到了一些问题。从官方文档来看,动态CRM支持OAuth认证。
创建现代和移动应用程序(包括未在 .NET Framework 上构建的应用程序)的开发人员可以通过组织 Web 服务的 SOAP 和 OData 端点访问 Microsoft Dynamics CRM 业务数据。此 Web 服务支持 OAuth 2.0 协议中的某些身份验证功能。
但是,当我按照链接执行 OAuth 流时,在尝试获取访问令牌时,我会在 AD FS 事件日志中收到以下错误消息信息。
在联合被动请求期间遇到错误。异常详细信息:Microsoft.IdentityServer.RequestFailedException:MSIS7065:路径 /adfs/oauth2/token 上没有注册的协议处理程序来处理传入请求。在 Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext 上下文)
我已经将 OAuth 2.0 应用程序添加到我的 CRM 服务器中。我的问题是我错过了哪些步骤来使 OAuth 身份验证有效?
更新 [11/11/2015]: 在我使用 postman 进行令牌获取操作时,我发现可能存在一些配置错误。我使用了 PowerShell,它可以工作。在下面分享了我的命令: