你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
SecurityCredentials.LoadFrom 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
从服务配置设置文件实例化 SecurityCredentials 对象
public static System.Fabric.SecurityCredentials LoadFrom (System.Fabric.CodePackageActivationContext codePackageActivationContext, string configPackageName, string sectionName);
static member LoadFrom : System.Fabric.CodePackageActivationContext * string * string -> System.Fabric.SecurityCredentials
Public Shared Function LoadFrom (codePackageActivationContext As CodePackageActivationContext, configPackageName As String, sectionName As String) As SecurityCredentials
参数
- codePackageActivationContext
- CodePackageActivationContext
当前代码包激活上下文 CodePackageActivationContext。
- configPackageName
- String
当前配置包名称。
- sectionName
- String
配置文件中定义所有安全设置的 节。
返回
安全凭据。
注解
服务配置文件夹中的配置设置文件 (settings.xml) 应包含创建 SecurityCredentials 对象并传递给 CreateReplicator(IStateProvider, ReplicatorSettings) 方法所需的所有安全设置。 通常,服务作者负责读取settings.xml文件、分析值并正确构造 SecurityCredentials 对象。
使用当前帮助程序方法,服务作者可以绕过上述过程。
以下是应在服务配置“settings.xml”中提供的参数名称,这些名称可由 Windows Fabric 识别,以便自动执行上述分析:
CredentialType – 用于保护通信通道的凭据类型:X509 (X509 证书凭据) 或 Windows (Windows 凭据,需要 active directory)
CredentialType=X509
StoreLocation-Store查找证书的位置:CurrentUser 或 LocalMachine
应在其中搜索证书的证书存储的 StoreName-name
FindType-Identifies FindValue 参数中提供的值的类型:FindBySubjectName 或 FindByThumbPrint
用于查找证书的FindValue-Search目标
AllowedCommonNames-证书公用名称/dns 名称的逗号分隔列表。 此列表应包含复制器使用的所有证书,用于验证传入证书。
IssuerThumbprints-以逗号分隔的颁发者证书指纹列表。 指定后,如果传入证书由列表中的某个条目颁发,则除链验证外,还会对其进行验证。
ApplicationIssuerStore/[IssuerCommonName]-一个逗号分隔的存储名称列表,其中可以找到与 IssuerCommonName 对应的颁发者证书。 指定后,如果传入证书由列表中的某个条目颁发,则除链验证外,还会对其进行验证。
RemoteCertThumbprints-证书指纹的逗号分隔列表。 此列表应包含复制器使用的所有证书,用于验证传入证书。
ProtectionLevel-Indicates保护数据的方式:Sign 或 EncryptAndSign 或 None。
CredentialType=Windows
ServicePrincipalName-Service为服务注册的主体名称。 如果服务/参与者主机进程以计算机帐户身份(例如:NetworkService、LocalSystem 等等)运行,则该项可以为空
WindowsIdentities - 所有服务/执行组件主机进程的 Windows 标识的逗号分隔列表。
ProtectionLevel-Indicates保护数据的方式:Sign 或 EncryptAndSign 或 None。
X509 配置代码片段示例
<Section Name="SecurityConfig">
<Parameter Name="CredentialType" Value="X509" />
<Parameter Name="FindType" Value="FindByThumbprint" />
<Parameter Name="FindValue" Value="FB 9E A6 D4 AD D0 4B 08 BC 29 E1 EE 9C 91 E5 4E 8F 1E 08 96" />
<Parameter Name="StoreLocation" Value="LocalMachine" />
<Parameter Name="StoreName" Value="My" />
<Parameter Name="ProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="AllowedCommonNames" Value="My-Test-SAN1-Alice,My-Test-SAN1-Bob" />
<Parameter Name="ApplicationIssuerStore/WinFabric-Test-TA-CA" Value="Root" />
</Section>
Windows 配置代码片段示例 1:所有服务/执行组件主机进程都作为 NetworkService 或 LocalSystem 运行。
<Section Name="SecurityConfig">
<Parameter Name="CredentialType" Value="Windows" />
<Parameter Name="ServicePrincipalName" Value="" />
<!--This machine group contains all machines in a cluster-->
<Parameter Name="WindowsIdentities" Value="redmond\ClusterMachineGroup" />
<Parameter Name="ProtectionLevel" Value="EncryptAndSign" />
</Section>
Windows 配置代码片段示例 1:所有服务/执行组件主机进程都作为组托管服务帐户运行。
<Section Name="SecurityConfig">
<Parameter Name="CredentialType" Value="Windows" />
<Parameter Name="ServicePrincipalName" Value="servicefabric/cluster.microsoft.com" />
<--All actor/service host processes run as redmond\GroupManagedServiceAccount-->
<Parameter Name="WindowsIdentities" Value="redmond\GroupManagedServiceAccount" />
<Parameter Name="ProtectionLevel" Value="EncryptAndSign" />
</Section>