Autenticazione e controllo degli accessi per le applicazioni utente - Amazon WorkDocs

Avviso: le registrazioni di nuovi clienti e gli upgrade degli account non sono più disponibili per Amazon. WorkDocs Scopri le fasi di migrazione qui: Come migrare i dati da Amazon WorkDocs.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione e controllo degli accessi per le applicazioni utente

Amazon WorkDocs Le applicazioni a livello di utente vengono registrate e gestite tramite Amazon WorkDocs Console. Gli sviluppatori devono registrare le proprie applicazioni sulMy Applicationspagina su Amazon WorkDocs Console, che fornisce ID univoci per ogni applicazione. Durante la registrazione, gli sviluppatori devono specificare gli URI di reindirizzamento in cui riceveranno i token di accesso, nonché gli ambiti delle applicazioni.

Attualmente, le applicazioni possono accedere solo ad Amazon WorkDocs siti all'interno dello stessoAWSaccount in cui sono registrati.

Concessione delle autorizzazioni per chiamare Amazon WorkDocs API

Gli utenti dell'interfaccia a riga di comando devono disporre delle autorizzazioni complete per Amazon WorkDocs eAWS Directory Service. Senza le autorizzazioni, vengono restituite tutte le chiamate APIUnauthorizedResourceAccessExceptionmessaggi. La policy seguente concede autorizzazioni complete.

{ "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": "*" } ] }

Se vuoi concedere autorizzazioni di sola lettura, usa questa policy.

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

Nella politica, la prima azione garantisce l'accesso a tutta l'Amazzonia WorkDocs Describeoperazioni. LaDescribeDirectories action ottiene informazioni sul tuoAWS Directory ServiceDirectory. Le operazioni di Amazon EC2 abilitano Amazon WorkDocs per ottenere un elenco di VPC e sottoreti.

Utilizzo degli ID delle cartelle nelle chiamate API

Ogni volta che una chiamata API accede a una cartella, è necessario utilizzare l'ID della cartella, non il nome della cartella. Ad esempio, se si passaclient.get_folder(FolderId='MyDocs'), la chiamata API restituisce unUnauthorizedResourceAccessExceptionmessaggio e il seguente messaggio 404.

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.

Per evitarlo, usa l'ID nell'URL della cartella.

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

Il passaggio di tale ID restituisce un risultato corretto.

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'}}

Creazione di un'applicazione

Come Amazon WorkDocs , puoi creare la tua applicazione completando le fasi seguenti.

Per creare un'applicazione
  1. Aprire Amazon WorkDocs Console pressohttps://console.aws.amazon.com/zocalo/.

  2. Scegliere My Applications (Le mie applicazioni), Create an Application (Crea un'applicazione).

  3. Immetti uno dei seguenti valori:

    Nome applicazione

    Nome dell'applicazione.

    E-mail

    Indirizzo e-mail da associare all'applicazione.

    Application Description (Descrizione applicazione)

    Descrizione per l'applicazione.

    Redirect URIs (URI di reindirizzamento)

    Posizione in cui vuoi Amazon WorkDocs per reindirizzare il traffico a.

    Ambiti delle applicazioni

    Ambito, ovvero lettura o scrittura, che vuoi assegnare all'applicazione. Per ulteriori dettagli, consulta Ambiti delle applicazioni.

  4. Scegli Create (Crea).

Ambiti delle applicazioni

Amazon WorkDocs supporta gli ambiti delle applicazioni seguenti:

  • Contenuto letto (workdocs.content.read), che permette all'applicazione di accedere al seguente WorkDocs API:

    • Get*

    • Describe*

  • Scrittura contenuto (workdocs.content.write), che permette all'applicazione di accedere al seguente WorkDocs API:

    • Creare*

    • Aggiorna*

    • Elimina*

    • Initiate*

    • Abort*

    • Add*

    • Remove*

Autorizzazione

Dopo la registrazione, un'applicazione può richiedere l'autorizzazione per conto di Amazon WorkDocs utente. A questo scopo, l'applicazione deve visitare Amazon WorkDocs endpoint OAuth,https://auth.amazonworkdocs.com/oauthe fornire i parametri di query seguenti:

  • [Campo obbligatorio]app_idID applicazione generato durante la registrazione di un'applicazione.

  • [Campo obbligatorio]auth_typeTipo di OAuth per la richiesta. Il valore supportato è ImplicitGrant.

  • [Campo obbligatorio]redirect_uriURI di reindirizzamento registrato per un'applicazione per la ricezione di un token di accesso.

  • [Opzionale]scopeselenco di ambiti separati da virgole. Se non è specificato, viene usato l'elenco di ambiti selezionati durante la registrazione.

  • [Opzionale]statestringa restituita insieme a un token di accesso.

Nota

Se si richiedono moduli crittografici convalidati FIPS 140-2 quando si accede ad AWS tramite un'interfaccia a riga di comando o un'API, utilizzare un endpoint FIPS. Per ulteriori informazioni sugli endpoint FIPS disponibili, consulta il Federal Information Processing Standard (FIPS) 140-2.

Richiesta GET di esempio per avviare il flusso OAuth per ottenere un token di accesso:

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

Durante il flusso di autorizzazione OAuth avvengono le attività seguenti:

  1. All'utente dell'applicazione viene richiesto di entrare in Amazon WorkDocs nome del sito.

  2. L'utente viene reindirizzato al Amazon WorkDocs pagina di autenticazione per inserire le proprie credenziali.

  3. Dopo che l'autenticazione riesce, l'utente visualizza la schermata per il consenso, in cui può concedere o negare all'applicazione l'autorizzazione di accesso ad Amazon WorkDocs.

  4. Dopo che l'utente sceglie Accept nella schermata per il consenso, il browser dell'utente viene reindirizzato all'URL di richiamata dell'applicazione, insieme al token di accesso e alle informazioni sulla regione come parametri di query.

Richiesta GET di esempio da Amazon WorkDocs:

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

Oltre al token di accesso, Amazon WorkDocs Restituisce anche il servizio OAuthregioncome parametro di query per l'Amazon selezionato WorkDocs sito. Le applicazioni esterne devono utilizzareregionparametro per determinare l'Amazzonia WorkDocs endpoint del servizio.

Se si richiedono moduli crittografici convalidati FIPS 140-2 quando si accede ad AWS tramite un'interfaccia a riga di comando o un'API, utilizzare un endpoint FIPS. Per ulteriori informazioni sugli endpoint FIPS disponibili, consulta il Federal Information Processing Standard (FIPS) 140-2.

Richiamo Amazon WorkDocs API

Dopo aver ottenuto il token di accesso, la tua applicazione può effettuare chiamate API ad Amazon WorkDocsServizi .

Importante

Questo esempio mostra come utilizzare una richiesta GET arricciata per ottenere i metadati di un documento.

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

Esempio di JavaScript funzione per descrivere le cartelle root di un utente:

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

Di seguito viene descritta una chiamata API di esempio basata su Java:

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