Megosztás a következőn keresztül:


Az Azure Confidential Ledger (ACL) programozhatósága

A programozhatóság egy új funkció a Bizalmas főkönyvben, amely lehetővé teszi az ügyfelek számára, hogy egyéni kódot futtasson ugyanabban a megbízható számítási bázisban (TCB), mint a hagyományos Azure Confidential Ledger -tranzakciók. Az egyéni kód és tranzakciók TCB-ben való végrehajtásának előnye, hogy ugyanazokat a bizalmassági és integritási garanciákat biztosítja az egyéni kódnak és az általa létrehozott tranzakcióknak. A programozhatóság a szerepköralapú hozzáférés-vezérlést (RBAC) is támogatja az ACL-ben definiált és a kódban használt egyéni szerepkörökön keresztül.

A programozhatóság révén engedélyezhető néhány forgatókönyv a következő:

  • Adatösszesítés és elemzés: A bizalmas információk elemezhetők a TCB-ben, és csak összesített információk oszthatók meg az érdekeltekkel.
  • Igazolás: Az olyan bizalmas információk, mint a PII, a kreditpontszám és az állapotadatok megoszthatók más bizalmas számítási ajánlatokon, például az Azure Confidential ACI-n és a bizalmas virtuális gépen futó számítási feladatokkal az igazolás után

Előfeltételek

Ez az oktatóanyag feltételezi, hogy létrehozott egy bizalmas tranzakciónapló-példányt. Bizalmas főkönyvet az Azure Portalon, az Azure CLI-vel vagy az Azure PowerShell-lel hozhat létre.

Alkalmazások fejlesztése és üzembe helyezése

Az alkalmazásokat TypeScript használatával fejlesztették ki, és javaScript-csomagba csomagolták. A fejlesztési folyamatról további információt a Bizalmas konzorciumi keretrendszer (CCF) dokumentációjában talál.

Fontos

Csak rendszergazdai felhasználók helyezhetnek üzembe alkalmazásokat, és kezelhetik az egyéni RBAC-t a Bizalmas főkönyvben. A szakasz többi része feltételezi, hogy egy rendszergazda végrehajtja a következő lépéseket.

