你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

SecurityCredentials.LoadFrom 方法

定义

从服务配置设置文件实例化 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 识别,以便自动执行上述分析:

  1. CredentialType – 用于保护通信通道的凭据类型:X509 (X509 证书凭据) 或 Windows (Windows 凭据,需要 active directory)

CredentialType=X509

  1. StoreLocation-Store查找证书的位置:CurrentUser 或 LocalMachine

  2. 应在其中搜索证书的证书存储的 StoreName-name

  3. FindType-Identifies FindValue 参数中提供的值的类型:FindBySubjectName 或 FindByThumbPrint

  4. 用于查找证书的FindValue-Search目标

  5. AllowedCommonNames-证书公用名称/dns 名称的逗号分隔列表。 此列表应包含复制器使用的所有证书,用于验证传入证书。

  6. IssuerThumbprints-以逗号分隔的颁发者证书指纹列表。 指定后,如果传入证书由列表中的某个条目颁发,则除链验证外,还会对其进行验证。

  7. ApplicationIssuerStore/[IssuerCommonName]-一个逗号分隔的存储名称列表,其中可以找到与 IssuerCommonName 对应的颁发者证书。 指定后,如果传入证书由列表中的某个条目颁发,则除链验证外,还会对其进行验证。

  8. RemoteCertThumbprints-证书指纹的逗号分隔列表。 此列表应包含复制器使用的所有证书,用于验证传入证书。

  9. ProtectionLevel-Indicates保护数据的方式:Sign 或 EncryptAndSign 或 None。

CredentialType=Windows

  1. ServicePrincipalName-Service为服务注册的主体名称。 如果服务/参与者主机进程以计算机帐户身份(例如:NetworkService、LocalSystem 等等)运行,则该项可以为空

  2. WindowsIdentities - 所有服务/执行组件主机进程的 Windows 标识的逗号分隔列表。

  3. 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>

适用于