Autentikasi dan kontrol akses untuk aplikasi pengguna - Amazon WorkDocs

Pemberitahuan: Pendaftaran pelanggan baru dan peningkatan akun tidak lagi tersedia untuk Amazon. WorkDocs Pelajari tentang langkah-langkah migrasi di sini: Cara memigrasi data dari WorkDocs.

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

Autentikasi dan kontrol akses untuk aplikasi pengguna

WorkDocs aplikasi tingkat pengguna terdaftar dan dikelola melalui WorkDocs konsol. Pengembang harus mendaftarkan aplikasi mereka pada My Applications halaman di WorkDocs konsol yang akan memberikan unik IDs untuk setiap aplikasi. Selama pendaftaran, pengembang harus menentukan pengalihan URIs di mana mereka akan menerima token akses serta cakupan aplikasi.

Saat ini, aplikasi hanya dapat mengakses WorkDocs situs dalam AWS akun yang sama tempat mereka terdaftar.

Memberikan izin untuk memanggil WorkDocs APIs

Pengguna antarmuka baris perintah harus memiliki izin penuh untuk WorkDocs dan Directory Service. Tanpa izin, API apa pun memanggil UnauthorizedResourceAccessExceptionpesan balasan. Kebijakan berikut memberikan izin penuh.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "workdocs:*", "ds:*", "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:CreateNetworkInterface", "ec2:CreateTags", "ec2:CreateSecurityGroup", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress" ], "Effect": "Allow", "Resource": "*" } ] }

Jika Anda ingin memberikan izin hanya-baca, gunakan kebijakan ini.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "workdocs:Describe*", "ds:DescribeDirectories", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Effect": "Allow", "Resource": "*" } ] }

Dalam kebijakan tersebut, tindakan pertama memberikan akses ke semua WorkDocs Describe operasi. DescribeDirectories Tindakan memperoleh informasi tentang Directory Service direktori Anda. EC2 Operasi Amazon memungkinkan WorkDocs untuk mendapatkan daftar subnet VPCs dan Anda.

Menggunakan folder IDs dalam panggilan API

Setiap kali panggilan API mengakses folder, Anda harus menggunakan ID folder, bukan nama folder. Misalnya, jika Anda lulusclient.get_folder(FolderId='MyDocs'), panggilan API akan menampilkan UnauthorizedResourceAccessExceptionpesan dan pesan 404 berikut.

client.get_folder(FolderId='MyDocs') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\user-name\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\client.py", line 253, in _api_call return self._make_api_call(operation_name, kwargs) File "C:\Users\user-name\AppData\Local\Programs\Python\Python36-32\lib\site-packages\botocore\client.py", line 557, in _make_api_call raise error_class(parsed_response, operation_name) botocore.errorfactory.UnauthorizedResourceAccessException: An error occurred (UnauthorizedResourceAccessException) when calling the GetFolder operation: Principal [arn:aws:iam::395162986870:user/Aman] is not allowed to execute [workdocs:GetFolder] on the resource.

Untuk menghindarinya, gunakan ID di URL folder.

site.workdocs/index.html#/folder/abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577.

Melewati ID itu mengembalikan hasil yang benar.

