【问题标题】:Using ADAL to invoke Azure Service Management API使用 ADAL 调用 Azure 服务管理 API
【发布时间】:2015-03-31 04:26:48
【问题描述】:

我已创建 Azure AD 本机客户端应用程序,并已授予 Azure 服务管理 API 的委派权限。现在,我可以使用我的 ID 从使用 ADAL 库的 Windows Phone 8.1 应用程序调用服务管理 API。但是,即使我将其他用户添加为我的目录中的共同管理员,其他用户也无法对其订阅调用操作。我得到了用户的令牌,但是当我尝试进行 API 调用时,我得到了'Invalid token:A security token exception occurred for the JWT token'。有没有办法允许其他用户使用 ADAL 身份验证从其他人的 AD 中托管的 AD 应用程序访问有关其订阅的详细信息?我已经搜索任何相关信息很长一段时间了,我很乐意接受任何帮助。

【问题讨论】:

  • 你使用了什么登录权限?
  • 我用过https://login.windows.net/<tenant-id>
  • 试试login.windows.net/common让我知道

标签: azure azure-active-directory adal azure-management-api


【解决方案1】:

这就是我对你在做什么的解释。

您有一个本机应用程序,它已连接到您的租户,并且可以正常访问您的租户/订阅中的服务管理 API。

您将应用提供给朋友,而他们正试图使用​​它来访问他们的租户/订阅中的服务管理 API。

评论中上面的建议是正确的,但是您需要查看使您的本机应用程序多租户的步骤。这样,AD 服务将知道为经过身份验证的用户寻找租户。将 url 更改为使用“common”而不是租户 ID 是所需的步骤之一。这里有几篇文章可以帮助实现这种过渡。 http://www.cloudidentity.com/blog/2013/04/09/walkthrough-3-developing-multi-tenant-web-applications-with-windows-azure-ad/

这是一个 Windows 商店应用的多租户本机客户端示例。我在 repo 中找不到一个电话应用程序。希望这能让你走上正确的道路。 https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore

【讨论】:

  • 我已经按照建议尝试了公共端点。身份验证对所有用户都有效,但对服务管理 API 的授权却不行。当我将访问令牌传递给 API 以对属于另一个用户的订阅进行操作时,我得到一个安全令牌异常(未经授权),基本上是相同的错误。可能 Azure 服务管理 API 不支持多租户?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
相关资源
最近更新 更多