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 Applications
pagina 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.
Indice
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 Describe
operazioni. 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
-
Aprire Amazon WorkDocs Console pressohttps://console.aws.amazon.com/zocalo/
. -
Scegliere My Applications (Le mie applicazioni), Create an Application (Crea un'applicazione).
-
Immetti uno dei seguenti valori:
- Nome applicazione
-
Nome dell'applicazione.
-
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.
-
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/oauth
e fornire i parametri di query seguenti:
-
[Campo obbligatorio]
app_id
ID applicazione generato durante la registrazione di un'applicazione. -
[Campo obbligatorio]
auth_type
Tipo di OAuth per la richiesta. Il valore supportato èImplicitGrant
. -
[Campo obbligatorio]
redirect_uri
URI di reindirizzamento registrato per un'applicazione per la ricezione di un token di accesso. -
[Opzionale]
scopes
elenco di ambiti separati da virgole. Se non è specificato, viene usato l'elenco di ambiti selezionati durante la registrazione. -
[Opzionale]
state
stringa 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:
-
All'utente dell'applicazione viene richiesto di entrare in Amazon WorkDocs nome del sito.
-
L'utente viene reindirizzato al Amazon WorkDocs pagina di autenticazione per inserire le proprie credenziali.
-
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.
-
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
®ion=us-east-1
&state=xyz
Oltre al token di accesso, Amazon WorkDocs Restituisce anche il servizio OAuthregion
come parametro di query per l'Amazon selezionato WorkDocs sito. Le applicazioni esterne devono utilizzareregion
parametro 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: Beareraccesstoken
"
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()); }