[英]Connect to the Azure Service Management API from c#, without the interactive login
我正在尝试使用C#连接到Azure服务管理APi,但是示例( https://msdn.microsoft.com/en-gb/library/azure/ee460782.aspx )只有通过交互式身份验证才能工作方法,要求我输入我的Azure用户名和密码。 因为我们希望从辅助角色中调用此方法,所以这是不可能的。 有办法吗?
因为我们希望从辅助角色中调用此方法,所以这是不可能的。 有办法吗?
有两种方法:
Connect to your Azure Subscription using X509 Certificate
:尽管不建议根据Azure的发展方向进行选择,但这是一个选择。 Create a user in Azure AD just for executing Service Management API
:通过这种方法,您将在Azure AD中创建一个用户。 然后,您将在Azure订阅中为该用户分配一个Co-Admin
角色(两者都应通过旧的Azure门户完成)。 一旦这样做,您将需要通过在代码中指定用户名/密码来获取令牌。 如下所示:
var authContext = new AuthenticationContext("https://login.microsoftonline.com/{tenantid}") UserCredential userCredential = new UserCredential(userName, password); AuthenticationResult authResult = authContext.AcquireToken("https://management.core.windows.net/", clientId, userCredential);
但是,请记住以下几点:
Graph API
可以实现这些目标。 如果可能,请查看是否可以使用Azure Resource Manager (ARM) API
代替Service Management API
来管理订阅。 使用ARM API中Role-based access control (RBAC)
,您可以简单地创建Service Principal
类型的用户,并仅向他们授予所需的权限。 无需让他们成为您的订阅的共同管理员。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.