Aviso: novas inscrições de clientes e atualizações de conta não estão mais disponíveis para a Amazon. WorkDocs Saiba mais sobre as etapas de migração aqui: Como migrar dados de WorkDocs
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Controle de acesso e autenticação de aplicativos de usuário
WorkDocs os aplicativos em nível de usuário são registrados e gerenciados por meio do WorkDocs console. Os desenvolvedores devem registrar seus aplicativos na My Applications página do WorkDocs console, que fornecerá informações exclusivas IDs para cada aplicativo. Durante o registro, os desenvolvedores devem especificar o redirecionamento para URIs onde receberão os tokens de acesso, bem como os escopos do aplicativo.
Atualmente, os aplicativos só podem acessar WorkDocs sites dentro da mesma AWS conta em que estão registrados.
Conteúdo
Concedendo permissões para chamar o WorkDocs APIs
Os usuários da interface de linha de comando devem ter permissões completas para WorkDocs Directory Service e. Sem as permissões, todas as chamadas de API retornam UnauthorizedResourceAccessExceptionmensagens. A política a seguir concede permissões totais.
{ "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 você deseja conceder permissões de acesso somente para leitura, use esta política.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "workdocs:Describe*", "ds:DescribeDirectories", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Effect": "Allow", "Resource": "*" } ] }
Na política, a primeira ação concede acesso a todas as WorkDocs Describe operações. A DescribeDirectories ação obtém informações sobre seus Directory Service diretórios. As EC2 operações da Amazon permitem WorkDocs obter uma lista de suas VPCs e de suas sub-redes.
Usando a pasta IDs em chamadas de API
Sempre que uma chamada de API acessa uma pasta, você deve usar o ID da pasta, não o nome da pasta. Por exemplo, se você for aprovadoclient.get_folder(FolderId='MyDocs'), a chamada da API retornará uma UnauthorizedResourceAccessExceptionmensagem e a seguinte mensagem 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.
Para evitar isso, use o ID no URL da pasta.
.site.workdocs/index.html#/folder/abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577
Passar esse ID retorna um resultado correto.
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'}}
Criar uma aplicação do
Como WorkDocs administrador, crie seu aplicativo usando as etapas a seguir.
Para criar uma aplicação
-
Abra o WorkDocs console em https://console.aws.amazon.com/zocalo/
. -
Selecione My Applications (Meus aplicativos), Create an Application (Criar um aplicativo).
-
Insira os seguintes valores:
- Application Name (Nome do aplicativo)
-
Nome do aplicativo.
-
Endereço de e-mail para associar ao aplicativo.
- Application Description (Descrição do aplicativo)
-
Descrição do aplicativo.
- Redirecionar URIs
-
O local para o qual você WorkDocs deseja redirecionar o tráfego.
- Escopos do aplicativo
-
O escopo, de leitura ou gravação, que você deseja que o aplicativo tenha. Consulte mais detalhes em Escopos do aplicativo.
-
Escolha Criar.
Escopos do aplicativo
WorkDocs suporta os seguintes escopos de aplicativos:
-
Content Read (
workdocs.content.read), que dá ao seu aplicativo acesso ao seguinte WorkDocs APIs:-
Get*
-
Describe*
-
-
Content Write (
workdocs.content.write), que dá ao seu aplicativo acesso ao seguinte WorkDocs APIs:-
Create*
-
Update*
-
Delete*
-
Initiate*
-
Abort*
-
Adicionar*
-
Remover*
-
Autorização
Depois que o registro do aplicativo for concluído, um aplicativo poderá solicitar autorização em nome de qualquer WorkDocs usuário. Para fazer isso, o aplicativo deve visitar o WorkDocs OAuth endpoint e fornecer os seguintes parâmetros de consulta: https://auth.amazonworkdocs.com/oauth
-
[Obrigatório]
app_id—ID de aplicativo gerado quando um aplicativo é registrado. -
[Obrigatório]
auth_type— O OAuth tipo da solicitação.ImplicitGranté o valor compatível. -
[Obrigatório]
redirect_uri—O URI de redirecionamento registrado de um aplicativo para receber um token de acesso. -
[Opcional]
scopes—Uma lista de escopos separada por vírgula. Se não houver especificação, a lista de escopos selecionada durante o registro será usada. -
[Opcional]
state—Uma string que é retornada junto com um token de acesso.
nota
Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar a AWS por meio de uma interface de linha de comando ou uma API, use um endpoint do FIPS. Para ter mais informações sobre endpoints do FIPS disponíveis, consulte Federal Information Processing Standard (FIPS) 140-2
Um exemplo de solicitação GET para iniciar o OAuth fluxo e obter um token de acesso:
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
O seguinte ocorre durante o fluxo OAuth de autorização:
-
O usuário do aplicativo é solicitado a inserir o nome do WorkDocs site.
-
O usuário é redirecionado para a página de WorkDocs autenticação para inserir suas credenciais.
-
Após a autenticação ser bem-sucedia, o usuário visualizará a tela de consentimento na qual ele pode conceder ou negar a seu aplicativo a autorização para acessar o WorkDocs.
-
Após o usuário escolher
Acceptna tela de consentimento, o navegador dele será redirecionado à URL de retorno de chamada de seu aplicativo junto com o token de acesso e as informações da região como parâmetros de consulta.
Um exemplo de solicitação GET de WorkDocs:
GET https://myapp.com/callback?acessToken=accesstoken®ion=us-east-1&state=xyz
Além do token de acesso, o WorkDocs OAuth serviço também retorna region como um parâmetro de consulta para o WorkDocs site selecionado. Os aplicativos externos devem usar o region parâmetro para determinar o ponto final do WorkDocs serviço.
Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar a AWS por meio de uma interface de linha de comando ou uma API, use um endpoint do FIPS. Para ter mais informações sobre endpoints do FIPS disponíveis, consulte Federal Information Processing Standard (FIPS) 140-2
Invocando WorkDocs APIs
Após obter o token de acesso, o aplicativo poderá fazer chamadas de API para os serviços do WorkDocs.
Importante
Este exemplo mostra como usar uma solicitação GET curl para obter os metadados de um documento.
Curl "https://workdocs.us-east-1.amazonaws.com/api/v1/documents/{document-id}" -H "Accept: application/json" -H "Authentication: Beareraccesstoken"
Um exemplo de JavaScript função para descrever as pastas raiz de um usuário:
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); }); }
O quadro abaixo descreve uma invocação de exemplo de API baseada em 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()); }