Authentifizierung und Zugriffskontrolle für Benutzeranwendungen - Amazon WorkDocs

Hinweis: Neukundenanmeldungen und Kontoerweiterungen sind für Amazon WorkDocs nicht mehr verfügbar. Erfahren Sie hier mehr über Migrationsschritte: So migrieren Sie Daten von Amazon 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

Amazon-Anwendungen auf WorkDocs Benutzerebene werden über die WorkDocs Amazon-Konsole registriert und verwaltet. Entwickler sollten ihre Anwendungen auf der My Applications Seite auf der WorkDocs Amazon-Konsole registrieren, die IDs für jede Anwendung eindeutig ist. Bei der Registrierung sollten Entwickler die Weiterleitung angeben, URIs an die sie Zugriffstoken sowie den Anwendungsbereich erhalten sollen.

Derzeit können Anwendungen nur innerhalb desselben AWS Kontos auf WorkDocs Amazon-Websites zugreifen, in dem sie registriert sind.

Erteilung von Berechtigungen zum Anrufen von Amazon WorkDocs APIs

Benutzer der Befehlszeilenschnittstelle müssen über volle Berechtigungen für Amazon verfügen WorkDocs und 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 WorkDocs Describe Amazon-Operationen. Die DescribeDirectories Aktion ruft Informationen über Ihre AWS Directory Service Verzeichnisse ab. Die EC2 Amazon-Operationen ermöglichen WorkDocs es Amazon, 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 Amazon-Administrator erstellen Sie Ihre Anwendung mithilfe der folgenden Schritte.

So erstellen Sie eine Anwendung
  1. Öffnen Sie die WorkDocs Amazon-Konsole unter https://console.aws.amazon.com/zocalo/.

  2. Wählen Sie Meine Anwendungen, Eine Anwendung erstellen.

  3. Geben Sie die folgenden Werte ein:

    Anwendungsname

    Name für die Anwendung.

    E-Mail

    Die der Anwendung zuzuordnende E-Mail-Adresse.

    Anwendungsbeschreibung

    Beschreibung für die Anwendung.

    Umleiten URIs

    Der Standort, WorkDocs an den Amazon Traffic umleiten soll.

    Anwendungsbereiche

    Der für Ihre Anwendung gewünschte Bereich, entweder Lese- oder Schreibzugriff. Weitere Details finden Sie unter Anwendungsbereiche.

  4. Wählen Sie Create (Erstellen) aus.

Anwendungsbereiche

Amazon WorkDocs unterstützt die folgenden Anwendungsbereiche:

  • Content Read (workdocs.content.read), wodurch Ihre Anwendung auf das folgende Amazon zugreifen kann WorkDocs APIs:

    • Get*

    • Describe*

  • Content Write (workdocs.content.write), wodurch Ihre Anwendung auf das folgende Amazon 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 des Antrags abgeschlossen ist, kann ein Antrag im Namen eines beliebigen WorkDocs Amazon-Benutzers eine Autorisierung beantragen. Dazu sollte die Anwendung den WorkDocs OAuth Amazon-Endpunkt besuchen und die folgenden Abfrageparameter bereitstellen: https://auth.amazonworkdocs.com/oauth

  • [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 ist ImplicitGrant.

  • [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:

  1. Der Anwendungsbenutzer wird aufgefordert, den Namen der WorkDocs Amazon-Site einzugeben.

  2. Der Benutzer wird zur WorkDocs Amazon-Authentifizierungsseite weitergeleitet, um seine Anmeldeinformationen einzugeben.

  3. Nach erfolgreicher Authentifizierung wird dem Benutzer der Zustimmungsbildschirm angezeigt, auf dem er Ihrer Anwendung die Autorisierung für den Zugriff auf Amazon entweder gewähren oder verweigern kann WorkDocs.

  4. 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 Amazon WorkDocs:

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

Zusätzlich zum Zugriffstoken gibt der WorkDocs OAuth Amazon-Service auch region als Abfrageparameter für die ausgewählte WorkDocs Amazon-Website zurück. Externe Anwendungen sollten den region Parameter verwenden, um den WorkDocs Amazon-Serviceendpunkt 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.

Amazon aufrufen WorkDocs APIs

Nachdem Sie das Zugriffstoken erhalten haben, kann Ihre Anwendung API-Aufrufe an WorkDocs Amazon-Services tätigen.

Wichtig

Dieses Beispiel zeigt, wie Sie eine curl-GET-Anfrage verwenden, 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: Bearer accesstoken"

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