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.