如何使用 Azure AD 保护 Azure 移动服务? ADAL.JS

How do I secure an Azure Mobile Service with Azure AD? ADAL.JS

我已经在我的 Azure AD 中创建了一个应用程序。我切换到移动服务并转到身份选项卡。对于 MS 身份,要求提供客户端 ID。我在 Azure AD 配置选项卡中找到了客户端 ID。

但是,我不知道客户端密钥和程序包 SID 使用什么。似乎期望您使用 Windows 商店应用程序来访问该服务,而不是我正在使用的 Javascript 应用程序。

所以,我的问题是,当 AngularJS Web 应用程序访问服务时,如何使用 Azure AD 保护 Azure 移动服务?

(我不想使用google,因为我想控制可以访问这个的用户,所以我会手动将用户添加到我想授予访问权限的Azure AD服务。)

更新:

根据下面的回答,我尝试使用 ADAL.JS。它 "mostly working" 存在以下问题。

  1. Chrome 锁紧 - 它不起作用。

  2. 当使用添加到我的 Azure AD 域的 Microsoft 帐户时,它只是进入循环并不断重定向我。

在移动服务身份配置中,对于您要求的 Azure AD,需要以下参数

  • 应用URL
  • 客户编号
  • 允许的租户

Package SID与MSA账号认证相关。 Azure AD 排在最后。

参考:Register your apps to use an Azure Active Directory Account login

在 Azure AD 中,您需要创建一个应用程序,将客户端 ID 和应用程序 ID URI 与移动服务端的信息相匹配。

其他需要填写的重要信息:

  • 回复URL:您应该有一个包含您的 Web 应用程序的 URI 的条目(托管 Angular)
  • 允许启用单点登录并读取用户的配置文件作为委派权限
  • 通过编辑和更新应用程序清单文件允许 OAuth 隐式流

要了解更详细的步骤,尤其是我列表中的最后一项,请查看此示例 https://github.com/AzureADSamples/SinglePageApp-AngularJS-DotNet 及其自述文件

一旦您通过 ADAL.JS 库获得了访问令牌,您就可以使用它来调用移动服务的登录方法,只需提供正确的身份验证提供商名称,并使用 [=46 检索访问令牌=]

使用 ADAL.JS 而不是 Mobile Services SDK 来获取访问令牌还可以为您提供刷新令牌,您可以缓存和存储刷新令牌以自动更新访问令牌;避免让用户每次都输入凭据