Aktivera medlemmar i en Azure Managed CCF-resurs
I den här guiden får du lära dig hur du aktiverar medlemmar i en Azure Managed CCF-resurs (Managed CCF). Den här självstudien bygger på den hanterade CCF-resursen som skapades i snabbstarten : Skapa en Azure Managed CCF-resurs med hjälp av självstudien om Azure-portalen .
Förutsättningar
- Python 3+.
- Installera den senaste versionen av CCF Python-paketet.
Ladda ned tjänstidentiteten
En Azure Managed CCF-resurs har en unik identitet som kallas tjänstidentitet. Det representeras av ett certifikat och skapas när resursen skapas. Varje enskild nod som ingår i Azure Managed CCF-resursen har sitt självsignerade certifikat, som stöds av tjänstidentiteten, som upprättar förtroende för den.
Kunder rekommenderas att ladda ned tjänstidentitetscertifikatet och använda det för att upprätta en TLS-anslutning när de interagerar med tjänsten. Följande kommando laddar ned certifikatet och sparar det i service_cert.pem.
curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem
Aktivera medlemmar
När en medlem läggs till i en hanterad CCF-resurs är de i godkänt tillstånd. De kan inte delta i styrningen förrän de har aktiverats. För att göra det måste medlemmen bekräfta att de är nöjda med tjänstens tillstånd (till exempel efter att ha granskat den aktuella konstitutionen och de noder som för närvarande är betrodda).
- Medlemmen måste uppdatera och hämta den senaste tillståndssammandraget. På så sätt bekräftar den nya medlemmen att de är nöjda med tjänstens aktuella tillstånd.
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": <...>
}
Kommentar
När du kör kommandona på en Mac ersätter du date -Is
med date +%FT%T%z
.
- Medlemmen måste signera tillståndssammandraget med hjälp av verktyget ccf_cose_sign1. Det här verktyget installeras tillsammans med CCF Python-paketet.
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"
- När kommandot har slutförts är medlemmen aktiv och kan delta i styrningen. Medlemmarna kan visas med hjälp av följande kommando.
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"
}
}