问题标签 [accesscontrolservice]
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.
azure - ACS 中的 MyOpenID:添加所需的声明类型
这个问题是如何使用 Azure ACS 向 OpenID 身份提供者传递所需声明的延续?
不过,它对这个问题的看法略有不同,因此我将其作为一个新问题发布。注意:我也将它交叉发布到Azure 安全论坛,但到目前为止还没有得到任何有用的输入。
Azure ACS 示例显示可以将任意 OpenID 身份提供程序添加到 ACS 。但是为了让 ACS 作为 STS 对我们的项目真正有所帮助,我们着手让 ACS 与 MyOpenID.com 合作(同样,也用于示例)。问题,正如Vittorio 所展示的那样,是 MyOpenID 不会向我们提供诸如姓名和电子邮件地址之类的声明,除非被要求。Vittorio 和其他人说这是因为 MyOpenID 不支持属性交换。
不过,我不太确定。深入挖掘 ACS 生成的请求 url,我可以看到参数openid.ns.ax=http://openid.net/srv/ax/1.0
和openid.ax.required=email,fullname,firstname,lastname
. 此外,openid.ax.type.email
被键入到axschema.org/contact/email
类型。这就是 MyOpenID 出现问题的地方。MyOpenID 不理解 axschema.org 类型,因此不会返回电子邮件值。
我所知道的是 MyOpenID 理解schema.openid.net/contact/email
类型。因此,在此基础上,我手动更改了 ACS 请求 URL 以使用 openid.net 架构而不是 axschema。瞧,MyOpenID 做出反应并显示我的电子邮件地址实际上将被返回。
这是我试图传递给 myopenid.com/server 端点的参数列表:
- openid.ns= http://specs.openid.net/auth/2.0
- openid.mode=checkid_setup
- openid.claimed_id= http://specs.openid.net/auth/2.0/identifier_select
- openid.identity= http://specs.openid.net/auth/2.0/identifier_select
- openid.realm= https://myazurenamespace.accesscontrol.windows.net:443/v2/openid
- openid.return_to= https://myazurenamespace.accesscontrol.windows.net:443/v2/openid ...
- openid.ns.ax= http://openid.net/srv/ax/1.0
- openid.ax.mode=fetch_request
- openid.ax.required=电子邮件,全名
- openid.ax.type.email= http://schema.openid.net/contact/email
- openid.ax.type.fullname= http://schema.openid.net/namePerson
不幸的是,当响应返回给 ACS 时,它还不够好,并且 ACS 失败并出现以下错误代码:
HTTP 错误代码:400 消息:ACS30000:处理 OpenID 登录响应时出错。内部消息:ACS90014:缺少必填字段“openid.ax.value.email”。跟踪 ID:f8e09e6f-0765-4370-9f03-f744cce6fa2a 时间戳:2011-08-02 17:12:57Z
我尝试在不更改原始电子邮件类型的情况下添加其他字段,但只会得到相同的错误。我开始怀疑实际上是 ACS 没有完全支持 AX,并且它有些硬编码以仅接受某些类型的声明。
问题是:我的请求参数对你来说是正确的还是我在这里遗漏了一些明显的东西?
注意:我的初始设置正在工作,如果我保持 ACS 请求不变并且在 ACS 中只为身份提供者配置一个直通规则,我可以使用 MyOpenID 身份提供者通过 ACS 成功验证我的网站。如果来自 ACS 的请求没有明确要求声明类型http://schema.openid.net/namePerson
或http://schema.openid.net/contact/email
azure - Windows Azure AppFabric 访问控制服务 (ACS) 中的 OAuth 2.0 身份提供程序
OAuth 2.0 委托包含在 Azure AppFabric 访问控制服务中:
但是,您如何实际设置 OAuth 2.0 身份提供者?
在管理界面中添加身份提供者并选择 WS-Federation 身份提供者时,需要提供一个 WS-Federation 元数据文档。
但是,当您阅读 OAuth 2.0 提供程序的文档(即http://msdn.microsoft.com/en-us/library/hh243647.aspx)时,没有提到元数据文档(是的,我知道 Windows Live 包括在内作为预配置的身份提供者)。这是我必须写的吗?
更新
好的,所以我发现您可以使用 API 添加其他身份提供程序,以这些 PowerShell 命令为例:
但是,当尝试添加 OAuth 提供程序时,我得到一个错误:
另一个更新
ACS 管理 API 提供了一种添加新身份提供者的机制(如果您将 OpenId 设置为 WebSSOProtocolType),但是,我看不到您如何传递 OAuth 测试服务器的密钥/秘密(http://term.ie /oauth/example/)我正在使用要求。
azure - Shibboleth 能否与 Windows Azure 访问控制服务集成?
我们的两个高级客户使用 Shibboleth 进行 SSO。我对 Shib 的经验为零,并且没有要测试的实例。
最终,我们希望在我们的 Windows Azure (MVC) Web 角色中将 Shib SSO 与这些客户端集成。所以我的问题是:
- 这可能吗?
- 如果是这样,怎么做?是否需要在 Shib 上进行任何设置,它们是什么?
我去年在 MIX 11 上与 Vittorio Bertocci 谈过这个问题。他告诉我有一个名为“WS-Federation”的复选框可以在 Shib 中启用,这将启用兼容性。我从客户那里了解到,服务提供者支持 WS-Fed,但身份提供者不支持。
我将非常乐意用更多细节来补充这个问题,以回应评论。
c# - 设置 Azure AppFabric 访问控制服务 cookie 过期时间
我在 ASP.NET MVC 3 应用程序中使用 Azure 的访问控制服务。我可以成功登录,阅读我需要的所有索赔数据等。一切正常,除了一件事。一段时间后(不到一个小时),身份验证 cookie 似乎过期了(至少它们不再出现在请求的 cookie 集合中)。
我仍在使用开发仿真,没有 SSL(身份验证服务本身除外)。
我正在使用以下操作过滤器来限制对某些控制器的访问:
如何增加过期时间?或者在我的操作过滤器中手动更新 cookie 是否合适?
提前致谢!
access-control - 如何通过 ACS 与 Windows Live ID 的集成对 WCF 服务进行身份验证?
我有一个通过 ACS 使用用户名身份验证的 WCF 服务。这在我使用服务标识时效果很好,但是当我尝试使用我的 Windows Live ID 凭据时,我收到以下错误:
System.ServiceModel.FaultException:ACS10002:处理 SOAP 正文时出错。ACS50012:身份验证失败。ACS50026:名称为“louis@arsunica.com”的委托人不是已知委托人。
不幸的是,我还没有找到一个如何将 Windows Live ID 与 WCF 服务一起使用的示例。我能找到的唯一示例似乎集中在将多个身份提供者与 ASP.NET 或 MVC 网站集成。
在这方面的任何帮助将不胜感激......
jquery - 使用 jQuery 与 Azure 访问控制服务 (ACS) 进行单点登录?
我正在使用 Azure 实例中的 REST API。还为 Google、Live、Facebook 和 Yahoo 激活了 ACS 单点登录(从此处访问http://goo.gl/KNU6H)。如何使用 jQuery 和 HTML 为 Azure 访问控制服务创建登录页面?
asp.net - 使用 Microsoft Azure 构建身份管理系统
我正在寻找使用 Microsoft azure 和 .net 构建具有基于角色的访问控制的身份管理系统。
我只是想知道是否有人可以提供一些关于它的指示。我想设置身份验证,并根据用户角色(例如管理员)进行访问控制。
任何帮助,将不胜感激。
oauth-2.0 - 通过 Azure 访问控制服务使用电子邮件的 Windows Live
我正在尝试允许用户使用他们的 Google、Facebook 和 Windows Live 帐户登录到 ASP.NET MVC 网站。我目前正在使用 Azure App Fabric ACS,这让它变得非常简单。问题是我需要电子邮件地址。Google 和 Facebook 提供电子邮件作为声明,但 Windows Live 没有。从 LiveConnect 站点看来,使用 wl.basic(获取用户名)和 wl.emails(获取用户的电子邮件地址)范围似乎很容易,但我无法按顺序影响 ACS获取此信息。我还尝试实现 OAuth2 Web 服务器流程,以便在用户登录后从我的站点获取它。我能够获得所需的信息,但我陷入了无限的登录循环,因为 FedAuth cookie 被删除时我重定向到https://oauth.live.com/authorize开始流程。有没有人能够让它工作(在服务器端)?我是否应该完全废弃 ACS 并提供一个自定义页面,使用每个提供商的自定义代码来启用登录?
我用代码改造了以前的演示(博客引擎 ala smarx),这样我就不必暴露任何专有的东西。在我的 web.config FedUtil 中插入了以下内容:
我删除了拒绝所有用户
但是我有一个特定的操作方法(新博客的帖子)强制用户获得授权
在第一次填充 cookie(FedAuth 和 FedAuth1)时的 New 请求中。重定向返回后,它们就消失了。我没有对会话提供者做任何事情(也许我应该)。
asp.net - 如何更改显示 azure 访问控制服务登录时而不是在应用程序运行时
我正在尝试将使用 Azure 访问控制服务进行身份验证的选项添加到我的网站,所有功能都可以正常工作,但我想在重定向到 ACS 登录时进行更改,而不是在我的应用程序首次运行时进行更改。有没有办法做到这一点?
非常感谢任何帮助
谢谢。
azure - Azure 独立用户存储和访问控制服务服务标识
我们有一个正在 Azure 之上开发的移动 Web 平台。我们有一个网站,它是一个常规的被动身份验证方案,而移动客户端位于一个 Web 服务前面,这是一个主动身份验证方案。我们想创建自己的用户身份存储,而不是基于其他人,目前他是我们映射的选项,我已经添加了关于它们的问题:(如果我错了或写了一些愚蠢的东西,请纠正我)。
1.Asp.net 成员资格 - 最初不是为活动场景构建的,如果我们还想支持 OpenId/OAuth 提供程序,将来也会阻止我们。此外,不支持 SWT/SAML 令牌,因此将来我们的服务环境中将需要多个安全处理程序。如果我们将来需要,您知道将其与 Azure ACS 集成的任何好方法吗?
2.ADFS 2.0:我们可以在虚拟机上安装活动目录并通过它管理所有用户,未来我们可以将它集成到Azure ACS,支持SWT。Active Directory 对基本用户身份验证来说不是过度杀伤力吗?会不会是 IT 开销(我们迫切希望消除的东西)。
3.我们也许可以在虚拟机上安装其他身份管理服务器 - 例如 Oracle 身份管理,并将 Azure 与该服务器集成为自定义 STS。Oracle 已指定 Web 访问产品线: http ://www.oracle.com/technetwork/middleware/id-mgmt/overview/index.html
4.我们可以使用Azure服务标识,并简单地添加用户到那里。我们这里的主要问题是我们是否可以在这个范围内添加大量用户(超过几百万)。
问候 ,
詹姆士