使用 Azure AD 身份验证部署 Service Fabric 应用

Deploying ServiceFabric apps using AzureAD Authentication

我想使用 azure ad 和 powershell 将应用程序部署到我的服务结构。

我已经设置了所需的 azure AD 应用程序,但我不知道如何以编程方式登录到 Azure AD 帐户,以便可以从 CD 工具进行部署。看起来这需要是 AD 用户而不是服务主体。使用 AzureAD 时,CONnect-ServiceFabric cmdlet 需要某种安全令牌,我不知道如何提供它以避免弹出窗口。

您可以按照以下步骤进行操作,运行 -

1. 您需要在 AD 中创建两个应用程序注册 - 一个代表 SF 集群,第二个代表客户端应用程序。您可以按照此处的说明完成它 Set up Azure Active Directory for client authentication

作为结果,你应该有下一个输出 -

"azureActiveDirectory": { "tenantId":"guid", "clusterApplication":"guid", "clientApplication":"guid" }

2. 现在您可以设置 SF 集群了。您可以将上一步中获得的 AD 工件放入 rm 模板中,也可以在门户中指定字段。选择权在你 -

3. 在 AD 中找到第一步创建的应用程序注册,并分配给您要登录的用户。

4. 最后用这个例子在非交互模式下使用AD认证登录- Connect to a secure cluster non-interactively using Azure Active Directory.

这里是一样的,只是在Powershell中 -

$authority = "https://login.microsoftonline.com/your_tenant_id"
$credentials = [Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential]::new($UserName, $Password)
$authContext = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]::new($authority)
$authResult = $authContext.AcquireTokenAsync($clusterApplicationId, $clientApplicationId, $credentials) 
$Token = $authResult.Result.AccessToken

Connect-ServiceFabricCluster -AzureActiveDirectory -SecurityToken $Token -ConnectionEndpoint "your_cluster_name.location.cloudapp.azure.com:19000" -ServerCertThumbprint "your_server_cert_thumbprint"

基本上就是这样。