问题标签 [adfs]

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 投票
2 回答
1018 浏览

asp.net - 使用 ADFS 和 WIF 存储基于角色的权限

我正在开发一个项目,该项目使用 Active Directory 获取用户信息,ADFS 用于身份验证和 SSO,以及几个使用 ASP.NET MVC 构建的自定义应用程序。

授权模型是声明和基于角色的;也就是说,用户的角色可以通过 ADFS 颁发的令牌(使用 WIF)作为对相关应用程序的声明进行访问。

每个角色都有针对应用程序的各种资源的已定义权限列表(即角色管理员对资源 X 具有 WRITE 权限)。我们的基本授权模型与一些硬编码的权限配合得很好。

我的问题是:存储各种角色的实际权限的最佳方式/位置是什么?这可以在 ADFS 中完成还是需要单独的存储(我猜是后者)?权限遵循与 XACML (user/role:resource:action) 相同的广泛模式,并且 XACML 解决方案可能很容易合并,但 XACML (XACML.NET) 的最流行的 .NET 实现似乎使用 XML 作为唯一的不可行的存储机制(我们有很多资源来存储权限 - 可能有数千个)。

人们为此使用什么?最明显的解决方案似乎是将三元组存储在 SQL Server 中,但考虑到所有现成的身份验证解决方案(尤其是使用 ADFS 和 WIF),实际实现授权和权限的信息如此之少(明显)似乎很奇怪。我在网上找到的所有示例都没有解释权限级别的内容。

0 投票
1 回答
2589 浏览

session - 使用 ADFS 的单页应用程序 - 超时问题

我正在使用 ASP.Net MVC3 和 ADFS(使用被动联合)创建单页应用程序 (SPA)。除了我所说的“从 ADFS 重新验证”之外,一切都按预期工作。网站将定期(少于 30 分钟)尝试使用 STS 重新验证用户身份。这很好,但是 Web 应用程序是作为单页面应用程序构建的,因此一旦页面加载,我们就永远不会重新加载页面。此外,重新认证请求通常发生在 ajax 调用期间。

ADFS 具有 WebSSOLifetime 和 TokenLifetime 的默认设置。

有没有办法:a)在后台从javascript静默重新验证用户(也许创造性地使用CORS和/或JSONP)?或 b) 延长重新认证请求之间的时间?或 c) 别的东西。

关于 b) 似乎我可以设置 persistentCookiesOnPassiveRedirects="true" 然后在 cookieHandler 中将 persistentSessionLifetime 设置为所需的值。

但是,我宁愿不使用持久性 cookie。

最后,我使用了此处描述的 Freshness 设置:如何在与 ADFS 2.0 联合但未成功时正确设置超时。

任何帮助将不胜感激。

0 投票
1 回答
1251 浏览

c# - 在进行主动身份验证时转换 ADFS 中的传入用户名声明

我正在尝试通过活动联合对 ADFS 服务器进行身份验证,但在尝试对用户进行身份验证之前,需要通过 AD/LDAP 查询转换传入的用户名。

我正在使用带有 UserNameWSTrustBinding 的 UsernameMixed 端点:

我的问题是,我想在运行身份验证之前将传递给端点的“用户名”转换为 ADFS 服务器上的用户电子邮件地址(通过 AD 或 LDAP)。这可能吗?

0 投票
2 回答
3185 浏览

.net - ADFS 身份验证委派桌面/移动应用程序

我想知道是否有人可以指出我正确的方向。我们目前正在考虑为客户端托管一个 Web 应用程序,该应用程序将对客户端的 ADFS IIS 服务器进行身份验证,以便利用 SSO 等。这一切都很好,没有问题。

当我们考虑现有的桌面和移动应用程序(.NET、iOS、Android 等)时,问题就出现了。我们需要针对与我们的 Web 应用程序相同的用户存储对这些应用程序进行身份验证。

是否可以针对外部 ADFS 服务器对 Windows 桌面应用程序(用 .NET 编写)进行身份验证?如果是这样,请你举个例子吗?

是否可以针对 ADFS 对本机移动应用程序进行身份验证?我想我们需要手动创建 HTTP 请求等来处理这个问题。有人可以指出我的任何相关文档/示例吗?

或者,对于移动应用程序,托管我们自己的充当“中间人”的内部网络服务会更好吗?同样,任何这样的例子都将不胜感激。

谢谢大卫

0 投票
4 回答
16077 浏览

c# - 从 ADFS 声明身份验证

我尝试通过 WPF 应用程序连接到 SharePoint Online 实例。我发现这篇文章描述了一个可能的解决方案,但问题是特定实例前面有一个 Active Directory 联合身份验证服务 (ADFS),我不知道如何获取身份验证令牌。(我无法为我的应用程序创建证书以针对 adfs 进行身份验证。)

任何已经这样做并且可以通过一些代码片段支持我的人吗?

0 投票
0 回答
1065 浏览

ios - 使用 ADFS/AD 和 WebApi 的 REST Web 服务的反向代理

