

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Perbedaan antara Izin Terverifikasi Amazon dan bahasa kebijakan Cedar
<a name="terminology-differences-avp-cedar"></a>

Izin Terverifikasi Amazon menggunakan mesin bahasa kebijakan Cedar untuk melakukan tugas otorisasi. Namun, ada beberapa perbedaan antara implementasi Cedar asli dan implementasi Cedar yang ditemukan di Izin Terverifikasi. Topik ini mengidentifikasi perbedaan-perbedaan tersebut.

## Definisi namespace
<a name="differences-namespaces"></a>

Implementasi Izin Terverifikasi dari Cedar memiliki perbedaan berikut dari implementasi Cedar asli:
+ Izin Terverifikasi hanya mendukung satu [namespace dalam skema yang](https://docs.cedarpolicy.com/schema/schema.html#namespace) ditentukan di penyimpanan kebijakan.
+ Izin Terverifikasi tidak memungkinkan Anda membuat [namespace](https://docs.cedarpolicy.com/schema/schema.html#namespace) yang berupa string kosong atau menyertakan nilai berikut:`aws`,, `amazon` atau. `cedar`

## Dukungan template kebijakan
<a name="differences-schema"></a>

Baik Izin Terverifikasi dan Cedar mengizinkan placeholder dalam lingkup hanya untuk dan. `principal` `resource` Namun, Izin Terverifikasi juga tidak mengharuskan `principal` dan tidak `resource` dibatasi.

Kebijakan berikut berlaku di Cedar tetapi ditolak oleh Izin Terverifikasi karena tidak `principal` dibatasi.

```
permit(principal, action == Action::"view", resource == ?resource);
```

Kedua contoh berikut ini valid di Cedar dan Izin Terverifikasi karena keduanya `principal` dan `resource` memiliki kendala.

```
permit(principal == User::"alice", action == Action::"view", resource == ?resource);
```

```
permit(principal == ?principal, action == Action::"a", resource in ?resource);
```

## Dukungan skema
<a name="differences-templates"></a>

Izin Terverifikasi mengharuskan semua nama kunci skema JSON menjadi string yang tidak kosong. Cedar memungkinkan string kosong dalam beberapa kasus, seperti untuk properti atau ruang nama.

## Definisi kelompok aksi
<a name="differences-action-groups"></a>

Metode otorisasi Cedar memerlukan daftar entitas untuk dipertimbangkan ketika mengevaluasi permintaan otorisasi terhadap kebijakan.

Anda dapat menentukan tindakan dan kelompok tindakan yang digunakan oleh aplikasi Anda dalam skema. Namun, Cedar tidak menyertakan skema sebagai bagian dari permintaan evaluasi. Sebagai gantinya, Cedar menggunakan skema hanya untuk memvalidasi kebijakan dan templat kebijakan yang Anda kirimkan. Karena Cedar tidak mereferensikan skema selama permintaan evaluasi, bahkan jika Anda mendefinisikan grup tindakan dalam skema, Anda juga harus menyertakan daftar grup tindakan apa pun sebagai bagian dari daftar entitas yang harus diteruskan ke operasi API otorisasi.

Izin Terverifikasi melakukan ini untuk Anda. Setiap grup tindakan yang Anda tentukan dalam skema Anda secara otomatis ditambahkan ke daftar entitas yang Anda berikan sebagai parameter untuk operasi `IsAuthorized` atau`IsAuthorizedWithToken`.

## Pemformatan entitas
<a name="differences-entities"></a>

Pemformatan JSON entitas dalam Izin Terverifikasi menggunakan `entityList` parameter berbeda dari Cedar dengan cara berikut:
+ Dalam Izin Terverifikasi, objek JSON harus memiliki semua pasangan kunci-nilai yang dibungkus dalam objek JSON dengan nama. `Record`
+ Daftar JSON di Izin Terverifikasi harus dibungkus dalam pasangan nilai kunci JSON di mana nama kuncinya `Set` dan nilainya adalah daftar JSON asli dari Cedar.
+ Untuk`String`,`Long`, dan `Boolean` jenis nama, setiap pasangan kunci-nilai dari Cedar digantikan oleh objek JSON di Izin Terverifikasi. Nama objek adalah nama kunci asli. Di dalam objek JSON, ada satu pasangan kunci-nilai di mana nama kunci adalah nama tipe dari nilai skalar (`String`,`Long`, atau`Boolean`) dan nilainya adalah nilai dari entitas Cedar.
+ Pemformatan sintaks entitas Cedar dan entitas Izin Terverifikasi berbeda dengan cara berikut:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/verifiedpermissions/latest/userguide/terminology-differences-avp-cedar.html)

**Example - Daftar**  
Contoh berikut menunjukkan bagaimana daftar entitas dinyatakan dalam Cedar dan Izin Terverifikasi, masing-masing.  

```
[
  {
    "number": 1
  },
  {
    "sentence": "Here is an example sentence"
  },
  {
    "Question": false
  }
]
```

```
{
  "Set": [
    {
      "Record": {
        "number": {
          "Long": 1
        }
      }
    },
    {
      "Record": {
        "sentence": {
          "String": "Here is an example sentence"
        }
      }
    },
    {
      "Record": {
        "question": {
          "Boolean": false
        }
      }
    }
  ]
}
```

**Example - Evaluasi kebijakan**  
Contoh berikut menunjukkan bagaimana entitas diformat untuk mengevaluasi kebijakan dalam permintaan otorisasi di Cedar dan Izin Terverifikasi, masing-masing.  

```
[
    {
        "uid": {
            "type": "PhotoApp::User",
            "id": "alice"
        },
        "attrs": {
            "age": 25,
            "name": "alice",
            "userId": "123456789012"
        },
        "parents": [
            {
                "type": "PhotoApp::UserGroup",
                "id": "alice_friends"
            },
            {
                "type": "PhotoApp::UserGroup",
                "id": "AVTeam"
            }
        ]
    },
    {
        "uid": {
            "type": "PhotoApp::Photo",
            "id": "vacationPhoto.jpg"
        },
        "attrs": {
            "private": false,
            "account": {
                "__entity": {
                    "type": "PhotoApp::Account",
                    "id": "ahmad"
                }
            }
        },
        "parents": []
    },
    {
        "uid": {
            "type": "PhotoApp::UserGroup",
            "id": "alice_friends"
        },
        "attrs": {},
        "parents": []
    },
    {
        "uid": {
            "type": "PhotoApp::UserGroup",
            "id": "AVTeam"
        },
        "attrs": {},
        "parents": []
    }
]
```

```
[
    {
        "Identifier": {
            "EntityType": "PhotoApp::User",
            "EntityId": "alice"
        },
        "Attributes": {
            "age": {
                "Long": 25
            },
            "name": {
                "String": "alice"
            },
            "userId": {
                "String": "123456789012"
            }
        },
        "Parents": [
            {
                "EntityType": "PhotoApp::UserGroup",
                "EntityId": "alice_friends"
            },
            {
                "EntityType": "PhotoApp::UserGroup",
                "EntityId": "AVTeam"
            }
        ]
    },
    {
        "Identifier": {
            "EntityType": "PhotoApp::Photo",
            "EntityId": "vacationPhoto.jpg"
        },
        "Attributes": {
            "private": {
                "Boolean": false
            },
            "account": {
                "EntityIdentifier": {
                    "EntityType": "PhotoApp::Account",
                    "EntityId": "ahmad"
                }
            }
        },
        "Parents": []
    },
    {
        "Identifier": {
            "EntityType": "PhotoApp::UserGroup",
            "EntityId": "alice_friends"
        },
        "Parents": []
    },
    {
        "Identifier": {
            "EntityType": "PhotoApp::UserGroup",
            "EntityId": "AVTeam"
        },
        "Parents": []
    }
]
```

## Batas panjang dan ukuran
<a name="differences-length-limits"></a>

Izin Terverifikasi mendukung penyimpanan dalam bentuk penyimpanan kebijakan untuk menyimpan skema, kebijakan, dan templat kebijakan Anda. Penyimpanan tersebut menyebabkan Izin Terverifikasi memberlakukan beberapa batas panjang dan ukuran yang tidak relevan dengan Cedar.


| Objek | Batas Izin Terverifikasi (dalam byte) | Batas cedar | 
| --- | --- | --- | 
| Ukuran kebijakan¹ | 10.000  | Tidak ada | 
| Deskripsi kebijakan sebaris | 150  | Tidak berlaku untuk Cedar | 
| Ukuran templat kebijakan | 10.000  | Tidak ada | 
| Ukuran skema | 100.000  | Tidak ada | 
| Jenis entitas | 200  | Tidak ada | 
| ID Kebijakan | 64  | Tidak ada | 
| ID Templat Kebijakan | 64  | Tidak ada | 
| ID Entitas | 200  | Tidak ada | 
| ID toko kebijakan | 64  | Tidak berlaku untuk Cedar | 

¹ Ada batasan untuk kebijakan per penyimpanan kebijakan di Izin Terverifikasi berdasarkan ukuran gabungan prinsip, tindakan, dan sumber daya kebijakan yang dibuat di toko kebijakan. Ukuran total semua kebijakan yang berkaitan dengan satu sumber daya tidak dapat melebihi 200.000 byte. Untuk kebijakan yang ditautkan templat, ukuran templat kebijakan dihitung hanya sekali, ditambah ukuran setiap set parameter yang digunakan untuk membuat instance setiap kebijakan yang ditautkan templat.