Dela via


Konfigurera autentiseringsuppgifter för lagringsplats för ditt program för att ladda ned containeravbildningar

Konfigurera autentisering av containerregister genom att lägga RepositoryCredentials till i ContainerHostPolicies avsnittet i programmanifestet. Lägg till kontot och lösenordet för containerregistret (myregistry.azurecr.io i exemplet nedan), vilket gör att tjänsten kan ladda ned containeravbildningen från lagringsplatsen.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code">
            <RepositoryCredentials AccountName="myregistry" Password="=P==/==/=8=/=+u4lyOB=+=nWzEeRfF=" PasswordEncrypted="false"/>
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Vi rekommenderar att du krypterar lösenordet för lagringsplatsen med hjälp av ett krypteringscertifikat som distribueras till alla noder i klustret. När Service Fabric distribuerar tjänstpaketet till klustret används chiffreringscertifikatet för att avkryptera chiffertexten. Cmdleten Invoke-ServiceFabricEncryptText används för att skapa chiffertexten för lösenordet, som läggs till i filen ApplicationManifest.xml. Mer information om certifikat och krypteringssemantik finns i Hemlig hantering .

Konfigurera klusteromfattande autentiseringsuppgifter

Med Service Fabric kan du konfigurera klusteromfattande autentiseringsuppgifter som kan användas som standardautentiseringsuppgifter för lagringsplatsen av program.

Den här funktionen kan aktiveras eller inaktiveras genom att lägga UseDefaultRepositoryCredentials till ContainerHostPolicies attributet i i ApplicationManifest.xml med ett true eller false -värde.

<ServiceManifestImport>
    ...
    <Policies>
        <ContainerHostPolicies CodePackageRef="Code" UseDefaultRepositoryCredentials="true">
            <PortBinding ContainerPort="80" EndpointRef="Guest1TypeEndpoint"/>
        </ContainerHostPolicies>
    </Policies>
    ...
</ServiceManifestImport>

Service Fabric använder sedan standardautentiseringsuppgifterna för lagringsplatsen som kan anges i ClusterManifest under Hosting avsnittet . Om UseDefaultRepositoryCredentials är trueläser Service Fabric följande värden från ClusterManifest:

  • DefaultContainerRepositoryAccountName (sträng)
  • DefaultContainerRepositoryPassword (sträng)
  • IsDefaultContainerRepositoryPasswordEncrypted (bool)
  • DefaultContainerRepositoryPasswordType (sträng)

Här är ett exempel på vad som kan läggas till i Hosting avsnittet i filen ClusterManifestTemplate.json. Avsnittet Hosting kan läggas till när klustret skapas eller senare i en konfigurationsuppgradering. Mer information finns i Ändra Azure Service Fabric-klusterinställningar och Hantera Azure Service Fabric-programhemligheter

"fabricSettings": [
	...,
	{
        "name": "Hosting",
        "parameters": [
          {
            "name": "EndpointProviderEnabled",
            "value": "true"
          },
          {
            "name": "DefaultContainerRepositoryAccountName",
            "value": "someusername"
          },
          {
            "name": "DefaultContainerRepositoryPassword",
            "value": "somepassword"
          },
          {
            "name": "IsDefaultContainerRepositoryPasswordEncrypted",
            "value": "false"
          },
          {
            "name": "DefaultContainerRepositoryPasswordType",
            "value": "PlainText"
          }
        ]
      },
]

Använda token som registerautentiseringsuppgifter

Service Fabric stöder användning av token som autentiseringsuppgifter för att ladda ned avbildningar för dina containrar. Den här funktionen utnyttjar den hanterade identiteten för den underliggande VM-skalningsuppsättningen för att autentisera till registret, vilket eliminerar behovet av att hantera användarautentiseringsuppgifter. Mer information finns i Hanterade identiteter för Azure-resurser . För att använda den här funktionen krävs följande steg:

  1. Kontrollera att systemtilldelad hanterad identitet är aktiverad för den virtuella datorn.

    Azure Portal: Skapa identitetsalternativ för vm-skalningsuppsättning

Anteckning

Hoppa över det här steget för användartilldelad hanterad identitet. De återstående stegen nedan fungerar på samma sätt, så länge skalningsuppsättningen endast är associerad med en enda användartilldelad hanterad identitet.

  1. Bevilja behörigheter till vm-skalningsuppsättningen för att hämta/läsa avbildningar från registret. Lägg till en rolltilldelning för den virtuella datorn på bladet Access Control (IAM) i Azure Container Registry i Azure Portal:

    Lägg till huvudnamn för virtuell dator i ACR

  2. Ändra sedan programmanifestet. I avsnittet ContainerHostPolicies lägger du till attributet ‘UseTokenAuthenticationCredentials=”true”.

      <ServiceManifestImport>
          <ServiceManifestRef ServiceManifestName="NodeServicePackage" ServiceManifestVersion="1.0"/>
      <Policies>
        <ContainerHostPolicies CodePackageRef="NodeService.Code" Isolation="process" UseTokenAuthenticationCredentials="true">
          <PortBinding ContainerPort="8905" EndpointRef="Endpoint1"/>
        </ContainerHostPolicies>
        <ResourceGovernancePolicy CodePackageRef="NodeService.Code" MemoryInMB="256"/>
      </Policies>
      </ServiceManifestImport>
    

    Anteckning

    Flaggan UseDefaultRepositoryCredentials inställd på true medan UseTokenAuthenticationCredentials är true orsakar ett fel under distributionen.

Nästa steg