概要
目的
このガイドの目標は、Boxの管理対象ユーザーのプロビジョニング解除に必要なAPIコールについて説明することです。 実行する必要がある特定のAPIコールの概要を、以下で説明します。
注意事項
このガイドは、APIコールを行うスクリプトやアプリケーション内でビジネスロジックを構築する方法については扱いません。 開発者向けポータルには、複数のウェブプログラミング言語の便利なSDKが用意されていますので、活用してください。
プロビジョニング解除用のBox Command Lineツール
ユーザーのプロビジョニング解除を1回だけ行い、SDK管理プロセスをセットアップしたくない場合は、Boxのコマンドラインツールの機能を使ってユーザーをプロビジョニング解除します。 開発者は、コマンドラインを使ってアプリケーションを簡単に操作できます。
Box CLIツールの使用を始めるには、Getting Started (はじめに) ドキュメントを確認してください。
この方法を採用して、SDKを使わずにユーザーをプロビジョニング解除する場合は、前提条件セクションを飛ばしてプロビジョニング解除プロセスセクションに進んでください。
前提条件
アプリの作成
作業を始める前に、Boxの開発者向けポータルにBoxアプリがセットアップされていることを確認してください。 このプロセスにはBox Developers入門ガイドが参考になります。すぐに作業を始めたい場合は、アプリの作成へ進んでください。
認証
Box APIを初めて使う際に開発者が直面する大きな課題の1つが、認証です。 BoxではOAuth 2.0を使用して、特定のユーザーとしてBoxでアクションを実行するアプリを承認します。 この場合、そのユーザーはBoxインスタンス内で何らかの管理者 (または共同管理者) である必要があります。 OAuthプロセスを理解することは大変なので、まずOAuthを使用した認証ガイドを参照してください。 OAuth認証プロセスによりアクセストークンとリフレッシュトークンが生成されます。アクセストークンは、Boxに対して実行するすべてのAPIコールで使用します。
As-User機能
下記の特定のステップでは、アプリケーションは管理対象ユーザーとしてAPIコールを実行できる必要があります。 これは、Box開発者コンソールの [構成] タブで有効にできます。 JWT認証を使用している場合は、必ずアプリケーションを再承認し、新しいトークンペアを取得して、変更を有効にしてください。
サービスアカウント
ユーザーのコンテンツを別のBoxユーザーに移してから削除したい場合、スクリプトを実行する前に該当ユーザーのアカウントをBoxに作成する必要があります。 また、そのユーザーのBoxユーザーIDを入手する必要もあります。これは、会社ユーザーを取得するエンドポイントを呼び出すことでプログラム的に取得できます (あるいはBox担当者にお問い合わせください)。
プロビジョニング解除プロセス
Boxのユーザーをプロビジョニング解除するには、いくつかの手順があります。 これらの手順は、ユーザーが所有する既存コンテンツをどう管理するかによっては省略できます。 また、必要な手順はそのコンテンツの扱い方に応じて変わります。 考えられるすべての手順の概要を以下に示します。
- ユーザーを非アクティブステータスにする
- この操作により、ユーザーは即座にすべてのアプリ (Box Sync、Mobileなど) からログアウトします。
- このユーザーが所有するフォルダのコラボレータは、そのユーザーが非アクティブになっている間、コラボレーションしているコンテンツにアクセスできなくなります。
- 残っているコンテンツを汎用サービスアカウント (または別のユーザー) に移す
- ユーザーアカウント (およびアカウントに残っているすべてのコンテンツ) を削除またはダウングレードする
必要なすべてのAPIコールを含む各手順の詳しい説明については、以下の各セクションを参照してください。
ユーザープロビジョニング解除用のBox Command Lineの使い方
操作
|
コマンドライン入力
|
注
|
|
1.
|
Box内の全ユーザーをリストアップする
|
$ box users
|
フォーマットするには「--csv」フラグを追加します。
ファイルに保存するには「-s」を追加します。
|
2.
|
単一のユーザーが所有するコンテンツを移行する
|
$ box users:transfer-content {USERID} {NEWUSERID}
|
|
3.
|
1回の操作で複数のユーザーのコンテンツをまとめて移行する
|
$ box users:transfer-content --bulk-file-path='./example.csv'
|
想定される入力 (例):
546781、100001
この操作により、ユーザー「546781」のコンテンツがユーザー「100001」に移動します。
|
4.
|
単一のユーザーを削除する
|
$ box users:delete {USERID}
|
|
5.
|
1回の操作で複数のユーザーをまとめて削除する
|
$ box users:delete --bulk-file-path='./example.csv'
|
想定される入力 (例):
546781
この操作により、IDが「546781」のユーザーが削除されます。
|
ユーザープロビジョニング解除用のBox SDKの使い方
Box内の全ユーザーのリストを取得する
ユーザーをプロビジョニング解除するには、Boxでユーザーを非アクティブ化および/または削除する必要があります。 Active Directoryで非アクティブ化されているBoxユーザーを把握するには、BoxユーザーのステータスとActive Directoryユーザーのステータスを比較します。 以下の手順で、ユーザーIDとメールアドレスを含むBox内の全ユーザーのリストを取得できます。 このメールアドレスを使用してActive Directoryをポーリングし、そのユーザーが非アクティブ化されているかどうかを確認します。 非アクティブ化されていた場合、本ガイドの続きの部分にはBoxユーザーIDを使用します。 コールはすべて管理者アカウントから実行する必要があることに注意してください。
操作
|
API URLエンドポイント
(ドキュメントへのリンク)
|
補足
|
|
1.
|
処理対象のBoxユーザーIDを探す
|
リクエストURLパラメータ (省略可)
応答:
|
残っているコンテンツを汎用サービスアカウントに移す
ユーザーのアカウントに残っているコンテンツ (または、この時点までコンテンツに影響を与えていない場合はすべてのコンテンツ) を汎用サービスアカウントに移すことができます。 この操作を行うには、そのユーザーがBoxの既存ユーザーであり、そのユーザーのユーザーIDを把握している必要があります (上記「前提条件」参照)。 また、ユーザーの全コンテンツを格納するコンテナフォルダを作成する必要があります。こうすることで、以前そのフォルダで所有されていたコンテンツを今後検索しやすくなります。
コールはすべて管理者アカウントから実行する必要があることに注意してください。
操作
|
API URLエンドポイント
(ドキュメントへのリンク)
|
補足
|
|
1.
|
ユーザーのすべてのコンテンツをサービスアカウントに移す
|
*{USER_ID}には、コンテンツを移すユーザーのBox ID (上記の手順で取得) を指定します。
|
リクエストボディパラメータ:
応答:
|
2.
|
ユーザーのメールアドレスを含むフォルダ名に変更する
(省略可)
|
リクエストヘッダー:
リクエストボディパラメータ:
応答:
|
サービスアカウントに移した後の新規作成フォルダに関するその他の情報
フォルダ移動エンドポイントで新規作成したフォルダには、次の属性があります。
Folder Name (フォルダ名): [ユーザー名] のファイルとフォルダ
Folder Description (フォルダの説明): このフォルダには、[ユーザー名] が以前所有し、エンタープライズ管理者によって転送されたファイルが格納されます。 ご質問がある場合は、[エンタープライズ管理者の名前とメールアドレス] にお問い合わせください。
ユーザーを削除またはダウングレードする
ユーザーをプロビジョニング解除するには、Boxでユーザーを非アクティブ化および/または削除する必要があります。 非アクティブ化は、ユーザーをプログラムで削除する場合は省略できる最初の手順です。ただし、ユーザーをプログラムで削除しない場合、これは最低限必要な手順となります。 ユーザーを非アクティブ化すると、そのユーザーは即座にすべてのアプリ (Box Sync、Mobile、サードパーティ製アプリなど) からログアウトします。 また、ユーザーのすべてのコンテンツが一時的に凍結されます。 このユーザーが所有するフォルダのコラボレータは、そのユーザーが非アクティブになっている間、コラボレーションしているコンテンツにアクセスできなくなります。 非アクティブステータスは、ユーザーのコンテンツの移動先を判断する間の「保持期間」として一時的にのみ使用されます。 コールはすべて管理者アカウントから実行する必要があることに注意してください。
操作
|
API URLエンドポイント
(ドキュメントへのリンク)
|
補足
|
|
1.
|
ユーザーを削除する
|
リクエストボディパラメータ:
応答:
|
操作
|
API URLエンドポイント
(ドキュメントへのリンク)
|
補足
|
|
1.
|
ユーザーを「Lite」(無料) アカウントにダウングレードする
|
リクエストボディパラメータ:
応答:
|
その他の考慮事項
- スクリプトの実行対象となるユーザーを判断する手段が必要です。
- 特定の操作でスクリプトを開始しますか? それとも、スクリプトを定期的に実行して、非アクティブ化の対象となるActive Directory内のユーザーを確認しますか?
- スクリプトを実行するユーザーのログイン情報 (メールアドレス) を取得する手段か、そのユーザーのBoxユーザーIDが必要です。