问题标签 [federated-identity]
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.
python - 针对 Windows 域的分散式身份验证
第三方去中心化身份验证有许多设置非常简单的解决方案:使用 Facebook 凭据、OpenID、OAuth 等登录。
在 Windows 域环境中,如何在防火墙内执行类似的操作?
场景:
- 防火墙内的 Python Web 应用程序,托管在 Linux 服务器上。
- 用户拥有 Windows 桌面并通过 Windows 域进行身份验证
我知道我可以使用 LDAP 针对 Active Directory 验证用户名/密码,但这不是我想要的。我根本不希望我的应用程序处理用户名/密码。我希望它像 OpenID 一样工作,即我的应用程序将用户重定向到某种 Windows 身份提供程序网页。
是否有开箱即用的 Windows/IIS 解决方案?
编辑:
- Windows Identity Foundation会是我正在寻找的吗?或者也许 WIF 有构建模块?
oauth - OAuth 2 是否为给定用户指定了永久标识符?
作为对 OpenID/OpenAuth 的一些研究的一部分,我刚刚(重新)阅读了 Rob Conery 的 2010 年博客文章OpenID is a Nightmare 。理想情况下,我希望使用链接到单个帐户的多个 OAuth 提供程序,以提供对提供程序不可用的弹性 - 使用 Facebook 登录,链接您的 Twitter 和 Google 帐户,如果您下次访问 Facebook 登录不起作用没关系,您可以使用 Twitter 或 Google 进入并访问您的资料 - 就像在现实世界中,您可以使用护照开一个银行账户,如果您的护照没有,您可以稍后使用您的驾驶执照取款可用的。
Rob 在他的文章中主要担心的一个问题是,无法始终如一地识别正在使用 OpenID 的用户 - 有人可能有一天登录 Google,购买产品,然后几天后回来登录 Google,但无法访问他们购买的产品,因为没有唯一标识符可以保证在两次 Google 身份验证调用之间保持一致。
我很好奇 OAuth 2.0 中是否已经解决了这个问题——要么通过协议规范明确解决,要么通过主要提供商之间的一些实现共识。我可以依靠哪个字段(如果有)在用户与特定 OAuth 提供者的关系的整个生命周期内不进行更改?
asp.net-mvc-3 - 在依赖方上使用被动联合身份和登录页面实施 SSO
我们使用被动联合身份(C#、ASP.Net MVC 3、WIF)为一组具有不同域名的网站实施了 SSO(单点登录)。该设置工作正常,因为它遵循标准的被动联合,登录页面托管在 STS 上。
www.brand1.com
www.brand2.com
...
www.sts.com(登录页面托管在这里)
现在客户端希望在每个依赖方上实现登录页面,这样用户就不会被重定向到 STS。原因是每个依赖方都是已知品牌,因此重定向到不同的域名(托管 STS)对于各自的品牌是不可接受的。在 STS 上为每个品牌定制登录页面也是不可接受的。
有没有办法将登录页面移动到依赖方?
wif - WIF-ID1014:签名无效。数据可能已被篡改
我一直在使用 WIF 来验证我们的新网站,STS 基于 starter-sts 实现。
为了使它能够在负载平衡环境中正常工作,我在 global.asax 中使用了以下内容来覆盖默认证书行为。
这一切都在工作,人们已经成功地使用了这个系统,但是我们时不时地得到一个爆炸:
ID1014:签名无效。数据可能已被篡改。
在事件日志中,所以我打开了 WIF 跟踪并在日志中看到了以下内容。
ID1074:尝试使用 ProtectedData API 加密 cookie 时发生 CryptographicException(有关详细信息,请参阅内部异常)。如果您使用的是 IIS 7.5,这可能是由于应用程序池上的 loadUserProfile 设置设置为 false。
我有一种感觉,正如我所想的那样,这让我走上了一条黑暗的小巷,因为我已经将实现更改为使用 RSA,这不应该影响我。
有什么想法可以帮助我吗?
jquery - 通过带有 mvc 4 和 web api 的 IHttpModule 访问控制服务,站点和服务的不同安全设置?
我正在 Azure 上构建一个 mvc 4 web api 项目。对此 API 的请求通过以下路径:
在同一个域和不同的路由上,我设置了一个 mvc 网站:
mvc 网站只是一个 HTML 和 Javascript 页面,它与访问控制服务交互以获取令牌,然后将令牌传递给服务以通过 jQuery ajax 获取数据。
为了实现服务的安全性(验证发送到 API 的令牌),我使用了本文所述的 SWTModule 和 TokenValidator 类,以及我的 MVC 4 Web 应用程序项目 Web.Config system.webserver 属性中的调用:
即使我没有使用 [Authorize] 标记 MVC 控制器方法,加载默认网页也会导致此错误:
“/”应用程序中的服务器错误。
未经授权
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ApplicationException:未经授权
源错误:
第 43 行: 第 44 行: // 检查它是否以 'WRAP' 开头 第 45 行: if (!headerValue.StartsWith("WRAP ")) 第 46 行:
{ 第 47 行: throw new ApplicationException("unauthorized");源文件:D:\Dev\VisualStudio2010\Projects\myServices\Azure\myDataInterfaces\SecurityModule\SWTModule.cs 行:45
堆栈跟踪:
[ApplicationException: 未经授权]
D:\Dev\VisualStudio2010\Projects\myServices\Azure\myDataInterfaces\SecurityModule\SWTModule.cs:45 System.Web.SyncEventExecutionStep.System.Web 中的 SecurityModule.SWTModule.context_BeginRequest(Object sender, EventArgs e)。 HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
在我看来,即使我没有用 [Authorize] 标记我的 Controller 方法,它们也会被拒绝,因为我的 SWT 令牌验证会针对每个响应触发,大概是因为它在 Web 堆栈中被较早地调用,因为包含在Web.Config 属性?
有人可以为我指出如何使这项工作的正确方向吗?我想让默认网页(主页控制器索引方法)显示我的登录屏幕,然后重定向到主页。如果用户未使用可用的 ACS 身份提供者之一登录,则该主页应返回未经授权。同样,我想将我的一些 Web API ApiController 方法公开,并要求其他人获得授权。
目前,我在 Visual Studio 中的单个 Web 角色解决方案中的单个 Web 应用程序项目中通过单个 Global.asax 文件路由 MVC 应用程序和 Web API 服务。我想知道解决此问题的方法是否是将 HTML MVC 站点和 Web API 分离到同一 Web 角色解决方案下的不同 Web 应用程序项目中?那仍然不能给我分配某些控制器方法的授权要求的方法,只是给我一个路由控制器和 ApiController 的不同位置。
我觉得我很接近但可能错过了一些重要的东西,但我似乎没有在网上找到它。有人会理我吗?
谢谢,亚历克斯
.net - Federation Utility throws an error "The system cannot find the file specified."
I am trying to use the "Create STS project in the current solution" option in the Federation Utility of Windows Identity Foundation 4.0 (64 bit) from Visual Studio 2010 with Administrator account. I have IIS 7.5 on Windows Home Premium.
After I click on the Finish button, I get the error "The system cannot find the file specified." message.
Any help?
asp.net - 如果用户在 STS 登录,我如何从 federatedpassivesignin 控件中检测联合身份
嗨,我在我的 asp.net 站点(称为 ChildSite)上使用 FederatedPassiveSignInControl 从另一个 asp.net 站点(称为 ParentSite)上设置的 STS 获取用户身份。我的站点 (ChildSite) 的身份验证设置为 FormsAuthentication,因此 FederatedPassiveSignInControl 位于 ChildSite 的表单身份验证登录页面上。
我有2个场景。首先,用户登录到 ParentSite 并通过 ParentSite 中的链接继续访问 ChildSite。在第二个用户直接进入 ChildSite 并登录到 ChildSite:
场景一:
- 用户在浏览器中打开ParentSite
- 用户登录到 ParentSite
- ParentSite 在浏览器中显示指向 ChildSite 的链接
- 用户点击指向 ChildSite 的链接
- 用户转到子站点
在这里,用户来到登录页面。想要的行为是用户已在 ParentSite 登录,因此被无缝重定向到 ChildSite 上请求的 URL。
而是显示登录页面,用户必须单击 FedratedPassiveSigninControl 按钮来检索他的身份,然后被重定向。我无法设置 FedratedPassiveSigninControl 属性 autosignin="true"。它总是在未登录时将用户重定向到 ParentSite,这会破坏场景 2。
我想知道我如何检测,或者我如何让 FederatedPassiveSignin Control(或其他 WIF 组件)检测到用户已经登录,不显示 FedratedPassiveSigninControl 并且只是将用户转发到他请求的页面。
场景二:
- 用户在浏览器中打开ChildSite
- 用户在 ChildSite 的文本输入中输入凭据并单击登录。
- 显示 ChildSite 请求的页面。
我在这里错过了什么吗?
干杯,死
web-services - Web 服务器无法连接到联合服务器
我正在尝试在 MSDN 中实现联合服务器示例。我所做的唯一更改是更改了服务器的名称,并将一台机器用作 Web 和联合服务器。
我从 MSDN 下载的声明感知应用程序有以下错误:
asp.net-mvc - Windows Azure 多租户
我正在启动一个新的企业 Web 应用程序。它将托管在 Windows Azure 上,并且将是一个与 SQL 数据库通信的 asp.net MVC 应用程序。
我的问题与多租户以及完成它的正确方法有关。过去,我创建了一个多租户应用程序,方法是拥有一个租户表,而不是在每个表中放置一个 TenantID 列。这很好用(但它只是在较小的范围内,所以它并没有真正将它锻炼到第 n 级)。查看 Azure 上的多租户内容,似乎不推荐这种方式。他们谈论子域、拆分租户等。对我来说,这似乎是一场管理噩梦。我希望用户访问一个网站,输入他们的租户登录详细信息,然后他们就关闭了。
- 是否有更简单的方法在 Azure 中实现多租户,仍然允许我使用 Azure 的可扩展性优势?
- 我应该只使用简单的 TenantID 方法吗?Azure 框架是否仍能很好地扩展以适应?
- 我应该一开始就担心租约还是把它留到最后?
需要建议。
谢谢
google-app-engine - Golang GAE - 联合登录示例
我正在尝试使用 Google App Engine Go SDK 实现联合登录,但我能找到的关于该主题的唯一示例是关于如何在 Python 和 Java 中执行此操作。我知道我需要调用这个函数来获取 URL,但是我不确定要传递的参数。有人可以为几个主要平台(Facebook、Twitter 等)提供 GAE Golang 中的联合登录示例吗?