【问题标题】:Adding Roles to MobileServices in Azure (ACS)在 Azure (ACS) 中向 MobileServices 添加角色
【发布时间】:2013-04-12 14:41:00
【问题描述】:

我正在尝试了解如何在 ACS 中执行角色。我有一个 Windows 应用商店 App不是一个网站 :-),我需要 AdministratorMember 角色- 但是对于我来说,即使是非常基本的文档或教程也很难找到。

我发现的只是一堆对 ASP.NET 或 Azure 网站的东西的引用——我不能使用,因为商店应用不是网站——而且不使用 ASP.NET。

我有适用于我的 Windows 应用商店应用的 Azure 移动服务。有什么你知道的可以帮助的信息吗?

我很惊讶 Azure 网站的任何地方的示例/参考/教程部分似乎都没有涵盖角色(除非我错过了好几次)。

以这个场景为例。在这里,在管理门户的脚本选项卡中,我将一些文本插入到与当前登录用户关联的表中(通过insert 函数):

var SendGrid = require('sendgrid').SendGrid;

function insert(item, user, request) {
        item.userId = user.userId;
        request.execute(
            {
                success: function() {
                    request.respond();

                    // Send email in the background.
                    sendEmail(item);
                }
            }
        );
}

上面的代码在表格中插入一些文本,然后向该用户发送一封电子邮件。但是,我该如何调整这段代码,以便它会(伪代码):

if item.text == "administrator"
   then insert userid into admin column
else
   then insert userid into member column

任何帮助都将受到高度赞赏。

【问题讨论】:

  • 角色只是一个声明,而 ACS 就是声明,但如果您使用的是移动服务,那么您(AFAIK)不会通过 ACS,因此您没有机会将 UserID 声明转换为 Role 声明。您为 Azure 移动服务使用什么身份提供商?您是在维护角色/分配还是希望它成为您用于身份验证的目录的一部分?
  • @JimO'Neil 我使用 Microsoft 帐户(以前称为 Live ID)作为我的 ID 提供者。我不介意自己维护这些角色,只要它不是手动过程(可以在代码中完成)。
  • 好吧,您可以将角色表添加到您的 WAMS 数据库(您可以使用任何 SQL Server 客户端工具附加到它),然后在您的脚本中,您可以使用 mssql 对象向您的角色添加连接用于获取其角色的 user.userID 上的表。这意味着尽管您需要根据从 Live 获得的不透明用户 ID 填充角色,或者为您的应用构建注册过程以设置该表 - 有点取决于谁控制注册:“您”或是自助的吗?
  • @JimO'Neil 谢谢,我想的是你刚才所说的:当用户使用他们的 Microsoft 帐户登录时,将他们添加到角色并关联该角色以及任何其他配置文件我从他们那里收集到的信息,以及 ACS 提供的 userId?我打算这样做而不问任何问题,但我一直认为必须有一个更......正确的方法(如果你知道我的意思)。但我对此很好。
  • 好吧,如果角色是 AD 的一部分,那么您就不想重新创建,但听起来您无论如何都必须在“某处”维护它们

标签: c# .net authentication azure role-base-authorization


【解决方案1】:

这不是一个真正的答案,但评论也太长了,我认为这很重要。

首先,当使用来自Windows Azure Mobile Services 的身份验证时,您没有使用 Windows Azure Access Control Service。因此,没有 Active Directory,在使用移动服务时没有(附加)声明。这一定很清楚,因为我看到不断的误解和困惑。 @Joey 仍然要求并将 ACS 作为其应用程序的联合提供商,如果他依赖移动服务身份验证机制,不是

因此,角色分配必须完全由您的应用程序逻辑处理,并使用 Jim 描述的附加表。

但是,角色分配通常是一个有趣的话题,并且实际上不属于任何教程或文档的一部分。它不是其中的一部分,因为角色分配是应用程序本身业务逻辑的一部分,而不是身份验证服务的一部分。有一个非常相似的问题here,但是又没有详细回答如何分配角色。要解决的基础和主要问题是:How to assign administrator role。其他一切,都可以通过为应用程序管理员添加适当的 UI 来解决。不过,这个问题并不需要简短的 SO 答案。

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2015-10-27
    • 1970-01-01
    • 2015-03-04
    相关资源
    最近更新 更多