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 Amazon 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

Aplikasi tingkat WorkDocs pengguna Amazon terdaftar dan dikelola melalui WorkDocs konsol Amazon. Pengembang harus mendaftarkan aplikasi mereka di My Applications halaman di WorkDocs konsol Amazon 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 Amazon dalam AWS akun yang sama tempat mereka terdaftar.

Memberikan izin untuk menelepon Amazon WorkDocs APIs

Pengguna antarmuka baris perintah harus memiliki izin penuh ke Amazon WorkDocs dan AWS 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 Amazon. DescribeDirectories Tindakan memperoleh informasi tentang AWS Directory Service direktori Anda. EC2 Operasi Amazon memungkinkan Amazon 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 Amazon, buat aplikasi Anda menggunakan langkah-langkah berikut.

Untuk membuat aplikasi
  1. Buka WorkDocs konsol Amazon 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 Anda inginkan Amazon WorkDocs untuk mengarahkan 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

Amazon WorkDocs mendukung cakupan aplikasi berikut:

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

    • Dapatkan*

    • Deskripsikan*

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

    • Buat*

    • Perbarui*

    • Hapus*

    • Mulai*

    • Batalkan*

    • Tambahkan*

    • Hapus*

Otorisasi

Setelah pendaftaran aplikasi selesai, aplikasi dapat meminta otorisasi atas nama WorkDocs pengguna Amazon mana pun. Untuk melakukan ini, aplikasi harus mengunjungi WorkDocs OAuth titik akhir Amazonhttps://auth.amazonworkdocs.com/oauth, dan memberikan parameter kueri 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 Amazon.

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

  3. Setelah otentikasi berhasil, pengguna disajikan dengan layar persetujuan yang memungkinkan pengguna untuk memberikan atau menolak otorisasi aplikasi Anda untuk mengakses Amazon. 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 permintaan GET dari Amazon WorkDocs:

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

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

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.

Memanggil Amazon WorkDocs APIs

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

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()); }