Hinweis: Neukundenanmeldungen und Kontoerweiterungen sind für Amazon WorkDocs nicht mehr verfügbar. Informationen zu den Migrationsschritten finden Sie hier: So migrieren Sie Daten von WorkDocs
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Authentifizierung und Zugriffskontrolle für Benutzeranwendungen
WorkDocs Anwendungen auf Benutzerebene werden über die WorkDocs Konsole registriert und verwaltet. Entwickler sollten ihre Anwendungen auf der My Applications
Seite in der WorkDocs Konsole registrieren, die IDs für jede Anwendung eindeutig ist. Bei der Registrierung sollten Entwickler die Weiterleitung angeben, URIs an die sie Zugriffstoken sowie die Anwendungsbereiche erhalten sollen.
Derzeit können Anwendungen nur auf WorkDocs Websites innerhalb desselben AWS Kontos zugreifen, in dem sie registriert sind.
Inhalt
Erteilung von Berechtigungen zum Aufrufen von WorkDocs APIs
Benutzer der Befehlszeilenschnittstelle müssen über vollständige Berechtigungen für WorkDocs und verfügen AWS Directory Service. Ohne die Berechtigungen geben alle API-Aufrufe UnauthorizedResourceAccessExceptionNachrichten zurück. Die folgende Richtlinie gewährt volle Berechtigungen.
{ "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": "*" } ] }
Verwenden Sie diese Richtlinie, wenn Sie nur Leseberechtigungen gewähren möchten.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "workdocs:Describe*", "ds:DescribeDirectories", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Effect": "Allow", "Resource": "*" } ] }
In der Richtlinie gewährt die erste Aktion Zugriff auf alle Operationen. WorkDocs Describe
Die DescribeDirectories
Aktion ruft Informationen über Ihre AWS Directory Service Verzeichnisse ab. Die EC2 Amazon-Operationen WorkDocs ermöglichen es, eine Liste Ihrer VPCs und Subnetze zu erhalten.
Ordner IDs in API-Aufrufen verwenden
Immer wenn ein API-Aufruf auf einen Ordner zugreift, müssen Sie die Ordner-ID verwenden, nicht den Ordnernamen. Wenn Sie den Vorgang beispielsweise bestehenclient.get_folder(FolderId='MyDocs')
, gibt der API-Aufruf eine UnauthorizedResourceAccessExceptionNachricht und die folgende 404-Nachricht zurück.
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.
Um dies zu vermeiden, verwenden Sie die ID in der URL des Ordners.
.site.workdocs
/index.html#/folder/abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577
Wenn Sie diese ID übergeben, wird ein korrektes Ergebnis zurückgegeben.
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'}}
Erstellen einer Anwendung
Als WorkDocs Administrator erstellen Sie Ihre Anwendung mithilfe der folgenden Schritte.
So erstellen Sie eine Anwendung
-
Öffnen Sie die WorkDocs Konsole unter https://console.aws.amazon.com/zocalo/
. -
Wählen Sie Meine Anwendungen, Eine Anwendung erstellen.
-
Geben Sie die folgenden Werte ein:
- Anwendungsname
-
Name für die Anwendung.
-
Die der Anwendung zuzuordnende E-Mail-Adresse.
- Anwendungsbeschreibung
-
Beschreibung für die Anwendung.
- Umleiten URIs
-
Der Standort, an den Sie WorkDocs den Verkehr umleiten möchten.
- Anwendungsbereiche
-
Der für Ihre Anwendung gewünschte Bereich, entweder Lese- oder Schreibzugriff. Weitere Details finden Sie unter Anwendungsbereiche.
-
Wählen Sie Erstellen aus.
Anwendungsbereiche
WorkDocs unterstützt die folgenden Anwendungsbereiche:
-
Content Read (
workdocs.content.read
), wodurch Ihre Anwendung auf Folgendes WorkDocs APIs zugreifen kann:-
Get*
-
Describe*
-
-
Content Write (
workdocs.content.write
), wodurch Ihre Anwendung auf Folgendes zugreifen kann WorkDocs APIs:-
Geben Sie einen Namen für den Benutzer ein und klicken Sie dann auf*
-
Update*
-
Delete*
-
Initiate*
-
Abort*
-
Add*
-
Remove*
-
Autorisierung
Nachdem die Registrierung der Anwendung abgeschlossen ist, kann eine Anwendung im Namen eines beliebigen WorkDocs Benutzers eine Autorisierung beantragen. Zu diesem Zweck sollte die Anwendung den WorkDocs OAuth Endpunkt aufrufen https://auth.amazonworkdocs.com/oauth
und die folgenden Abfrageparameter bereitstellen:
-
[Erforderlich]
app_id
— Anwendungs-ID, die generiert wird, wenn eine Anwendung registriert wird. -
[Erforderlich]
auth_type
— Der OAuth Typ für die Anforderung. Der unterstützte Wert istImplicitGrant
. -
[Erforderlich]
redirect_uri
— Die Umleitungs-URI, die für eine Anwendung registriert wurde, um ein Zugriffstoken zu erhalten. -
[Optional]
scopes
— Eine durch Kommas getrennte Liste von Bereichen. Wenn keine Angabe gemacht wird, wird die während der Registrierung ausgewählte Liste von Bereichen verwendet. -
[Optional]
state
— Eine Zeichenfolge, die zusammen mit einem Zugriffstoken zurückgegeben wird.
Anmerkung
Wenn Sie für den Zugriff auf AWS über eine Befehlszeilenschnittstelle oder eine API FIPS 140-2-validierte kryptografische Module benötigen, verwenden Sie einen FIPS-Endpunkt. Weitere Informationen über verfügbare FIPS-Endpunkte finden Sie unter Federal Information Processing Standard (FIPS) 140-2
Ein Beispiel für eine GET-Anfrage zur Initiierung des OAuth Flows zum Abrufen eines Zugriffstokens:
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
Während des OAuth Autorisierungsablaufs findet Folgendes statt:
-
Der Anwendungsbenutzer wird aufgefordert, den Namen der WorkDocs Site einzugeben.
-
Der Benutzer wird zur WorkDocs Authentifizierungsseite weitergeleitet, um seine Anmeldeinformationen einzugeben.
-
Nach einer erfolgreichen Authentifizierung wird dem Benutzer der Zustimmungsbildschirm angezeigt. Hier kann der Benutzer der Anwendung die Autorisierung zum Zugriff auf WorkDocs entweder gewähren oder verweigern.
-
Nachdem der Benutzer auf dem Zustimmungsbildschirm auf
Accept
klickt, wird sein Browser zusammen mit dem Zugriffstoken und den Regionsangaben als Abfrageparameter zur Rückruf-URL der Anwendung umgeleitet.
Ein Beispiel für eine GET-Anfrage von WorkDocs:
GET https://myapp.com/callback?acessToken=
accesstoken
®ion=us-east-1
&state=xyz
Zusätzlich zum Zugriffstoken gibt der WorkDocs OAuth Dienst auch region
als Abfrageparameter für die ausgewählte WorkDocs Site zurück. Externe Anwendungen sollten den region
Parameter verwenden, um den WorkDocs Dienstendpunkt zu bestimmen.
Wenn Sie für den Zugriff auf AWS über eine Befehlszeilenschnittstelle oder eine API FIPS 140-2-validierte kryptografische Module benötigen, verwenden Sie einen FIPS-Endpunkt. Weitere Informationen über verfügbare FIPS-Endpunkte finden Sie unter Federal Information Processing Standard (FIPS) 140-2
Aufrufen WorkDocs APIs
Nachdem das Zugriffstoken empfangen wurde, kann Ihre Anwendung API-Aufrufe an WorkDocs-Services vornehmen.
Wichtig
Dieses Beispiel zeigt, wie eine curl-GET-Anfrage verwendet wird, um die Metadaten eines Dokuments abzurufen.
Curl "https://workdocs.us-east-1.amazonaws.com/api/v1/documents/
{document-id}
" -H "Accept: application/json" -H "Authentication: Beareraccesstoken
"
Eine JavaScript Beispielfunktion zur Beschreibung der Stammordner eines Benutzers:
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); }); }
Ein Java-basierter API-Beispielaufruf wird nachstehend beschrieben:
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()); }