روش: بازپیچی

این روش به شما کمک می‌کند از سرویس فهرست کنترل دسترسی کلید قدیمی (KACLS1) به KACLS جدیدتر (KACLS2) مهاجرت کنید. یک کلید رمزگذاری داده (DEK) را می گیرد که با API wrap KACLS1 پیچیده شده است، و یک DEK پیچیده شده با API wrap KACLS2 را برمی گرداند.

درخواست HTTP

POST https:// KACLS_URL /rewrap

KACLS_URL با URL سرویس فهرست کنترل دسترسی کلید (KACLS) جایگزین کنید.

پارامترهای مسیر

هیچ یک.

درخواست بدن

بدنه درخواست حاوی داده هایی با ساختار زیر است:

نمایندگی JSON
{
  "authorization": string,
  "original_kacls_url": string,
  "reason": string,
  "wrapped_key": string
}
زمینه های
authorization

string

JWT ادعا می کند که کاربر مجاز است یک کلید برای resource_name را باز کند. به نشانه های مجوز مراجعه کنید.

original_kacls_url

string

آدرس اینترنتی KACLS wrapped_key فعلی.

reason

string (UTF-8)

یک رشته JSON گذرا که زمینه اضافی را در مورد عملیات ارائه می دهد. JSON ارائه شده باید قبل از نمایش، ضدعفونی شود. حداکثر حجم: 1 کیلوبایت

wrapped_key

string

شی باینری base64 توسط wrap برگردانده شد.

بدن پاسخگو

در صورت موفقیت آمیز بودن، این روش یک شی باینری مات را برمی گرداند که توسط Google Workspace در امتداد شی رمزگذاری شده ذخیره می شود و در هر عملیات بازکردن کلید بعدی، همانطور که هست ارسال می شود. همچنین باید resource_key_hash کدگذاری شده با base64 را برگرداند.

اگر عملیات ناموفق باشد، یک پاسخ خطای ساختاریافته باید برگردانده شود.

شی باینری باید حاوی تنها کپی از DEK رمزگذاری شده باشد، داده های خاص پیاده سازی را می توان در آن ذخیره کرد.

DEK را در سیستم KACLS خود ذخیره نکنید، در عوض آن را رمزگذاری کرده و در شی wrapped_key برگردانید. این از اختلافات مادام العمر بین سند و کلیدهای آن جلوگیری می کند. به عنوان مثال، برای اطمینان از پاک شدن کامل داده‌های کاربر هنگام درخواست، یا اطمینان از اینکه نسخه‌های قبلی بازیابی شده از یک نسخه پشتیبان قابل رمزگشایی هستند.

هنگامی که اشیاء حذف می شوند، Google درخواست حذف را به KACLS ارسال نمی کند.

نمایندگی JSON
{
  "resource_key_hash": string,
  "wrapped_key": string
}
زمینه های
resource_key_hash

string

شی باینری کدگذاری شده base64. هش کلید منبع را ببینید.

wrapped_key

string

شی باینری کدگذاری شده با base64. حداکثر حجم: 1 کیلوبایت

مثال

این مثال یک نمونه درخواست و پاسخ برای روش rewrap ارائه می دهد.

درخواست

POST https://mykacls.example.com/v1/rewrap

{
   "wrapped_key": "7qTh6Mp+svVwYPlnZMyuj8WHTrM59wl/UI50jo61Qt/QubZ9tfsUc1sD62xdg3zgxC9quV4r+y7AkbfIDhbmxGqP64pWbZgFzOkP0JcSn+1xm/CB2E5IknKsAbwbYREGpiHM3nzZu+eLnvlfbzvTnJuJwBpLoPYQcnPvcgm+5gU1j1BjUaNKS/uDn7VbVm7hjbKA3wkniORC2TU2MiHElutnfrEVZ8wQfrCEpuWkOXs98H8QxUK4pBM2ea1xxGj7vREAZZg1x/Ci/E77gHxymnZ/ekhUIih6Pwu75jf+dvKcMnpmdLpwAVlE1G4dNginhFVyV/199llf9jmHasQQuaMFzQ9UMWGjA1Hg2KsaD9e3EL74A5fLkKc2EEmBD5v/aP+1RRZ3ISbTOXvxqYIFCdSFSCfPbUhkc9I2nHS0obEH7Q7KiuagoDqV0cTNXWfCGJ1DtIlGQ9IA6mPDAjX8Lg==",
   "authorization": "eyJhbGciOi...",
   "original_kacls_url": "https://<kacl1_base_url>",
   "reason": "{client:'drive' op:'read'}"
}

واکنش

{
    "wrapped_key": "3qTh6Mp+svPwYPlnZMyuj8WHTrM59wl/UI50jo61Qt/QubZ9tfsUc1sD62xdg3zgxC9quV4r+y7AkbfIDhbmxGqP64pWbZgFzOkP0JcSn+1xm/CB2E5IknKsAbwbYREGpiHM3nzZu+eLnvlfbzvTnJuJwBpLoPYQcnPvcgm+5gU1j1BjUaNKS/uDn7VbVm7hjbKA3wkniORC2TU2MiHElutnfrEVZ8wQfrCEpuWkOXs98H8QxUK4pBM2ea1xxGj7vREAZZg1x/Ci/E77gHxymnZ/ekhUIih6Pwu75jf+dvKcMnpmdLpwAVlE1G4dNginhFVyV/199llf9jmHasQQuaMFzQ9UMWGjA1Hg2KsaD9e3EL74A5fLkKc2EEmBD5v/aP+1RRZ3ISbTOXvxqYIFCdSFSCfPbUhkc9I2nHS0obEH7Q7KiuagoDqV0cTNXWfCGJ1DtIlGQ9IA6mPDAjX8Lg==",
    "resource_key_hash": "SXOyPekBAUI95zuZSuJzsBlK4nO5SuJK4nNCPem5SuI="
}