

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

# Menerapkan otorisasi di Izin Terverifikasi Amazon
<a name="authorization"></a>

Setelah membuat toko kebijakan, kebijakan, templat, skema, dan model otorisasi, Anda siap untuk mulai mengotorisasi permintaan menggunakan Izin Terverifikasi Amazon. Untuk menerapkan otorisasi Izin Terverifikasi, Anda harus menggabungkan konfigurasi kebijakan otorisasi AWS dengan integrasi dalam aplikasi. Untuk mengintegrasikan Izin Terverifikasi dengan aplikasi Anda, tambahkan AWS SDK dan terapkan metode yang memanggil API Izin Terverifikasi dan buat keputusan otorisasi terhadap penyimpanan kebijakan Anda.

Otorisasi dengan Izin Terverifikasi berguna untuk izin *UX dan izin* *API* di aplikasi Anda.

**Izin UX**  
Kontrol akses pengguna ke UX aplikasi Anda. Anda dapat mengizinkan pengguna untuk melihat hanya bentuk, tombol, grafik, dan sumber daya lain yang tepat yang perlu mereka akses. Misalnya, saat pengguna masuk, Anda mungkin ingin menentukan apakah tombol “Transfer dana” terlihat di akun mereka. Anda juga dapat mengontrol tindakan yang dapat dilakukan pengguna. Misalnya, di aplikasi perbankan yang sama, Anda mungkin ingin menentukan apakah pengguna Anda diizinkan untuk mengubah kategori transaksi.

** Izin API:**  
Kontrol akses pengguna ke data. Aplikasi sering menjadi bagian dari sistem terdistribusi dan membawa informasi dari eksternal APIs. Dalam contoh aplikasi perbankan di mana Izin Terverifikasi telah mengizinkan tampilan tombol “Transfer dana”, keputusan otorisasi yang lebih kompleks harus dibuat saat pengguna Anda memulai transfer. Izin Terverifikasi dapat mengotorisasi permintaan API yang mencantumkan akun tujuan yang merupakan target transfer yang memenuhi syarat, dan kemudian permintaan untuk mendorong transfer ke akun lain.

