【问题标题】:Accessing Windows Azure Service Management API using Windows Live ID使用 Windows Live ID 访问 Windows Azure 服务管理 API
【发布时间】:2012-08-28 19:04:52
【问题描述】:

根据documentation,似乎只能通过将证书附加到我之前上传到管理门户的每个请求来针对 Windows azure 服务管理 API 进行身份验证。 new management API 是使用服务管理 API 构建的,但它使用 Windows Live 身份验证。是否可以使用 windows live 获取 windows azure 订阅 ID 和证书,以便我可以使用管理门户使用的相同身份验证机制?

【问题讨论】:

    标签: rest azure


    【解决方案1】:

    是什么让您认为 Service Management API 使用 Live ID 进行身份验证?它只是使用 Live ID 进行身份验证的门户。

    如果您深入研究一下,您会注意到来自管理门户的所有服务请求都是针对https://manage.windowsazure.com/Service 发出的,而The Base URI for management service 是:https://management.core.windows.net

    所以,不,您不能使用 Live ID 对 Management API 进行身份验证。而且,它的管理 API 并不新鲜。门户是新的。管理 API 已经存在了一段时间,并且会不时更新以反映即将推出的新服务。

    2 条评论后更新

    按照 Gaurav 的解释,我将添加一个简单的架构图(超级简化,完全是我的想法,但这就是我将以非常简约的方式构建它的方式):

    [用户的浏览器(门户)] ==> 发送 XmlHttpRequest (AJAX) 到 ==> [门户服务] 然后 [门户服务后端] ==> 使用预定义的证书签署请求并将请求发送到 ==> [management.core.windows.net/subscription-id/whatever/service/command]

    这实际上是向(Web)服务提供 UI 的一种非常常见的做法。

    这样两个条件都实现了:

    1. 您使用 Live ID 对门户进行身份验证
    2. Windows Azure 服务管理 API 仍然只有证书保护。

    【讨论】:

    • 我很困惑,因为 Scott Gu 在他的博文 (weblogs.asp.net/scottgu/archive/2012/06/07/…) 中说:新门户建立在 Windows Azure 中基于 REST 的管理 API 之上——您可以通过该门户执行的所有操作也可以直接针对此 Web API 进行编程。我期待我可以使用完全相同的功能,包括身份验证。
    • 在某种程度上 Scott Gu 是正确的。例如,您可以通过门户创建新的云服务。您也可以通过 REST API (msdn.microsoft.com/en-us/library/windowsazure/gg441304) 执行相同的操作。事实上,门户在内部调用这些 API。只是当您从应用程序调用 API 时,身份验证机制是基于证书的身份验证,而不是基于 Live Id 的身份验证。我的猜测是门户在内部获取证书并代表您调用请求。
    • VS 能够在没有预先存在的证书的情况下发送自己的管理证书。它是如何工作的?
    猜你喜欢
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多