Dela via


Konfigurera autentiseringsuppgifter för lagringsplatsen 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 kodningscertifikat 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 autentiseringsuppgifter för hela klustret

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 avsnittet Hosting . 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öljande steg krävs för att använda den här funktionen:

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

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

Kommentar

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. På bladet Åtkomstkontroll (IAM) i Azure Container Registry i Azure-portalen lägger du till en rolltilldelning för den virtuella datorn:

    Lägga till den virtuella datorns huvudnamn 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>
    

    Kommentar

    Flaggan UseDefaultRepositoryCredentials som anges till true medan UseTokenAuthenticationCredentials är true orsakar ett fel under distributionen.

Nästa steg

  • Läs mer om autentisering med containerregister.