注意: Amazon WorkDocs では、新しい顧客のサインアップとアカウントのアップグレードは利用できなくなりました。移行手順については、Amazon WorkDocs からデータを移行する方法
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ユーザーアプリケーションの認証とアクセス制御
Amazon WorkDocs ユーザーレベルのアプリケーションは、Amazon WorkDocs コンソールを介して登録および管理されています。開発者は、各アプリケーションに対する固有の ID が提供される、Amazon WorkDocs コンソールの My Applications
ページでアプリケーションを登録する必要があります。登録時に、開発者はリダイレクト URI を指定して、アクセストークンとアプリケーションスコープを受け取る必要があります。
現在、アプリケーションは登録されているのと同じ AWS アカウント内の Amazon WorkDocs サイトにのみアクセスできます。
内容
Amazon WorkDocs API を呼び出すためのアクセス権限の付与
コマンドラインインターフェイスのユーザーには、Amazon WorkDocs とへのフルアクセス権限が必要です。 AWS Directory Service権限がないと、どの API 呼び出しでも不正リソースアクセス例外メッセージが返されます。次のポリシーは完全な権限を付与します。
{ "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": "*" } ] }
読み取り専用のアクセス許可を付与する場合は、このポリシーを使用します。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "workdocs:Describe*", "ds:DescribeDirectories", "ec2:DescribeVpcs", "ec2:DescribeSubnets" ], "Effect": "Allow", "Resource": "*" } ] }
ポリシーでは、最初のアクションによってすべての Amazon WorkDocs Describe
オペレーションへのアクセス権が付与されます。DescribeDirectories
アクションは、 AWS Directory Service ディレクトリに関する情報を取得します。Amazon EC2 オペレーションにより、Amazon WorkDocs は VPC とサブネットのリストを取得できるようになります。
API 呼び出しでのフォルダー ID の使用
API 呼び出しがフォルダにアクセスするときは必ず、フォルダ名ではなくフォルダ ID を使用する必要があります。たとえば、client.get_folder(FolderId='MyDocs')
を渡した場合、API 呼び出しは UnauthorizedResourceAccessException メッセージと次の 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.
これを回避するには、フォルダーの URL にある ID を使用してください。
.site.workdocs
/index.html#/folder/abc123def456ghi789jkl789mno4be7024df198736472dd50ca970eb22796082e3d489577
その ID を渡すと、正しい結果が返されます。
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'}}
アプリケーションの作成
Amazon WorkDocs 管理者として、以下のステップを使用してアプリケーションを作成します。
アプリケーションを作成するには
-
Amazon WorkDocs コンソール (https://console.aws.amazon.com/zocalo/)
を開きます。 -
[マイアプリケーション]、[アプリケーションの作成]の順に選択します。
-
次の値を入力します。
- アプリケーション名
-
アプリケーションの名前。
- Email(メール)
-
アプリケーションに関連付るメールアドレス。
- Application Description(アプリケーションの説明)
-
アプリケーションの説明。
- リダイレクト URI
-
Amazon WorkDocs がトラフィックをリダイレクトする場所です。
- Application Scopes(アプリケーションスコープ)
-
アプリケーションに設定するスコープ (読み取りまたは書き込みのいずれか)。詳細については、「アプリケーションスコープ」をご参照ください。
-
[作成] を選択します。
アプリケーションスコープ
Amazon WorkDocs は、以下のアプリケーションスコープをサポートしています。
-
コンテンツを読み取り (
workdocs.content.read
)、アプリケーションに以下の Amazon WorkDocs API へのアクセス権を付与します。-
取得*
-
説明*
-
-
コンテンツを書き込み (
workdocs.content.write
)、アプリケーションに以下の Amazon WorkDocs API へのアクセス権を付与します。-
作成*
-
更新*
-
削除*
-
ジョブの開始*
-
中止*
-
追加*
-
削除*
-
Authorization
アプリケーション登録が完了後、アプリケーションはすべての Amazon WorkDocs ユーザーに代わって承認をリクエストすることができます。これを行うには、アプリケーションは Amazon WorkDocs OAuth エンドポイントにアクセスし、https://auth.amazonworkdocs.com/oauth
、以下のクエリパラメータを提供する必要があります。
-
[必須]
app_id
— アプリケーションが登録されている場合に生成されるアプリケーション ID。 -
[必須]
auth_type
— リクエストの OAuth タイプ。サポートされている値はImplicitGrant
です。 -
[必須]
redirect_uri
— アプリケーションがアクセストークンを受信するために登録されたリダイレクト URI。 -
[オプション]
scopes
— スコープのカンマ区切りのリスト。指定しない場合、登録時に選択されたスコープのリストが使用されます。 -
[オプション]
state
— アクセストークンとともに返される文字列。
注記
コマンドラインインターフェイスまたは API を使用して AWS にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、[連邦情報処理規格 (FIPS) 140-2 ]
アクセストークン取得のための OAuth フローを開始するためのサンプル GET リクエスト。
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
以下は、OAuth 認可フロー中に行われます。
-
アプリケーションユーザーは、Amazon WorkDocs のサイト名を入力するように指示されます。
-
ユーザーは Amazon WorkDocs の認証ページにリダイレクトされ、認証情報を入力します。
-
認証に成功すると、ユーザーには同意画面が表示され、ユーザーはアプリケーションに Amazon WorkDocs へのアクセス許可を付与または拒否できます。
-
ユーザーが同意画面で
Accept
を選択すると、ブラウザは、クエリパラメータとしてのアクセストークンとリージョン情報とともに、アプリケーションのコールバック URL にリダイレクトされます。
Amazon WorkDocs からの GET リクエストのサンプル。
GET https://myapp.com/callback?acessToken=
accesstoken
®ion=us-east-1
&state=xyz
アクセストークンに加えて、Amazon WorkDocsOAuth サービスは選択した Amazon WorkDocs サイトのクエリパラメータとして region
も返します。外部アプリケーションは、Amazon WorkDocs サービスエンドポイントを確定するために、 region
パラメータを使用する必要があります。
コマンドラインインターフェイスまたは API を使用して AWS にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、[連邦情報処理規格 (FIPS) 140-2 ]
Amazon WorkDocs API を呼び出す
アクセストークンの取得後、アプリケーションは Amazon WorkDocs サービスへの API 呼び出しを行うことができます。
重要
この例は、curl GET リクエストを使用してドキュメントのメタデータを取得する方法を示しています。
Curl "https://workdocs.us-east-1.amazonaws.com/api/v1/documents/
{document-id}
" -H "Accept: application/json" -H "Authentication: Beareraccesstoken
"
ユーザーのルートフォルダを記述するサンプル JavaScript 関数。
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); }); }
Java ベースの API 呼び出しサンプルは、以下のとおりです。
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()); }