我正在尝试发布到使用PowerShell中的Azure Active Directory保护的服务结构集群,调用Deploy-FabricApplication.ps1作为TeamCity构建配置的一部分。
在这种情况下,我一直无法找到你提供的凭据。
我在Deploy-FabricApplication.ps1中注意到Active Directory有一个SecurityToken参数。
这是您需要传递给身份验证的内容,如果是这样,您如何在PowerShell中生成安全令牌?
我已在我的Azure Active Directory中为TeamCity设置了一个用户,我正在跳转进行身份验证。
答案 0 :(得分:2)
可以通过使用 Active Directory身份验证库(ADAL)获取令牌,特别是通过调用AcquireToken
中的方法Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext
。
在https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/ServiceFabricDeploy/utilities.ps1的 VSTS Service Fabric Deploy 任务的代码中可以看到使用它的一个很好的例子。
该文件中有一个名为Get-AadSecurityToken
的函数,它显示对AuthenticationContext.AcquireToken
方法的调用。
您需要确保同时拥有群集应用ID 和客户端应用ID 。通过使用Connect-ServiceFabricCluster
开关调用-GetMetadata
,可以从群集中检索这两个问题(这也在Get-AadSecurityToken
函数中完成)。