Connect to a secure cluster

Amikor egy ügyfél egy Service Fabric-fürtcsomóponthoz csatlakozik, az ügyfél hitelesíthető és biztonságos kommunikációt hozhat létre tanúsítványbiztonság vagy Microsoft Entra-azonosító használatával. Ez a hitelesítés biztosítja, hogy csak a jogosult felhasználók férhessenek hozzá a fürthöz és az üzembe helyezett alkalmazásokhoz, és felügyeleti feladatokat hajtsanak végre. A tanúsítványnak vagy a Microsoft Entra-biztonságnak korábban engedélyezve kellett lennie a fürtön a fürt létrehozásakor. A fürtbiztonsági forgatókönyvekről további információt a Fürtbiztonság című témakörben talál. Ha tanúsítványokkal védett fürthöz csatlakozik, állítsa be az ügyféltanúsítványt a fürthöz csatlakozó számítógépen.

Csatlakozás biztonságos fürtre az Azure Service Fabric CLI (sfctl) használatával

A Service Fabric PARANCSSOR (sfctl) használatával többféleképpen is csatlakozhat egy biztonságos fürthöz. Ha a hitelesítés ügyféltanúsítvány használatával történik, a tanúsítvány adatainak meg kell egyeznie egy, a fürtcsomópontokon telepített tanúsítvány adataival. Ha a tanúsítvány hitelesítésszolgáltatóval (CA) rendelkezik, meg kell adnia a megbízható hitelesítésszolgáltatókat is.

A parancs használatával sfctl cluster select csatlakozhat egy fürthöz.

Az ügyféltanúsítványok kétféleképpen adhatók meg, tanúsítványként és kulcspárként, vagy egyetlen PFX-fájlként. Jelszóval védett PEM-fájlok esetén a rendszer automatikusan kéri a jelszó megadását. Ha az ügyféltanúsítványt PFX-fájlként szerezte be, először konvertálja a PFX-fájlt PEM-fájllá az alábbi paranccsal.

openssl pkcs12 -in your-cert-file.pfx -out your-cert-file.pem -nodes -passin pass:your-pfx-password

Ha a .pfx fájl nem jelszóval védett, használja a -passin pass: parancsot az utolsó paraméterhez.

Az ügyféltanúsítvány pem fájlként való megadásához adja meg az argumentumban a --pem fájl elérési útját. Például:

sfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem

A jelszóval védett pem-fájlok a parancsok futtatása előtt kérik a jelszót.

Tanúsítvány megadásához a kulcspárok és --key az --cert argumentumok segítségével adhatók meg az egyes fájlok elérési útjai.

sfctl cluster select --endpoint https://testsecurecluster.com:19080 --cert ./client.crt --key ./keyfile.key

Előfordulhat, hogy a tesztelési vagy fejlesztői fürtök biztonságossá tételéhez használt tanúsítványok sikertelenek. A tanúsítvány-ellenőrzés megkerüléséhez adja meg a --no-verify beállítást. Például:

Figyelmeztetés:

Éles Service Fabric-fürtökhöz való csatlakozáskor ne használja ezt a no-verify lehetőséget.

sfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem --no-verify

Emellett megadhatja a megbízható hitelesítésszolgáltatói tanúsítványokat vagy az egyes tanúsítványokat tartalmazó címtárak elérési útját. Az elérési utak megadásához használja az argumentumot --ca . Például:

sfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem --ca ./trusted_ca

A csatlakozás után képesnek kell lennie más sfctl-parancsok futtatására a fürttel való interakcióhoz.

Csatlakozás fürtre a PowerShell használatával

Mielőtt műveleteket hajt végre egy fürtön a PowerShell-lel, először hozzon létre kapcsolatot a fürthöz. A fürtkapcsolat az adott PowerShell-munkamenet minden további parancsához használható.

Csatlakozás nem biztonságos fürtre

Ha nem biztonságos fürthöz szeretne csatlakozni, adja meg a fürtvégpont címét a Csatlakozás-ServiceFabricCluster parancshoz:

Connect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 

Csatlakozás biztonságos fürtre a Microsoft Entra ID azonosítójával

Ha olyan biztonságos fürthöz szeretne csatlakozni, amely a Microsoft Entra-azonosítót használja a fürtadminisztrátori hozzáférés engedélyezéséhez, adja meg a fürttanúsítvány ujjlenyomatát, és használja az AzureActiveDirectory jelzőt.

Connect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `
-ServerCertThumbprint <Server Certificate Thumbprint> `
-AzureActiveDirectory

Csatlakozás biztonságos fürtre ügyféltanúsítvány használatával

