Azure网站管理自动化系列2:客户端认证方法


Microsoft Azure服务管理API不允许匿名调用。Azure管理服务API支持两种认证方式:

  • Azure活动目录
  • 管理证书

 

Azure活动目录(AAD)

通过AAD,可以使用Azure账户认证。它支持两种类型的账户:

    • 微软账户(MSA)

微软账户是个人用户。通常通过@outlook.com,@hotmail.com或者@live.com等订阅Azure服务。

    • 组织账户(OrgId)

组织(或者企业)账户为企业用户提供了管理企业部署在Azure上的服务的方法。组织账户通常使用企业本身账号登陆。
关于这两种账户的区别,请参考下面的文档。
Sign up for Azure as an organization

 

管理证书

Microsoft Azure管理证书是用来验证客户端的X.509 v3证书(双向SSL的客户端证书),它与您的Azure订阅绑定。每个Azure订阅可以最多拥有100个证书。如果您有多个订阅,并希望使用相同的管理证书来管理这些订阅,该证书必须与每个订阅相关联。

在客户端,Microsoft Azure管理证书必须是私钥证书。客户端证书必须有至少2048位的密钥长度,通常保存在个人证书库中。使用管理证书时,您需要注意以下两点:

  • 服务管理API不验证证书是否仍然有效。即使是一个过期的证书也可能验证成功。
  • 如果您有多个管理证书,所有管理证书具有相同的权限。没有“基于角色”的认证。

 

选择合适的认证方式

尽管Azure继续支持基于管理证书的认证方式,但是相对于基于账户的认证方式,基于管理证书的方式更加复杂,容易出错。如果可能,您应该选择基于账户的认证方式。
基于账户的认证方法可以更容易地管理和访问Azure订阅。但是,
1. 这种方法需要客户交互方式输入用户名与密码,不适用于Windows服务程序。
2. 凭证有效期为12小时,过期后需要重新登陆。对于需要一直长时间运行的后台应用来讲,这可能会中断您的管理自动化应用。

因此,对于交互式的应用或者需要给由于不同用户不同权限(Role Based)的应用,可以选择基于账户的认证方式。对于Windows服务应用或者后台应用,基于管理证书的认证方式是更好的选择。

 

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注