Condividi tramite


Attivare i membri in una risorsa CCF gestita di Azure

In questa guida si apprenderà come attivare i membri in una risorsa CCF (Managed CCF) gestita di Azure. Questa esercitazione si basa sulla risorsa CCF gestita creata nella guida introduttiva: Creare una risorsa CCF gestita di Azure usando l'esercitazione portale di Azure.

Prerequisiti

  • Python 3+.
  • Installare la versione più recente del pacchetto Python CCF.

Scaricare l'identità del servizio

Una risorsa CCF gestita di Azure ha un'identità univoca denominata identità del servizio. È rappresentato da un certificato e viene creato durante la creazione della risorsa. Ogni singolo nodo che fa parte della risorsa CCF gestita di Azure ha il certificato autofirmato, approvato dall'identità del servizio, che stabilisce l'attendibilità su di esso.

I clienti sono consigliati per scaricare il certificato di identità del servizio e usarlo per stabilire una connessione TLS durante l'interazione con il servizio. Il comando seguente scarica il certificato e lo salva in service_cert.pem.

curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem

Attiva membri

Quando un membro viene aggiunto a una risorsa CCF gestita, si trova nello stato accettato. Non possono partecipare alla governance finché non vengono attivati. A tale scopo, il membro deve riconoscere che sono soddisfatti dello stato del servizio (ad esempio, dopo aver controllato la costituzione corrente e i nodi attualmente attendibili).

  1. Il membro deve aggiornare e recuperare il digest dello stato più recente. In questo modo, il nuovo membro conferma che sono soddisfatti dello stato corrente del servizio.
curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/ack/update_state_digest -X POST --cacert service_cert.pem --key member0_privk.pem --cert member0_cert.pem --silent | jq > request.json
cat request.json
{
    "state_digest": <...>
}

Nota

Quando si eseguono i comandi in un Mac, sostituire date -Is con date +%FT%T%z.

  1. Il membro deve firmare il digest dello stato usando l'utilità ccf_cose_sign1. Questa utilità viene installata insieme al pacchetto Python CCF.
ccf_cose_sign1 --ccf-gov-msg-type ack --ccf-gov-msg-created_at `date -Is` --signing-key member0_privk.pem --signing-cert member0_cert.pem --content request.json | \
 curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/ack --cacert service_cert.pem --data-binary @- -H "content-type: application/cose"
  1. Al termine del comando, il membro è attivo e può partecipare alla governance. I membri possono essere visualizzati usando il comando seguente.
curl --cacert service_cert.pem https://confidentialbillingapp.confidential-ledger.azure.com/gov/members | jq
{
  "710c4d7ce6a70a89137b39170cd5c48f94b4756a66e66b2242370111c1c47564": {
    "cert": "-----BEGIN CERTIFICATE-----\nMIIB9zCCAX2gAwIBAgIQW20I1iR...l8Uv8rRce\n-----END CERTIFICATE-----",
    "member_data": {
      "is_operator": true,
      "owner": "Microsoft Azure"
    },
    "public_encryption_key": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...n3QIDAQAB\n-----END PUBLIC KEY-----\n",
    "status": "Active"
  },
  "f9ea379051e5292b538ff2a3dc97f1bb4d5046f12e2bdbf5b8e3acc4516f34e3": {
    "cert": "-----BEGIN CERTIFICATE-----\nMIIBuzCCAUKgAwIBAgIURuSESLma...yyK1EHhxx\n-----END CERTIFICATE-----",
    "member_data": {
      "group": "",
      "identifier": "member0"
    },
    "public_encryption_key": null,
    "status": "Active"
  }
}

Passaggi successivi