Futtassa a következő PowerShell-parancsot egy biztonságos fürthöz való csatlakozáshoz, amely ügyféltanúsítványokkal engedélyezi a rendszergazdai hozzáférést.

gyakori tanúsítványnév Csatlakozás

Adja meg a fürttanúsítvány általános nevét és annak az ügyféltanúsítványnak a közös nevét, amely engedélyt kapott a fürtkezeléshez. A tanúsítvány részleteinek meg kell egyeznie a fürtcsomópontokon található tanúsítvánnyal.

Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCommonName <certificate common name>  `
    -FindType FindBySubjectName `
    -FindValue <certificate common name> `
    -StoreLocation CurrentUser `
    -StoreName My 

A ServerCommonName a fürtcsomópontokra telepített kiszolgálótanúsítvány általános neve. A FindValue a rendszergazdai ügyféltanúsítvány általános neve. A paraméterek kitöltésekor a parancs a következő példához hasonlóan néz ki:

$ClusterName= "sf-commonnametest-scus.southcentralus.cloudapp.azure.com:19000"
$certCN = "sfrpe2eetest.southcentralus.cloudapp.azure.com"

Connect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `
    -X509Credential `
    -ServerCommonName $certCN  `
    -FindType FindBySubjectName `
    -FindValue $certCN `
    -StoreLocation CurrentUser `
    -StoreName My 

Csatlakozás tanúsítvány ujjlenyomatának használatával

Adja meg a fürttanúsítvány ujjlenyomatát és a fürtkezeléshez engedélyt kapott ügyféltanúsítvány ujjlenyomatát. A tanúsítvány részleteinek meg kell egyeznie a fürtcsomópontokon található tanúsítvánnyal.

Connect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `  
          -KeepAliveIntervalInSec 10 `  
          -X509Credential -ServerCertThumbprint <Certificate Thumbprint> `  
          -FindType FindByThumbprint -FindValue <Certificate Thumbprint> `  
          -StoreLocation CurrentUser -StoreName My

A ServerCertThumbprint a fürtcsomópontokra telepített kiszolgálótanúsítvány ujjlenyomata. A FindValue a rendszergazdai ügyféltanúsítvány ujjlenyomata. A paraméterek kitöltésekor a parancs a következő példához hasonlóan néz ki:

Connect-ServiceFabricCluster -ConnectionEndpoint clustername.westus.cloudapp.azure.com:19000 `  
          -KeepAliveIntervalInSec 10 `  
          -X509Credential -ServerCertThumbprint A8136758F4AB8962AF2BF3F27921BE1DF67F4326 `  
          -FindType FindByThumbprint -FindValue 71DE04467C9ED0544D021098BCD44C71E183414E `  
          -StoreLocation CurrentUser -StoreName My 

Csatlakozás biztonságos fürtre a Windows Active Directory használatával

Ha az önálló fürt AD-biztonsággal van üzembe helyezve, csatlakozzon a fürthöz a "WindowsCredential" kapcsoló hozzáfűzésével.

