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
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.
Indice
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
-
Apri la WorkDocs console all'indirizzo https://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.
- 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.
-
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:
-
All'utente dell'applicazione viene richiesto di inserire il nome del WorkDocs sito.
-
L'utente viene reindirizzato alla pagina di WorkDocs 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 a 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.
Un esempio di richiesta GET da: WorkDocs
GET https://myapp.com/callback?acessToken=
accesstoken
®ion=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: Beareraccesstoken
"
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()); }