我希望通过C#从Azure Powershell管理Azure的某些设置。我需要以编程方式管理许多客户的订阅。
我想确保无论何时打开PowerShell会话来处理特定客户的订阅,都不会在注册表,证书存储等中遗留任何会话。
我可以使用管理证书作为加密字节数组。如果需要,我可以将它们保存在硬盘上。
我也很高兴通过Powershell会话调用Powershell cmdlet,但直接通过引用.DLL中的对象
我希望避免在某些情况下直接使用Management API,这就是我想通过Powershell这样做的原因
这可能吗?如果是这样,我该如何避免使用证书存储?理想情况下,我更愿意只使用一种方法从C#调用cmdlet而无需通过Powershell会话
答案 0 :(得分:2)
您应该开始使用Azure Active Directory credentials而不是X.509证书。 Azure PowerShell的Azure服务管理(ASM)和Azure资源管理器(ARM)模式都支持AAD,而证书身份验证只能用于ASM。使用AAD凭证意味着您永远不需要使用X.509证书的证书,并且要承受他们施加的管理困难。您需要作为共同管理员添加到客户订阅ASM支持(和生产门户),并为ARM支持(和预览门户)提供适当的角色。但是,您的客户可以使用RBAC限制您的ARM并预览门户访问。
答案 1 :(得分:2)
PowerShell有一个名为clear-azureprofile的cmdlet ......它清除所有连接...如果你真的想确定你最好还清除IE cookie并在两个动作之后启动一个新的PoSh会话(所以最好做它在每次会议结束时)......我同意Neil顺便说一下:明白证书...... AAD的目标
但是......你为什么不看看管理库(MAML?它是所有你不需要调用REST的基础,你可以避免使用PowerShell(也使用MAML)。它可以下载为nuget包
在此处查找http://www.nuget.org/packages/Microsoft.WindowsAzure.Management.Libraries 并在此处http://azure.microsoft.com/en-us/updates/management-libraries-for-net-release-announcement/和http://www.bradygaster.com/post/getting-started-with-the-windows-azure-management-libraries查找相关信息 希望这可以帮助!
答案 2 :(得分:-1)
只有自动方式是使用AAD帐户进行订阅。请注意,令牌将在12小时后到期。看看六月的精彩博文。 http://www.sapien.com/blog/2014/10/23/saving-passwords-for-add-azureaccount/