Connect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `
          -WindowsCredential

Csatlakozás fürtre a FabricClient API-kkal

A Service Fabric SDK biztosítja a FabricClient osztályt a fürtkezeléshez. A FabricClient API-k használatához szerezze be a Microsoft.ServiceFabric NuGet csomagot.

Csatlakozás nem biztonságos fürtre

Ha távoli, nem biztonságos fürthöz szeretne csatlakozni, hozzon létre egy FabricClient-példányt, és adja meg a fürt címét:

FabricClient fabricClient = new FabricClient("clustername.westus.cloudapp.azure.com:19000");

Fürtön belül futó kód esetén, például egy Reliable Service-ben, hozzon létre egy FabricClient-et a fürtcím megadása nélkül . A FabricClient a helyi felügyeleti átjáróhoz csatlakozik azon a csomóponton, amelyen a kód jelenleg fut, elkerülve a további hálózati ugrást.

FabricClient fabricClient = new FabricClient();

Csatlakozás biztonságos fürtre ügyféltanúsítvány használatával

A fürt csomópontjainak érvényes tanúsítványokkal kell rendelkezniük, amelyek közös neve vagy DNS-neve a SAN-ban megjelenik a FabricClienten beállított RemoteCommonNames tulajdonságban. A folyamat követése lehetővé teszi az ügyfél és a fürtcsomópontok közötti kölcsönös hitelesítést.

using System.Fabric;
using System.Security.Cryptography.X509Certificates;

string clientCertThumb = "71DE04467C9ED0544D021098BCD44C71E183414E";
string serverCertThumb = "A8136758F4AB8962AF2BF3F27921BE1DF67F4326";
string CommonName = "www.clustername.westus.azure.com";
string connection = "clustername.westus.cloudapp.azure.com:19000";

var xc = GetCredentials(clientCertThumb, serverCertThumb, CommonName);
var fc = new FabricClient(xc, connection);

try
{
    var ret = fc.ClusterManager.GetClusterManifestAsync().Result;
    Console.WriteLine(ret.ToString());
}
catch (Exception e)
{
    Console.WriteLine("Connect failed: {0}", e.Message);
}

static X509Credentials GetCredentials(string clientCertThumb, string serverCertThumb, string name)
{
    X509Credentials xc = new X509Credentials();
    xc.StoreLocation = StoreLocation.CurrentUser;
    xc.StoreName = "My";
    xc.FindType = X509FindType.FindByThumbprint;
    xc.FindValue = clientCertThumb;
    xc.RemoteCommonNames.Add(name);
    xc.RemoteCertThumbprints.Add(serverCertThumb);
    xc.ProtectionLevel = ProtectionLevel.EncryptAndSign;
    return xc;
}

Csatlakozás biztonságos fürtre interaktívan a Microsoft Entra-azonosító használatával

Az alábbi példa a Microsoft Entra-azonosítót használja az ügyfélidentitáshoz és a kiszolgálói tanúsítványhoz a kiszolgálóidentitáshoz.

A fürthöz való csatlakozáskor egy párbeszédpanelablak automatikusan megjelenik az interaktív bejelentkezéshez.

string serverCertThumb = "A8136758F4AB8962AF2BF3F27921BE1DF67F4326";
string connection = "clustername.westus.cloudapp.azure.com:19000";

var claimsCredentials = new ClaimsCredentials();
claimsCredentials.ServerThumbprints.Add(serverCertThumb);

var fc = new FabricClient(claimsCredentials, connection);

try
{
    var ret = fc.ClusterManager.GetClusterManifestAsync().Result;
    Console.WriteLine(ret.ToString());
}
catch (Exception e)
{
    Console.WriteLine("Connect failed: {0}", e.Message);
}

Csatlakozás biztonságos fürtre nem interaktív módon a Microsoft Entra ID használatával

A következő példa a Microsoft.Identity.Client 4.37.0-s verziójára támaszkodik.

További információ a Microsoft Entra-jogkivonatok beszerzéséről: Microsoft.Identity.Client.

string tenantId = "C15CFCEA-02C1-40DC-8466-FBD0EE0B05D2";
string clientApplicationId = "118473C2-7619-46E3-A8E4-6DA8D5F56E12";
string webApplicationId = "53E6948C-0897-4DA6-B26A-EE2A38A690B4";
string[] scopes = new string[] { "user.read" };

var pca = PublicClientApplicationBuilder.Create(clientApplicationId)
    .WithAuthority($"https://login.microsoftonline.com/{tenantId}")
    .WithRedirectUri("urn:ietf:wg:oauth:2.0:oob")
    .Build();

var accounts = await pca.GetAccountsAsync();
var result = await pca.AcquireTokenInteractive(scopes)
    .WithAccount(accounts.FirstOrDefault())
    .ExecuteAsync();

string token = result.AccessToken;

string serverCertThumb = "A8136758F4AB8962AF2BF3F27921BE1DF67F4326";
string connection = "clustername.westus.cloudapp.azure.com:19000";

var claimsCredentials = new ClaimsCredentials();
claimsCredentials.ServerThumbprints.Add(serverCertThumb);
claimsCredentials.LocalClaims = token;

var fc = new FabricClient(claimsCredentials, connection);

try
{
    var ret = fc.ClusterManager.GetClusterManifestAsync().Result;
    Console.WriteLine(ret.ToString());
}
catch (Exception e)
{
    Console.WriteLine("Connect failed: {0}", e.Message);
}

Csatlakozás egy olyan biztonságos fürtre, amely nem rendelkezik korábbi metaadat-ismeretekkel a Microsoft Entra ID használatával

Az alábbi példa nem interaktív jogkivonat-beszerzést használ, de ugyanezzel a módszerrel egyéni interaktív jogkivonat-beszerzési felületet hozhat létre. A jogkivonatok beszerzéséhez szükséges Microsoft Entra-metaadatok a fürtkonfigurációból olvashatók.

string serverCertThumb = "A8136758F4AB8962AF2BF3F27921BE1DF67F4326";
string connection = "clustername.westus.cloudapp.azure.com:19000";

var claimsCredentials = new ClaimsCredentials();
claimsCredentials.ServerThumbprints.Add(serverCertThumb);

var fc = new FabricClient(claimsCredentials, connection);

fc.ClaimsRetrieval += async (o, e) =>
{
    var accounts = await PublicClientApplicationBuilder
        .Create("<client_id>")
        .WithAuthority(AzureCloudInstance.AzurePublic, "<tenant_id>")
        .WithRedirectUri("<redirect_uri>")
        .Build()
        .GetAccountsAsync();

    var result = await PublicClientApplicationBuilder
        .Create("<client_id>")
        .WithAuthority(AzureCloudInstance.AzurePublic, "<tenant_id>")
        .WithRedirectUri("<redirect_uri>")
        .Build()
        .AcquireTokenInteractive(new[] { "<scope>" })
        .WithAccount(accounts.FirstOrDefault())
        .ExecuteAsync();

    return result.AccessToken;
};

try
{
    var ret = fc.ClusterManager.GetClusterManifestAsync().Result;
    Console.WriteLine(ret.ToString());
}
catch (Exception e)
{
    Console.WriteLine("Connect failed: {0}", e.Message);
}

Csatlakozás biztonságos fürtre a Service Fabric Explorerrel

Ha egy adott fürtHöz szeretné elérni a Service Fabric Explorert , mutasson a böngészőre a következőre:

http://<your-cluster-endpoint>:19080/Explorer

A teljes URL-cím az Azure Portal fürt essentials paneljén is elérhető.

Ha windowsos vagy OS X rendszerű biztonságos fürthöz szeretne böngészővel csatlakozni, importálhatja az ügyféltanúsítványt, és a böngésző kérni fogja a fürthöz való csatlakozáshoz használni kívánt tanúsítványt. Linux rendszerű gépeken a tanúsítványt speciális böngészőbeállítások használatával kell importálni (minden böngésző különböző mechanizmusokkal rendelkezik), és a lemez tanúsítványhelyére kell mutatnia. További információ: Ügyféltanúsítvány beállítása.

Csatlakozás biztonságos fürtre a Microsoft Entra ID azonosítójával

Ha Microsoft Entra-azonosítóval védett fürthöz szeretne csatlakozni, mutasson a böngészőre a következőre:

https://<your-cluster-endpoint>:19080/Explorer

A rendszer automatikusan kérni fogja, hogy jelentkezzen be a Microsoft Entra-azonosítóval.

Csatlakozás biztonságos fürtre ügyféltanúsítvány használatával

Ha tanúsítványokkal védett fürthöz szeretne csatlakozni, mutasson a böngészőre a következőre:

https://<your-cluster-endpoint>:19080/Explorer

A rendszer automatikusan kérni fogja, hogy válasszon ki egy ügyféltanúsítványt.

Ügyféltanúsítvány beállítása a távoli számítógépen

Legalább két tanúsítványt kell használni a fürt biztonságossá tételéhez, egyet a fürthöz és a kiszolgálótanúsítványhoz, egy másikat pedig az ügyfélhozzáféréshez. Javasoljuk, hogy további másodlagos tanúsítványokat és ügyfélhozzáférés-tanúsítványokat is használjon. Az ügyfél és a fürtcsomópont közötti kommunikáció tanúsítványbiztonság használatával történő védelméhez először be kell szereznie és telepítenie kell az ügyféltanúsítványt. A tanúsítvány telepíthető a helyi számítógép Személyes (Saját) tárolójába vagy az aktuális felhasználóba. Szüksége van a kiszolgálótanúsítvány ujjlenyomatára is, hogy az ügyfél hitelesíteni tudja a fürtöt.

  • Windows rendszeren: Kattintson duplán a PFX-fájlra, és kövesse a lépéseket a tanúsítvány a Certificates - Current User\Personal\Certificates személyes tárolóban való telepítéséhez. Másik lehetőségként a PowerShell-parancsot is használhatja:

    Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
            -FilePath C:\docDemo\certs\DocDemoClusterCert.pfx `
            -Password (ConvertTo-SecureString -String test -AsPlainText -Force)
    

    Ha önaláírt tanúsítványról van szó, importálnia kell a számítógép "megbízható személyek" tárolójába, mielőtt a tanúsítvány használatával biztonságos fürthöz csatlakozhat.

    Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\TrustedPeople `
    -FilePath C:\docDemo\certs\DocDemoClusterCert.pfx `
    -Password (ConvertTo-SecureString -String test -AsPlainText -Force)
    
  • Mac rendszeren: Kattintson duplán a PFX-fájlra, és kövesse a lépéseket a tanúsítvány a kulcskarikában való telepítéséhez.

Következő lépések