client.get_folder(FolderId='abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577') {'ResponseMetadata': {'RequestId': 'f8341d4e-4047-11e7-9e70-afa8d465756c', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f234564e-1234-56e7-89e7-a10fa45t789c', 'cache-control': 'private, no-cache, no-store, max-age=0', 'content-type': 'application/json', 'content-length': '733', 'date': 'Wed, 24 May 2017 06:12:30 GMT'}, 'RetryAttempts': 0}, 'Metadata': {'Id': 'abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577', 'Name': 'sentences', 'CreatorId': 'S-1-5-21-2125721135-1643952666-3011040551-2105&d-906724f1ce', 'ParentFolderId': '0a811a922403ae8e1d3c180f4975f38f94372c3d6a2656c50851c7fb76677363', 'CreatedTimestamp': datetime.datetime(2017, 5, 23, 12, 59, 13, 8000, tzinfo=tzlocal()), 'ModifiedTimestamp': datetime.datetime(2017, 5, 23, 13, 13, 9, 565000, tzinfo=tzlocal()), 'ResourceState': 'ACTIVE', 'Signature': 'b7f54963d60ae1d6b9ded476f5d20511'}}

Membuat aplikasi

Sebagai WorkDocs administrator, buat aplikasi Anda menggunakan langkah-langkah berikut.

Untuk membuat aplikasi
  1. Buka WorkDocs konsol di https://console.aws.amazon.com/zocalo/.

  2. Pilih Aplikasi Saya, Buat Aplikasi.

  3. Masukkan nilai berikut:

    Nama Aplikasi

    Nama untuk aplikasi.

    Email

    Alamat email untuk diasosiasikan dengan aplikasi.

    Deskripsi Aplikasi

    Deskripsi untuk aplikasi.

    Mengalihkan URIs

    Lokasi yang ingin WorkDocs Anda alihkan lalu lintas ke.

    Lingkup Aplikasi

    Cakupan, baik baca atau tulis, yang Anda ingin atur untuk aplikasi. Untuk detail selengkapnya, lihat Cakupan aplikasi.

  4. Pilih Buat.

Cakupan aplikasi

WorkDocs mendukung cakupan aplikasi berikut:

  • Content Read (workdocs.content.read), yang memberikan akses aplikasi Anda ke hal-hal berikut WorkDocs APIs:

    • Dapatkan*

    • Deskripsikan*

  • Content Write (workdocs.content.write), yang memberikan akses aplikasi Anda ke hal-hal berikut WorkDocs APIs:

    • Buat*

    • Perbarui*

    • Hapus*

    • Mulai*

    • Batalkan*

    • Tambahkan*

    • Hapus*

Otorisasi

Setelah pendaftaran aplikasi selesai, aplikasi dapat meminta otorisasi atas nama WorkDocs pengguna mana pun. Untuk melakukan hal ini, aplikasi harus mengunjungi WorkDocs OAuth endpoint,https://auth.amazonworkdocs.com/oauth, dan menyediakan parameter query berikut:

  • [Diperlukan] app_id—ID aplikasi yang dihasilkan ketika aplikasi didaftarkan.

  • [Wajib] auth_type OAuth —Jenis permintaan. Nilai yang didukung adalah ImplicitGrant.

  • [Diperlukan] redirect_uri—URI pengalihan yang didaftarkan untuk aplikasi untuk menerima token akses.

  • [Opsional] scopes—Daftar cakupan yang dipisahkan koma. Jika tidak ditentukan, daftar cakupan yang dipilih saat pendaftaran akan digunakan.

  • [Opsional] state—Sebuah string yang dihasilkan bersama dengan token akses.

catatan

Jika Anda memerlukan modul kriptografi yang divalidasi FIPS 140-2 ketika mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Untuk informasi selengkapnya tentang titik akhir FIPS yang tersedia, lihat Standar Pemrosesan Informasi Federal (FIPS) 140-2.

Contoh permintaan GET untuk memulai OAuth alur untuk mendapatkan token akses:

GET https://auth.amazonworkdocs.com/oauth?app_id=my-app-id&auth_type=ImplicitGrant&redirect_uri=https://myapp.com/callback&scopes=workdocs.content.read&state=xyz

Berikut ini terjadi selama aliran OAuth otorisasi:

  1. Pengguna aplikasi diminta untuk memasukkan nama WorkDocs situs.

  2. Pengguna diarahkan ke halaman WorkDocs otentikasi untuk memasukkan kredensialnya.

  3. Setelah otentikasi berhasil, pengguna disajikan dengan layar persetujuan yang memungkinkan pengguna untuk memberikan atau menolak otorisasi aplikasi Anda untuk mengakses. WorkDocs

  4. Setelah pengguna memilih Accept pada layar persetujuan, peramban mereka diarahkan ke URL callback aplikasi Anda dengan token akses dan informasi wilayah sebagai parameter kuerinya.

Contoh GET permintaan dari WorkDocs:

GET https://myapp.com/callback?acessToken=accesstoken&region=us-east-1&state=xyz

Selain token akses, WorkDocs OAuth layanan juga kembali region sebagai parameter kueri untuk WorkDocs situs yang dipilih. Aplikasi eksternal harus menggunakan region parameter untuk menentukan titik akhir WorkDocs layanan.

Jika Anda memerlukan modul kriptografi yang divalidasi FIPS 140-2 ketika mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Untuk informasi selengkapnya tentang titik akhir FIPS yang tersedia, lihat Standar Pemrosesan Informasi Federal (FIPS) 140-2.

Memohon WorkDocs APIs

Setelah mendapatkan token akses, aplikasi Anda dapat melakukan panggilan API ke WorkDocs layanan.

penting

Contoh ini menunjukkan cara menggunakan permintaan GET curl untuk mendapatkan metadata dokumen.

Curl "https://workdocs.us-east-1.amazonaws.com/api/v1/documents/{document-id}" -H "Accept: application/json" -H "Authentication: Bearer accesstoken"

Contoh JavaScript fungsi untuk mendeskripsikan folder root pengguna:

function printRootFolders(accessToken, siteRegion) { var workdocs = new AWS.WorkDocs({region: siteRegion}); workdocs.makeUnauthenticatedRequest("describeRootFolders", {AuthenticationToken: accessToken}, function (err, folders) { if (err) console.log(err); else console.log(folders); }); }

Sampel pengaktifan API berbasis Java dijelaskan di bawah ini:

AWSCredentialsProvider credentialsProvider = new AWSCredentialsProvider() { @Override public void refresh() {} @Override public AWSCredentials getCredentials() { new AnonymousAWSCredentials(); } }; // Set the correct region obtained during OAuth flow. workDocs = AmazonWorkDocsClient.builder().withCredentials(credentialsProvider) .withRegion(Regions.US_EAST_1).build(); DescribeRootFoldersRequest request = new DescribeRootFoldersRequest(); request.setAuthenticationToken("access-token-obtained-through-workdocs-oauth"); DescribeRootFoldersResult result = workDocs.describeRootFolders(request); for (FolderMetadata folder : result.getFolders()) { System.out.printf("Folder name=%s, Id=%s \n", folder.getName(), folder.getId()); }