我需要为防火墙后面的 REST Web 服务实现反向代理。反向代理应针对企业 ADFS 2.0 服务器进行身份验证,最好使用 .net 4.5 中的声明。客户端将是 iOS、Android 和 Web 的混合体。我对这个话题完全陌生;我尝试使用 WebApi、WIF 和 VS 2012 中的新身份和访问控制将服务实现为 REST 服务,但没有成功。我也曾尝试研究 Brock Allen 的 Thinktecture.IdentityModel.45,但后来我头晕目眩,所以我没有看到它与带有身份和访问控制的 Windows Identity Foundation 之间的区别。

所以我想我需要退后一步,就如何做到这一点获得一些建议。据我了解,有几种方法可以做到这一点。

  1. 在硬件方面。将我们的 Citrix Netscaler 设置为反向代理。我不知道该怎么做,但是如果这是一个好的解决方案,我总是可以聘请知道的人......</li>
  2. 在网络服务器中执行此操作,例如 IIS。我没试过;不知道它是否会起作用。
  3. 创建一个 Web 服务来执行此操作。3.1 使用 WCF 将其实现为 SOAP 服务。据我了解,ADFS 不支持 REST,所以我必须使用 SOAP。问题是移动设备不喜欢 SOAP,我也不喜欢……但是,如果这是最好的方法,我必须这样做。3.2 使用 Azure 访问控制服务。它可能会起作用,但是时机不好。我们的企业正在考虑多种云选项,而我们自己跳上天蓝色的马车可能不是现在最明智的做法。但是,如果这是唯一的选择,我们可以做到。我只是不想现在使用它。

现在我觉得有太多的选择,我不知道哪一个会起作用。如果有人能指出我正确的方向,走哪条路,我将不胜感激。

0 投票
2 回答
11186 浏览

c# - ADFS - Windows 集成 OR 表单身份验证

我正在配置 ADFS 服务器,并试图为我们的依赖方应用程序实现用户友好的登录。

据我所知,目前有两个相关选项:

  • Windows 身份验证:这作为单点登录提供程序非常有用,但如果用户当前不在正确的 Windows 域中,则会提供对用户不友好的弹出窗口。
  • 表单身份验证:无论用户来自何处,这将始终要求登录方法。

我的问题是,是否有可能满足这些要求:

  • 如果用户使用 windows 帐户登录,请提供 SSO
  • 否则,显示表单登录页面并让用户输入他的 Windows 凭据。
0 投票
2 回答
878 浏览

wif - Getting ADFS claims from AD when user logs in via Azure ACS

Our chain goes:

ASP.NET app with WIF -> ADFS -> and maybe Azure ACS -> Facebook, Google etc.

We have users configured in AD with roles etc. These users can log-on to AD via ADFS and get their roles as per normal.

Optionally, they can log-on to one of the ACS providers and we have a use case that stores the ACS provider's unique ID in AD. If they use more than one provider, we have more than one mapping.

So we can map the user who log ins in via ACS to their "real" identity in AD.

What we are battling with is how to deliver the full set of claims to the users who login via ACS? Typically, you just get a name, email address and unique id.

Is there a claim rule that can search AD using the unique ID? This rule would have to establish which provider they used in order to use the correct unique ID in AD.

I guess we could query AD from the application but that means we have to add the code to all such applications?

We could probably do the conversion in a custom STS as well?

Any ideas, good links, articles etc?

0 投票
1 回答
195 浏览

asp.net - AD LDS 自动标志

我们有 asp.net web 应用程序,如果用户通过内网访问该网站,我们需要支持使用域凭据(Windows 主体)“自动登录”,或者如果通过 HTTPS 通过外部网络访问,我们将提示用户输入域凭据。

问题是这个 web 服务器(windows server 2008)是一个工作组机器,它在 DMZ 中。我被告知研究 AD LDS + AD FS 以在有限的时间内实现这一点,无论是否可以同时支持域凭据 SSO(内部和外部)和 Intranet 域用户的自动登录。

当我阅读论坛中的相关文档和讨论时,我了解此设置可以实现 SSO,但是我无法确定也无法找到有关在此环境下“自动签名”内网域用户的相关材料。

如果可能或是否有替代方法,任何人都可以请教。主要的是我们希望避免将现有的 Web 服务器加入域。

非常感谢

0 投票
1 回答
668 浏览

sitecore - Sitecore 声明是否知晓?

我们希望将 ADFS 与我们的 Sitecore (6.4) 解决方案一起使用来验证用户。我们的 DMZ 中有一个 ADFS 代理,我们公司域中有一个 ADFS 服务器,我们的 Sitecore 解决方案在其他地方为我们托管。

我们被告知,如果 Sitecore 完全支持声明(即可以在不需要 Windows 登录会话的情况下使用联合声明),那么这个基本的基础架构就足够了。

如果 Sitecore 没有完全了解声明,那么我们需要建立一个外部域,在我们的 Sitecore 主机上使用域控制器和联合服务器。

那么,Sitecore 是否完全了解声明?