Azure Service Principal无法访问Service Management API

时间:2015-11-05 00:42:53

标签: azure azure-resource-manager

似乎一个针对Azure作为服务主体进行身份验证的应用程序(按照此post进行设置)无法访问Service Management API。我无法找到明确说明不支持的任何地方。可能吗?会不会得到支持?

使用管理证书进行身份验证的应用程序无法访问资源管理器API(显然不支持此功能)。

是否有办法针对Azure验证应用程序(而非人)并访问两者服务管理和资源管理器API?

1 个答案:

答案 0 :(得分:1)

  

是否有办法对应用程序(而非人)进行身份验证   Azure并访问Service Management和Resource Manager API?

据我了解,今天不可能。为了对Service Management API使用基于 $mysql['stmt'] = $mysql['conn']->prepare("UPDATE websites SET website_pagecount=website_pagecount+? WHERE website_domain=?"); $mysql['stmt']->bind_param("is", $a = 1, $website['website_id']); $result = $mysql['stmt']->execute(); $mysql['stmt']->close(); $mysql['stmt'] = $mysql['conn']->prepare("SELECT website_pagecount FROM websites WHERE website_domain = ?"); $mysql['stmt']->bind_param("s", $website['website_id']); $result = $mysql['stmt']->execute(); //GET ROWS $result = $mysql['stmt']->get_result(); $pagecount = $result->fetch_assoc(); $mysql['stmt']->close(); $mysql['stmt'] = $mysql['conn']->prepare("INSERT INTO pages (page_id,page_parent, page_title, page_description,page_keywords, website_id, page_layout) VALUES (?,?,?,?,?,?,?)"); $mysql['stmt']->bind_param("issssss",$pagecount['website_pagecount'],$item['parentpage'],$item['pagetitle'],$item['pagedescription'],$item['pagekeywords'],$website['website_id'],$item['pagelayout'] ); $result = $mysql['stmt']->execute(); $mysql['stmt']->close(); 的身份验证,发出令牌的用户/应用程序必须是相关Azure订阅的管理员或共同管理员,我找不到添加方法的方法服务主体作为Azure门户的管理员/共同管理员。

但是,服务主体可以访问Resource Manager API。为此,您必须使用Azure预览门户为该服务主体分配适当的角色。有关相同的说明,请参阅此链接:https://azure.microsoft.com/en-in/documentation/articles/role-based-access-control-configure/

我知道您不是在此之后,但您可以做的一件事是在Azure AD中创建一个tokens类型用户,然后将该用户用于Service Management和Resource Manager API。有关详细信息,请参阅此博客文章:http://blogs.msdn.com/b/tomholl/archive/2014/11/25/unattended-authentication-to-azure-management-apis-with-azure-active-directory.aspx