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

WorkDocs le applicazioni a livello utente vengono registrate e gestite tramite la WorkDocs console. Gli sviluppatori devono registrare le proprie applicazioni sulla My Applications pagina della WorkDocs console che fornirà informazioni uniche IDs per ogni applicazione. Durante la registrazione, gli sviluppatori devono specificare il reindirizzamento URIs in cui riceveranno i token di accesso e gli ambiti delle applicazioni.

Attualmente, le applicazioni possono accedere solo ai WorkDocs siti all'interno dello stesso AWS account in cui sono registrate.

Concessione delle autorizzazioni per chiamare il WorkDocs APIs

Gli utenti dell'interfaccia a riga di comando devono disporre delle autorizzazioni complete per e. WorkDocs AWS Directory Service Senza le autorizzazioni, tutte le chiamate API restituiscono UnauthorizedResourceAccessExceptionmessaggi. La seguente politica concede le 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 desideri concedere autorizzazioni di sola lettura, utilizza questo criterio.

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

Nella politica, la prima azione concede l'accesso a tutte le operazioni. WorkDocs Describe L'DescribeDirectories azione consente di ottenere informazioni sulle tue AWS Directory Service directory. Le EC2 operazioni di Amazon consentono WorkDocs di ottenere un elenco delle tue VPCs sottoreti.

Utilizzo della cartella IDs 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 l'esito è client.get_folder(FolderId='MyDocs') positivo, la chiamata API restituisce un UnauthorizedResourceAccessExceptionmessaggio 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 evitare che ciò accada, utilizza 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

In qualità di WorkDocs amministratore, crea la tua applicazione utilizzando i seguenti passaggi.

Per creare un'applicazione
  1. Apri la WorkDocs console all'indirizzo https://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.

    Reindirizzamento URIs

    La posizione verso cui desideri WorkDocs reindirizzare il traffico.

    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

WorkDocs supporta i seguenti ambiti applicativi:

  • Content Read (workdocs.content.read), che consente all'applicazione di accedere a quanto segue: WorkDocs APIs

    • Get*

    • Describe*

  • Content Write (workdocs.content.write), che consente all'applicazione di accedere a quanto segue WorkDocs APIs:

    • Creare*

    • Aggiorna*

    • Elimina*

    • Initiate*

    • Abort*

    • Add*

    • Remove*

Autorizzazione

Una volta completata la registrazione dell'applicazione, un'applicazione può richiedere l'autorizzazione per conto di qualsiasi WorkDocs utente. A tale scopo, l'applicazione deve visitare l' WorkDocs OAuthendpoint e fornire i seguenti parametri di interrogazione: https://auth.amazonworkdocs.com/oauth

  • [Obbligatorio]app_id: ID dell'applicazione generato quando un'applicazione viene registrata.

  • [Obbligatorio]auth_type: il OAuth tipo di richiesta. Il valore supportato è ImplicitGrant.

  • [Obbligatorio]redirect_uri: l'URI di reindirizzamento registrato per consentire a un'applicazione di ricevere un token di accesso.

  • [Facoltativo]scopes: un elenco di ambiti delimitato da virgole. Se non è specificato, viene usato l'elenco di ambiti selezionati durante la registrazione.

  • [Facoltativo]state: una stringa che viene 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.

Un esempio di richiesta GET per avviare il OAuth flusso 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 OAuth autorizzazione si verifica quanto segue:

  1. All'utente dell'applicazione viene richiesto di inserire il nome del WorkDocs sito.

  2. L'utente viene reindirizzato alla pagina di WorkDocs 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 a 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.

Un esempio di richiesta GET da: WorkDocs

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

Oltre al token di accesso, il WorkDocs OAuth servizio viene restituito anche region come parametro di interrogazione per il WorkDocs sito selezionato. Le applicazioni esterne devono utilizzare il region parametro per determinare l'endpoint del WorkDocs 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.

Invocando WorkDocs APIs

Dopo aver ottenuto il token di accesso, l'applicazione può effettuare chiamate API a servizi WorkDocs.

Importante

Questo esempio mostra come utilizzare una richiesta GET curl 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"

Una JavaScript funzione di esempio per descrivere le cartelle principali 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()); }