Azure AD身份验证用户声明的Azure移动服务

时间:2014-07-03 22:52:15

标签: cordova azure azure-mobile-services azure-active-directory

我想知道在使用Azure AD对使用azure移动服务的用户进行身份验证时,我是如何获得索赔的。

我正在使用azure移动服务在phonegap应用中对用户进行身份验证。身份验证流程正常,我从服务中获得的响应如下

{
    "userId": "Aad:o5ExTvSOMETHING_HEREpb0c",
    "mobileServiceAuthenticationToken": "A_TOKEN"
}

如何获取全名,登录名等配置文件属性,这样我至少可以输出类似“Hello Lars”,“Lars”作为索赔的内容。

登录后,我将用户重定向回“home”:

LoginController.prototype.doLogin = function() {
    var that = this;
    client.login('Aad').done(function(response) {
       that.ons.navigator.resetToPage("page1.html", { title: 'Home' });
    }, function (error) {
        console.log(error);            
    });
};

登录后运行HomeController时,client.currentUser是一个具有上述结构的对象:

HomeController = function($scope) {
    $scope.controllerhello = "Welcome home!";
    if(client.currentUser == null) {
        $scope.ons.navigator.pushPage("login.html", { title: 'Sign in' });
    }
};    

我所希望的是这样的反应:

{
    "userId": "Aad:o5ExTvSOMETHING_HEREpb0c",
    "mobileServiceAuthenticationToken": "A_TOKEN",
    "claims": {
        userName: "someusername@me.onmicrosoft.com",
        fullName: "Lars"
    }
}

我是否可以获得这些声明。是否与管理azure AD下的应用程序清单有关 - >应用程序 - >管理清单?

1 个答案:

答案 0 :(得分:1)

移动服务不会向客户端发送AAD声明,但使用自定义API从服务器获取它们相当容易。您可以通过拨打AAD Graph API来获取您想要的大部分数据。这是存储有关您的用户的所有信息的地方。

This blog post显示了使用Node.JS后端访问图表并在屏幕上显示AAD用户姓名的步骤。它在UI方面有点过时,但概念应该仍然适用。现在,而不是点击"管理权限,"你会转到其他应用程序的权限#34;并在" Windows Azure Active Directory上设置适当的应用程序权限。"