Contoh yang menggambarkan konten ini berasal dari [toko kebijakan sampel](policy-stores-create.md#policy-stores-create.title). Untuk mengikuti, buat penyimpanan kebijakan **DigitalPetStore**sampel di lingkungan pengujian Anda.

*Untuk contoh aplikasi ujung ke ujung yang mengimplementasikan izin UX menggunakan otorisasi batch, lihat Menggunakan Izin [Terverifikasi Amazon untuk otorisasi berbutir halus](https://aws.amazon.com/blogs/security/use-amazon-verified-permissions-for-fine-grained-authorization-at-scale/) pada skala besar di Blog Keamanan.AWS *

**Topics**
+ [

## Operasi API yang tersedia untuk otorisasi
](#authorization-operations)
+ [

# Menguji model otorisasi Anda
](authorization-testing.md)
+ [

# Mengintegrasikan model otorisasi Anda dengan aplikasi
](authorization-sdk.md)

## Operasi API yang tersedia untuk otorisasi
<a name="authorization-operations"></a>

API Izin Terverifikasi memiliki operasi otorisasi berikut.

**[IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html)**  
Operasi `IsAuthorized` API adalah titik masuk ke permintaan otorisasi dengan Izin Terverifikasi. Anda harus mengirimkan elemen pokok, tindakan, sumber daya, konteks, dan entitas. Izin Terverifikasi mengevaluasi permintaan Anda terhadap semua kebijakan di toko kebijakan yang diminta yang berlaku untuk entitas dalam permintaan.

**[IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)**  
`IsAuthorizedWithToken`Operasi menghasilkan permintaan otorisasi dari data pengguna di token web JSON ()JWTs. Izin Terverifikasi berfungsi langsung dengan penyedia OIDC seperti Amazon Cognito sebagai sumber identitas di toko kebijakan Anda. Izin Terverifikasi mengisi semua atribut ke prinsipal dalam permintaan Anda dari klaim di ID pengguna atau token akses. Anda dapat mengotorisasi tindakan dan sumber daya dari atribut pengguna atau keanggotaan grup dalam sumber identitas.  
Anda tidak dapat menyertakan informasi tentang grup atau tipe utama pengguna dalam `IsAuthorizedWithToken` permintaan. Anda harus mengisi semua data utama ke JWT yang Anda berikan.

**[BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)**  
`BatchIsAuthorized`Operasi memproses beberapa keputusan otorisasi untuk satu prinsipal atau sumber daya dalam satu permintaan API. Operasi ini mengelompokkan permintaan ke dalam satu operasi batch yang meminimalkan [penggunaan kuota](quotas.md#quotas-tps.title) dan mengembalikan keputusan otorisasi untuk masing-masing hingga 30 tindakan bersarang yang kompleks. Dengan otorisasi batch untuk satu sumber daya, Anda dapat memfilter tindakan yang dapat dilakukan pengguna pada sumber daya. Dengan otorisasi batch untuk satu prinsipal, Anda dapat memfilter sumber daya yang dapat diambil tindakan pengguna.

**[BatchIsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorizedWithToken.html)**  
`BatchIsAuthorizedWithToken`Operasi memproses beberapa keputusan otorisasi untuk satu prinsipal dalam satu permintaan API. Prinsipal disediakan oleh sumber identitas toko polis Anda dalam ID atau token akses. Operasi ini mengelompokkan permintaan ke dalam satu operasi batch yang meminimalkan [penggunaan kuota](quotas.md#quotas-tps.title) dan mengembalikan keputusan otorisasi untuk masing-masing hingga 30 permintaan untuk tindakan dan sumber daya. Dalam kebijakan Anda, Anda dapat mengotorisasi akses mereka dari atribut atau keanggotaan grup mereka di direktori pengguna.  
Seperti halnya`IsAuthorizedWithToken`, Anda tidak dapat menyertakan informasi tentang tipe utama grup atau pengguna dalam `BatchIsAuthorizedWithToken` permintaan. Anda harus mengisi semua data utama ke JWT yang Anda berikan.

# Menguji model otorisasi Anda
<a name="authorization-testing"></a>

Untuk memahami pengaruh keputusan otorisasi Izin Terverifikasi Amazon saat menerapkan aplikasi, Anda dapat mengevaluasi kebijakan saat mengembangkannya dengan [Menggunakan bangku uji Izin Terverifikasi Amazon](test-bench.md) dan dengan permintaan HTTPS REST API ke Izin Terverifikasi. Bangku tes adalah alat Konsol Manajemen AWS untuk mengevaluasi permintaan otorisasi dan tanggapan di toko kebijakan Anda.

API REST Izin Terverifikasi adalah langkah selanjutnya dalam pengembangan Anda saat Anda beralih dari pemahaman konseptual ke desain aplikasi. [API Izin Terverifikasi menerima permintaan otorisasi dengan [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html), [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html), dan [BatchIsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_BatchIsAuthorized.html)sebagai [permintaan AWS API yang ditandatangani ke titik akhir layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) Regional.](https://docs.aws.amazon.com/general/latest/gr/verifiedpermissions.html) Untuk menguji model otorisasi, Anda dapat membuat permintaan dengan klien API apa pun dan memverifikasi bahwa kebijakan Anda mengembalikan keputusan otorisasi seperti yang diharapkan.

Misalnya, Anda dapat menguji `IsAuthorized` di toko kebijakan sampel dengan prosedur berikut.

------
#### [ Test bench ]

1. Buka konsol Izin Terverifikasi di konsol [Izin Terverifikasi](https://console.aws.amazon.com/verifiedpermissions/). Buat toko kebijakan dari **toko kebijakan Sample** dengan nama **DigitalPetStore**.

1. Pilih **bangku tes** di toko kebijakan baru Anda.

1. Isi permintaan bangku pengujian Anda dari [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)referensi API Izin Terverifikasi. Rincian berikut mereplikasi kondisi dalam **Contoh 4** yang mereferensikan **DigitalPetStore**sampel.

   1. Tetapkan Alice sebagai kepala sekolah. Untuk **Principal mengambil tindakan**, pilih `DigitalPetStore::User` dan masukkan`Alice`.

   1. Tetapkan peran Alice sebagai pelanggan. Pilih **Tambahkan induk**, pilih`DigitalPetStore::Role`, dan masukkan Pelanggan.

   1. Atur sumber daya sebagai urutan “1234.” Untuk **Sumber Daya tempat kepala sekolah bertindak**, pilih `DigitalPetStore::Order` dan masukkan`1234`.

   1. Sumber `DigitalPetStore::Order` daya membutuhkan `owner` atribut. Tetapkan Alice sebagai pemilik pesanan. Pilih `DigitalPetStore::User` dan masukkan `Alice`

   1. Alice meminta untuk melihat pesanan. Untuk **tindakan yang diambil kepala sekolah**, pilih`DigitalPetStore::Action::"GetOrder"`.

1. Pilih **Jalankan permintaan otorisasi**. Di toko kebijakan yang tidak dimodifikasi, permintaan ini menghasilkan `ALLOW` keputusan. Perhatikan **kebijakan Puas** yang mengembalikan keputusan.

1. Pilih **Kebijakan** dari bilah navigasi kiri. Tinjau kebijakan statis dengan deskripsi **Peran Pelanggan - Dapatkan Pesanan**.

1. Perhatikan bahwa Izin Terverifikasi mengizinkan permintaan karena prinsipal berada dalam peran pelanggan dan merupakan pemilik sumber daya.

------
#### [ REST API ]

1. Buka konsol Izin Terverifikasi di konsol [Izin Terverifikasi](https://console.aws.amazon.com/verifiedpermissions/). Buat toko kebijakan dari **toko kebijakan Sample** dengan nama **DigitalPetStore**.

1. Perhatikan **ID toko Kebijakan toko** kebijakan baru Anda.

1. Dari [IsAuthorized](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)referensi API Izin Terverifikasi, salin badan permintaan **Contoh 4** yang mereferensikan **DigitalPetStore**sampel.

1. Buka klien API Anda dan buat permintaan ke titik akhir layanan Regional untuk toko kebijakan Anda. [Isi header seperti yang ditunjukkan pada contoh.](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorized.html#API_IsAuthorized_Examples)

1. Tempel di badan permintaan sampel dan ubah nilainya `policyStoreId` ke ID penyimpanan kebijakan yang Anda catat sebelumnya.

1. Kirim permintaan dan tinjau hasilnya. Di penyimpanan **DigitalPetStore**kebijakan default, permintaan ini mengembalikan `ALLOW` keputusan.

------

Anda dapat membuat perubahan pada kebijakan, skema, dan permintaan di lingkungan pengujian Anda untuk mengubah hasil dan menghasilkan keputusan yang lebih kompleks.

1. Ubah permintaan dengan cara yang mengubah keputusan dari Izin Terverifikasi. Misalnya, ubah peran Alice menjadi `Employee` atau ubah `owner` atribut urutan 1234 menjadi`Bob`.

1. Ubah kebijakan dengan cara yang memengaruhi keputusan otorisasi. Misalnya, ubah kebijakan dengan deskripsi **Peran Pelanggan - Dapatkan Pesanan** untuk menghapus kondisi bahwa `User` harus menjadi pemilik `Resource` dan memodifikasi permintaan sehingga `Bob` ingin melihat pesanan.

1. Ubah skema untuk memungkinkan kebijakan membuat keputusan yang lebih kompleks. Perbarui entitas permintaan sehingga Alice dapat memenuhi persyaratan baru. Misalnya, edit skema `User` untuk memungkinkan menjadi anggota `ActiveUsers` atau`InactiveUsers`. Perbarui kebijakan sehingga hanya pengguna aktif yang dapat melihat pesanan mereka sendiri. Perbarui entitas permintaan sehingga Alice adalah pengguna aktif atau tidak aktif.

# Mengintegrasikan model otorisasi Anda dengan aplikasi
<a name="authorization-sdk"></a>

Untuk menerapkan Izin Terverifikasi Amazon di aplikasi Anda, Anda harus menentukan kebijakan dan skema yang ingin diterapkan oleh aplikasi Anda. Dengan model otorisasi Anda di tempat dan diuji, langkah Anda selanjutnya adalah mulai membuat permintaan API dari titik penegakan hukum. Untuk melakukan ini, Anda harus mengatur logika aplikasi untuk mengumpulkan data pengguna dan mengisinya ke permintaan otorisasi.

**Cara aplikasi mengotorisasi permintaan dengan Izin Terverifikasi**

1. Kumpulkan informasi tentang pengguna saat ini. Biasanya, detail pengguna disediakan dalam rincian sesi yang diautentikasi, seperti JWT atau cookie sesi web. Data pengguna ini mungkin berasal dari [sumber Amazon Cognito identitas](identity-sources.md#identity-sources.title) yang ditautkan ke penyimpanan kebijakan Anda atau dari penyedia [OpenID Connect (OIDC](cognito-validation.md#identity-sources-other-idp.title)) lain.

1. Kumpulkan informasi tentang sumber daya yang ingin diakses pengguna. Biasanya, aplikasi Anda akan menerima informasi tentang sumber daya saat pengguna membuat pilihan yang mengharuskan aplikasi Anda memuat aset baru.

1. Tentukan tindakan yang ingin diambil pengguna Anda.

1. Buat permintaan otorisasi ke Izin Terverifikasi dengan prinsipal, tindakan, sumber daya, dan entitas untuk upaya operasi pengguna Anda.Izin Terverifikasi mengevaluasi permintaan terhadap kebijakan di toko kebijakan Anda dan mengembalikan keputusan otorisasi.

1. Aplikasi Anda membaca respons izinkan atau penolakan dari Izin Terverifikasi dan memberlakukan keputusan atas permintaan pengguna.

Operasi API Izin Terverifikasi dibangun ke dalam AWS SDKs. Untuk menyertakan Izin Terverifikasi dalam aplikasi, integrasikan AWS SDK untuk bahasa pilihan Anda ke dalam paket aplikasi.

Untuk mempelajari lebih lanjut dan mengunduh AWS SDKs, lihat [Alat untuk Amazon Web Services](https://aws.amazon.com/tools/).

Berikut ini adalah tautan ke dokumentasi untuk sumber daya Izin Terverifikasi di berbagai AWS SDKs sumber.
+ [AWS SDK untuk .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/VerifiedPermissions/NVerifiedPermissions.html)
+ [AWS SDK untuk C\$1\$1](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-verifiedpermissions/html/class_aws_1_1_verified_permissions_1_1_verified_permissions_client.html)
+ [AWS SDK untuk Go](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/verifiedpermissions)
+ [AWS SDK untuk Java](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/verifiedpermissions/package-summary.html)
+ [AWS SDK untuk JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/verifiedpermissions/)
+ [AWS SDK untuk PHP](https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-verifiedpermissions-2021-12-01.html)
+ [AWS SDK for Python (Boto)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/verifiedpermissions.html)
+ [AWS SDK untuk Ruby](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/VerifiedPermissions/Client.html)
+ [AWS SDK for Rust](https://docs.rs/aws-sdk-verifiedpermissions/latest/aws_sdk_verifiedpermissions/)

 AWS SDK untuk JavaScript Contoh berikut `IsAuthorized` berasal dari [Sederhanakan otorisasi berbutir halus dengan Izin Terverifikasi Amazon dan Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/).

```
const authResult = await avp.isAuthorized({
    principal: 'User::"alice"',
    action: 'Action::"view"',
    resource: 'Photo::"VacationPhoto94.jpg"',
    // whenever our policy references attributes of the entity,
    // isAuthorized needs an entity argument that provides    
    // those attributes
    entities: {
       entityList: [
         {
            "identifier": {
                "entityType": "User",
                "entityId": "alice"
            },
            "attributes": {
                "location": {
                    "String": "USA"
                }
            }
         }
       ]
    }
});
```

**Lebih banyak sumber daya pengembang**
+ [Lokakarya Izin Terverifikasi Amazon](https://catalog.workshops.aws/verified-permissions-in-action)
+ [Izin Terverifikasi Amazon - Sumber Daya](https://aws.amazon.com/verified-permissions/resources/)
+ [Menerapkan penyedia kebijakan otorisasi khusus untuk aplikasi ASP.NET Core menggunakan Izin Terverifikasi Amazon](https://aws.amazon.com/blogs/dotnet/implement-a-custom-authorization-policy-provider-for-asp-net-core-apps-using-amazon-verified-permissions/)
+ [Membangun layanan hak untuk aplikasi bisnis menggunakan Izin Terverifikasi Amazon](https://aws.amazon.com/blogs/security/build-an-entitlement-service-for-business-applications-using-amazon-verified-permissions/)
+ [Sederhanakan otorisasi halus dengan Izin Terverifikasi Amazon dan Amazon Cognito](https://aws.amazon.com/blogs/security/simplify-fine-grained-authorization-with-amazon-verified-permissions-and-amazon-cognito/)