A következő szakasz feltételezi, hogy az alkalmazás készen áll az üzembe helyezésre. Az üzembe helyezési folyamat bemutatásához az azureconfidentialledger-app-samples adattárban (https://github.com/microsoft/azureconfidentialledger-app-samples) elérhető banki mintaalkalmazást használjuk.

Feljegyzés

Az alkalmazás bemutatja, hogyan valósíthatók meg az olyan gyakori banki használati esetek, mint a fiókok megnyitása, a befizetés és az átutalás egy JavaScript-alkalmazáson keresztül, amely egy bizalmas főkönyvi példányon van üzembe helyezve. Azt is bemutatja, hogyan használhatók az egyéni szerepkörök és az RBAC a felhasználói műveletek engedélyezésére.

Bejelentkezés az Azure-ba

Feljegyzés

A Bizalmas főkönyv támogatja a Microsoft Entra beépített használatát. Nincs szükség további konfigurációra. Ha az alkalmazás más identitásszolgáltatók által kiadott JWT-t használ, forduljon az ügyfélszolgálathoz, hogy konfigurálja azt a Bizalmas főkönyv-példányon.

Szerezze be a Microsoft Entra-jogkivonatot a bizalmas főkönyv-példány hitelesítéséhez.

az login --use-device-code
az account get-access-token --resource https://confidential-ledger.azure.com

Másolja ki a nyers jogkivonat értékét a parancs kimenetéből.

A Ledger-identitás letöltése

Minden Bizalmas tranzakciós példány egy egyedi identitással van társítva, amelyet a szolgáltatástanúsítvány nevű tanúsítvány jelöl. Biztonságos kapcsolatot kell létesíteni a példányhoz. Töltse le, és mentse a servicer_cert.pem fájlba.

Feljegyzés

contoso a Bizalmas főkönyv példány neve. Cserélje le a példány nevére.

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

Az alkalmazás üzembe helyezése

Telepítse a JavaScript-alkalmazáscsomagot az /app/userDefinedEndpoints meghívásával.

apiVersion="2024-08-22-preview"
content_type_application_json="Content-Type: application/json"
bundle="/path/to/bundle.json"
authorization="Authorization: Bearer raw_token_value"
server_identity="--cacert service_cert.pem"

# Deploy the application
#
curl $server_identity -X PUT "https://contoso.confidential-ledger.azure.com/app/userDefinedEndpoints?api-version=$apiVersion" -H "$content_type_application_json" -H "$authorization" -d @$bundle

# View the application
#
curl $server_identity "https://contoso.confidential-ledger.azure.com/app/userDefinedEndpoints?api-version=$apiVersion" -H "$authorization"

Egyéni szerepkörök és felhasználók létrehozása

A banki alkalmazás két személyből áll, nevezetesen egy "vezetőből" és egy "árulóból". Két szerepkört és felhasználót hozunk létre, amelyek a személyeket képviselik.

Feljegyzés

A felhasználót egy egyedi tanúsítvány jelöli.

Feljegyzés

Az alkalmazásfelhasználók hozzárendelhetők a beépített szerepkörökhöz, nevezetesen a Rendszergazda, a Közreműködő és az Olvasó szerepkörhöz. Az egyéni szerepkörök megkülönböztetik a kis- és nagybetűket, a beépített szerepkörök pedig érzéketlenek. Egy felhasználó több szerepkörhöz is hozzárendelhető.

apiVersion="2024-08-22-preview"
content_type_application_json="Content-Type: application/json"
content_type_merge_patch_json="Content-Type: application/merge-patch+json"
authorization="Authorization: Bearer raw_token_value"
curve="secp384r1"
server_identity="--cacert service_cert.pem"

# These actions must match (case-sensitive) the values defined in the application.
#
role_actions='{"roles":[{"role_name":"manager","role_actions":["/banking/accounts/post","/banking/accounts/put","/banking/accounts/get","/banking/accounts/patch"]},{"role_name":"teller","role_actions":["/banking/accounts/put","/banking/accounts/get","/banking/accounts/patch"]}]}'

# Create the roles.
#
curl $server_identity -X PUT "https://contoso.confidential-ledger.azure.com/app/roles?api-version=$apiVersion" -H "$content_type_application_json" -H "$authorization" -d $role_actions

# View the roles
#
curl $server_identity "https://contoso.confidential-ledger.azure.com/app/roles?api-version=$apiVersion" -H "$authorization"

# Create a certificate for the manager user.
#
openssl ecparam -out "manager_privk.pem" -name "$curve" -genkey
openssl req -new -key "manager_privk.pem" -x509 -nodes -days 365 -out "manager_cert.pem" -sha384 -subj=/CN="manager"
manager_cert_fingerprint=$(openssl x509 -in "manager_cert.pem" -noout -fingerprint -sha256 | cut -d "=" -f 2)
manager_user="{\"user_id\":\"$manager_cert_fingerprint\",\"assignedRoles\":[\"manager\"]}"

# Create a certificate for the teller user.
#
openssl ecparam -out "teller_privk.pem" -name "$curve" -genkey
openssl req -new -key "teller_privk.pem" -x509 -nodes -days 365 -out "teller_cert.pem" -sha384 -subj=/CN="teller"
teller_cert_fingerprint=$(openssl x509 -in "teller_cert.pem" -noout -fingerprint -sha256 | cut -d "=" -f 2)
teller_user="{\"user_id\":\"$teller_cert_fingerprint\",\"assignedRoles\":[\"teller\"]}"

# Create the manager user.
#
curl $server_identity -X PATCH "https://contoso.confidential-ledger.azure.com/app/ledgerUsers/$manager_cert_fingerprint?api-version=$apiVersion" -H "$content_type_merge_patch_json" -H "$authorization" -d $manager_user

# Create the teller user.
#
curl $server_identity -X PATCH "https://contoso.confidential-ledger.azure.com/app/ledgerUsers/$teller_cert_fingerprint?api-version=$apiVersion" -H "$content_type_merge_patch_json" -H "$authorization" -d $teller_user

# View the users
#
curl $server_identity "https://contoso.confidential-ledger.azure.com/app/ledgerUsers?api-version=$apiVersion" -H "$authorization"

A futtatókörnyezet konfigurációjának frissítése (nem kötelező)

A JavaScript futtatókörnyezet konfigurációja az /app/userDefinedEndpoints/runTimeOptions végpont meghívásával frissíthető. Ennek bemutatásához állítsuk be a maximális végrehajtási időt 2000 ms-ra.

apiVersion="2024-08-22-preview"
content_type_merge_patch_json="Content-Type: application/merge-patch+json"
authorization="Authorization: Bearer raw_token_value"
runtime_options="{\"max_heap_bytes\":1024,\"max_stack_bytes\":1024,\"max_execution_time_ms\":2000,\"log_exception_details\":false,\"return_exception_details\":false,\"max_cached_interpreters\":1024}"
server_identity="--cacert service_cert.pem"

# Patch the runtime options
#
curl $server_identity -X PATCH "https://contoso.confidential-ledger.azure.com/app/userDefinedEndpoints/runTimeOptions?api-version=$apiVersion" -H "$content_type_merge_patch_json" -H "$authorization" -d $runtime_options

# View the runtime options
#
curl $server_identity "https://contoso.confidential-ledger.azure.com/app/userDefinedEndpoints/runTimeOptions?api-version=$apiVersion" -H "$authorization"

Most már készen áll az alkalmazásvégpontok meghívására és a tranzakciók elküldésére.

Az erőforrások eltávolítása

A gyűjtemény részét képező többi rövid útmutató és oktatóanyag erre a rövid útmutatóra épül. Ha azt tervezi, hogy az ezt követő rövid útmutatókkal és oktatóanyagokkal dolgozik tovább, ne törölje ezeket az erőforrásokat.

Ha már nincs rá szükség, az Azure CLI az group delete parancsával eltávolíthatja az erőforráscsoportot és az összes kapcsolódó erőforrást:

az group delete --name "myResourceGroup"

Következő lépések

Ebben az oktatóanyagban egy egyéni JavaScript-alkalmazást helyezett üzembe egy bizalmas főkönyvpéldányban. Ha többet szeretne megtudni az Azure bizalmas naplójáról és az alkalmazásokkal való integrálásáról, folytassa az alábbi cikkekkel.