我正在测试使用gMSA帐户运行SF应用程序,而不是NETWORKSERVICE。
按照此处的说明操作: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-runas-security
使用powershell cmdlet在域控制器上创建gMSA:
New-ADServiceAccount -name MySA$ -DnsHostName MySA.contoso -ServicePrincipalNames http/MySA.contoso -PrincipalsAllowedToRetrieveManagedPassword Node0Machine$, Node1Machine$, Node2Machine$
Install-AdServiceAccount在每个节点上返回“未指定的错误”,但Test-AdServiceAccount对MySA $返回true(当作为域用户运行powershell时)
ApplicationManifest.xml有以下更改:
<Principals>
<Users>
<User Name="MySA" AccountType="ManagedServiceAccount" AccountName="Contoso\MySA$"/>
</Users>
</Principals>
<Policies>
<SecurityAccessPolicies>
<SecurityAccessPolicy ResourceRef="ConfigurationEncipherment" PrincipalRef="MySa" ResourceType="Certificate" />
</SecurityAccessPolicies>
<DefaultRunAsPolicy UserRef="MySA"/>
</Policies>
Service Fabric资源管理器为每项服务显示以下错误:
Error event: SourceId='System.Hosting', Property='CodePackageActivation:Code:SetupEntryPoint'.
There was an error during CodePackage activation.Service host failed to activate. Error:0x8007052e
我也尝试使用gMSA创建集群(我们目前正在成功使用X509)。使用gMSA群集配置作为模板,它会因超时而失败(可能是“WindowsIdentities部分不正确 - 似乎没有关于此的文档)
"security": {
"WindowsIdentities": {
"ClustergMSAIdentity": "MySA$@contoso",
"ClusterSPN": "http/MySa.contoso",
"ClientIdentities": [
{
"Identity": "contoso\\MySA$",
"IsAdmin": true
}
]
},
答案 0 :(得分:0)
Error:0x8007052e
可能与登录失败相关联。
根据Secure a standalone cluster on Windows by using Windows security和Connect to a secure cluster
如果您有超过10个节点或者可能会增长或缩小的群集。 Microsoft强烈建议使用组托管服务帐户(gMSA)方法。
您还会看到:
您可以通过两种不同的方式建立信任:
指定可以连接的域组用户。
指定可以连接的域节点用户。
[...]
管理员可以完全访问管理功能(包括读/写功能)。默认情况下,用户只具有对管理功能的读取权限(例如,查询功能),以及解析应用程序和服务的能力。
您也可以在Getting Started with Group Managed Service Accounts
上找到帮助根据您的评论,只要您将gMSA
添加到ServiceFabricAdministrators
群组,一切都会有效,这可能是因为“管理员可以完全访问管理功能”