问题标签 [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.

0 投票
2 回答
511 浏览

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 的不同位置。

我觉得我很接近但可能错过了一些重要的东西,但我似乎没有在网上找到它。有人会理我吗?

谢谢,亚历克斯

0 投票
3 回答
1364 浏览

azure - Azure ACS - 中继方应用程序 - ReturnURL 带参数?

我们正在构建一个使用 ACS 的应用程序。我们的使用场景是这样的:

  1. 用户通过电子邮件获得一个类似https://our.application.com/?requestId=123456的 URL 并点击它
  2. 用户被重定向到 LiveID 登录屏幕
  3. 登录后,ACS 将用户转发给我们,但转发给https://our.application.com/

不幸的是,“访问控制服务门户”的“中继方”中的“返回URL”设置似乎只是一个固定的字符串。有没有办法将原始请求传播给它?如果没有,您会建议什么作为解决方法?

0 投票
1 回答
486 浏览

azure - 保护从多个远程站点访问 Azure 服务队列的建议

我正在使用 Azure 服务总线队列来存储消息并将消息转发到客户端应用程序的远程安装。

例如,我的方法是为每个远程站点设置一个队列,并为应用程序的每个实例配置它自己的队列名称;

我正在寻求有关如何保护客户端应用程序中的队列和凭据的建议。据我了解,每个命名空间都有一组凭据,因此客户端应用程序的每个实例都将具有相同的队列连接字符串。此外,似乎使用解密的连接字符串,调用有权创建/删除队列,而不仅仅是出列消息 - 我可以防止这种情况发生吗?

0 投票
2 回答
636 浏览

asp.net-mvc-3 - AZURE ACS - Windows Live ID:如何识别唯一用户

对于我的 Web 应用程序,我使用 Azure ACS 进行身份验证。我遵循这个 [1]:http: //msdn.microsoft.com/en-us/library/hh127794.aspx来实现我的代码。我只对 Windows Live 用户进行身份验证。我发现 ACS 不提供用户信息,例如用户名、电子邮件等。

此代码验证了身份验证。但我需要一些唯一标识符来跟踪用户。

我正在寻找一个唯一 id 来保持跟踪用户。

这会返回一个看起来像这样的响应

我认为在这个响应<NameID>xWTQfgjexVZ4sturSHZmdppGj/am1IweOYHgc139TrE=</NameID>中包含独特的价值。但似乎 PC 与 PC 不同。

请建议我实现这一目标的方法。

提前致谢!

0 投票
1 回答
319 浏览

c# - 如何通过访问控制服务将参数从客户端传递到后端

各位开发者您好!

我们将 ACS 用于移动和 Web 应用程序的用户身份验证。

问题:如何将一些上下文信息(例如 1 个字符串)传播到身份提供者,这些信息提供者可以返回给 ACS,然后传播到我们的后端(ACS 向其发布身份验证令牌)?

我们的目标:

  • 工作:移动应用程序>后端(WebApi)>ACS(使用IdentityProviders.js)>后端(WebApi)>例如Google auth>ACS>我们的后端(WebApi)将移动应用程序重定向到静态Noop URL(暴露令牌作为查询字符串参数)> 移动应用程序检测 URL 更改(在 InAppBrowser 中)并存储查询字符串。

  • 问题:Web 应用 > 后端(WebApi)> ACS(使用 IdentityProviders.js)> 后端(WebApi)> 例如带有参数“myURL”的 Google 身份验证 > ACS(传播令牌和参数“myURL”)>我们的后端end (WebApi) 应该将 Web 应用程序重定向到接收到的参数 myURL,其中令牌作为查询字符串参数。如何做到这一点?

谢谢!马丁

0 投票
1 回答
1490 浏览

java - 如何在 Web 应用程序中实现用户访问控制机制

我正在使用 Springs 开发 Web 应用程序。为了使我的应用程序具有可扩展性,我需要用户管理系统。在具有不同组的应用程序中,每个组具有不同的用户。每个用户具有不同的角色。

  • 要实现访问控制机制,是否有任何可用的 API?
  • 如何为每个用户分配角色?
0 投票
1 回答
751 浏览

azure - Windows phone 8 和 Azure AD / ACS

我正在开发一个 WP8 应用程序,它需要身份验证才能获取令牌来调用 Web api 后端。我不想创建自己的帐户管理机制,因为在我们这个时代实现我自己的帐户存储库似乎很愚蠢。

无论如何我都在使用 Azure,所以我想利用它来进行用户管理和身份验证/授权。有什么地方比 Active Directory 更适合管理用户。如果我还使用 ACS,我可以立即获得“本地”帐户和使用其他提供商(Facebook、Microsoft 帐户等)。

因此,我一直在寻找 DAYS,但我什至找不到一个教程或示例,甚至没有人谈论包含 WP8、Azure AD/ACS 和 Web API 的流程。

我只能找到有关使用移动服务进行身份验证的教程,并且我不想使用它,因为它对于我需要的东西来说似乎很简单。

目前是否支持此用例?是否可以使用 Azure AD 对 WP8 应用程序的用户进行身份验证,然后接收令牌以使用托管在 VM 中的 Web API 进行授权?

0 投票
2 回答
2767 浏览

.net - Azure 服务总线操作使用 ACS 引发 TimeoutException 而不是 UnauthorizedAccessException

我正在使用访问控制服务来授权访问特定服务标识的特定服务总线订阅。

当接收来自订阅的会话或消息时,服务标识被授权并且可以根据需要接收和完成或放弃消息。

UnauthorizedAccessException但是,在尝试访问服务标识无权访问的订阅时,我没有看到,在尝试执行规则组未针对该服务标识和依赖发出声明的操作时,我也没有看到此异常聚会(例如发送消息或创建主题)。

相反,我最终看到了一个TimeoutException - "The timeout elapsed upon attempting to obtain a token while accessing 'https://namespace-sb.accesscontrol.windows.net/WRAPv0.9/'". 内部异常是一个SecurityTokenException - "The token provider was unable to provide a security token while accessing 'https://namespace-sb.accesscontrol.windows.net/WRAPv0.9/'. Token provider returned message: 'The operation has timed out'". 这会导致 RetryPolicy 出现问题,因为超时异常被认为是暂时的。

但奇怪的是,我UnauthorizedAccessException在尝试接收订阅说明时收到了一条消息。根据服务总线操作所需的权利,应该可以在 ...myTopic/Subscriptions/mySubscription 范围内使用 Listen Claim 的服务身份使用的东西。

我有以下设置:

我看到以下问题:

结果是UnauthoriszedAccessException - "The remote server returned an error: (401) Unauthorized."我希望能够检索描述,而不是收到此异常。有趣的是,这是身份可以访问的唯一领域,也是我唯一一次看到 UnauthorizedAccessException。

结果为 a TimeoutException,内部异常类型为SecurityTokenException。我希望在UnauthorizedAccessException这里。

结果是 message null,但我再次期待一个UnauthorizedAccessException. 检查输出,我看到输出窗口中出现异常但被客户端吞下:

同样,尝试创建主题、发送消息等也会导致TimeoutException.

当尝试访问服务身份无权访问的领域时,这是正确的行为,而不是我期望收到的UnauthorizedAccessException

我猜该设置确实具有预期的结果 - 身份无法侦听订阅领域所标识的订阅以外的订阅,身份与其关联的侦听规则,但我担心错误反馈不清楚,并将导致连续重试。

任何建议将不胜感激。

0 投票
0 回答
32 浏览

azure - Windows Azure 访问控制服务的单独登录页面

我在本地 Web 应用程序上设置了 Windows Azure 访问控制服务,以便我可以通过 Google 登录,一切正常。

我想做的是允许匿名查看某些页面。每当我尝试打开应用程序时,即使我尝试执行的控制器/操作没有用Authorize属性修饰,我也会被带到 ACS 登录页面。

理想情况下,我希望未经身份验证的用户仅在单击某些“登录”链接或尝试进入受限区域时被带到 ACS 登录页面,就像默认 MVC 身份系统的工作方式一样。

0 投票
1 回答
106 浏览

ios - 将 Azure AD 访问控制集成到 iOS 应用的社交身份验证

我正在编写一个 iOS 应用程序,并使用 Azure 移动服务进行身份管理,使用 DocumentDB 进行 noSQL DB。然而,我可以看到的 DocumentDB 的唯一访问控制是当我们使用 Active Directory(我目前没有使用它)时。

我从 https://azure.microsoft.com/en-us/documentation/articles/fundamentals-identity/ 看到有一种方法可以在不使用活动目录身份验证的情况下集成访问控制服务。但是我找不到任何说明如何做到这一点的文档。有人做过吗?我在 Mac 上为 iOS 开发。我看到的唯一文档是针对 .NET 和 ASP.NET MVC 应用程序的:https ://azure.microsoft.com/en-us/documentation/articles/active-directory-dotnet-how-to-use-access-control /

另外,有谁知道 Active Directory 是否可以与 JavaScript 后端集成?所有文档都显示使用带有 .NET 后端的 Active Directory。

谢谢你。