概要

Boxは、クラウドコンテンツ管理とファイル共有のためのオンラインストレージサービスです。
YESODではBoxと連携して以下の機能を提供します。
  • Boxのアカウントの作成
  • Boxのロール・グループの割当付与・剥奪
  • Boxのアカウント作成時の初期フォルダーの作成
    • 既存のフォルダーの更新・削除機能の提供はなし。

コネクタ仕様

業務アセットの作成

1. カスタムアプリを作成する(Boxでの作業)

  1. 開発者コンソール > マイPlatformアプリ > Platformアプリの作成
  1. アプリの種類は、カスタムアプリを選択する。
  1. 認証方法は、サーバー認証(クライアント資格情報許可)を選択する。
  1. 作成されたアプリを選択し、構成タブに遷移する。
  1. アプリアクセスレベルをアプリ + Enterpriseアクセスを選択する。
  1. アプリケーションスコープで以下の項目にチェックが入っていることを確認する。
    1. ユーザーを管理する
    2. グループを管理する
    3. Enterpriseのプロパティを管理する
  1. 高度な機能の以下の項目にチェックを入れる
    1. as-userヘッダーを使用してAPIコールを行う
    2. ユーザーアクセストークンを生成する
  1. 承認作業を行う。(管理者のメールアドレスに承認依頼のメールが送信されます。)
💡
設定イメージ
⚠️
2回目以降の設定変更する場合
Boxのカスタムアプリは変更のたびに管理者の承認が必要になります。
最初の承認の場合はメールが送信されますが、再承認の場合はメールが送信されません。そのため、2回目以降は管理コンソールに遷移して承認作業を行う必要があります。
1回目と2回目以降でフローが変わるのでご注意ください。
 
参考:
 

2. 業務アセットの作成(YESODでの作業)

  1. Boxの開発コンソールから「エンタープライズID」「クライアントID」「クライアントシークレット」に入力する
  1. 接続を選択して同期が完了したら成功
💡
Boxでの取得場所
エンタープライズID
クライアントIDクライアントシークレット

基本設定

  • パスワードの作成は対応していません。
    • 理由:BoxのAPIではユーザーはすべてInviteのみでパスワードを扱えないため
💡
パスワードの設定イメージ
  1. 作成したユーザーのメールアドレスにログインのURLが送信される。
  1. パスワードの作成をしてログインができるようになる。

割当種別

ロール

  • Boxの管理コンソールのアクセス権を管理します。
  • タイプ:Priority項目
  • 選択可能項目
    • coadmin(共同管理者):管理者権限を持つユーザー
    • user(管理対象ユーザー):管理者権限を持たないユーザー

グループ

  • グループを使用することで複数のユーザーに一括でフォルダーのアクセス権限を付与できます。
  • タイプ:Multiple項目
  • 選択可能項目:APIから取得する。

同期する項目

必須項目

項目マッピング項目YESOD項目説明
loginuser.loginuser.emailStringログイン用メールアドレス ※ 変更不可(管理画面でも変更不可)
nameuser.nameuser.familyNameLocalPreferred + " " + user.givenNameLocalPreferredStringユーザー名

任意項目

マッピング項目入力形式説明BOXキー名
user.languagestringユーザーの言語(ISO 639-1形式)language
user.timezonestringタイムゾーンtimezone
user.space_amountintegerストレージ使用量(バイト)。-1で無制限space_amount
user.job_titlestring役職(最大100文字)job_title
user.phonestring電話番号(最大100文字)phone
user.addressstring住所(最大255文字)address
user.is_sync_enabledbooleanBox Sync使用可否is_sync_enabled
user.is_external_collab_restrictedbooleanユーザーが社外のユーザーとのコラボレーションを許可されているかどうかis_external_collab_restricted
user.is_exempt_from_device_limitsboolean会社のデバイス制限からユーザーを除外するかどうかis_exempt_from_device_limits
user.can_see_managed_usersbooleanユーザーが自身の連絡先リストで会社の他のユーザーを参照できるかどうかcan_see_managed_users
user.is_exempt_from_login_verificationbooleanユーザーが2要素認証を使用する必要があるかどうかis_exempt_from_login_verification
user.email_aliases[0].emailStringの配列メールエイリアス(企業の登録済みドメインのみ) ※ 洗い替えになっているため、指定していないメールエイリアスは削除されます。 ※ nullを指定した場合は、すべてのメールエイリアスが削除されます。email_aliases[]
user.initial_folder_enabledboolean新規フォルダーを作成するかどうかのオプション(未設定の場合はfalse)-
user.initial_folder_pathString親フォルダーのフルパス-
user.initial_folder_nameString新規フォルダーの名称-

検討の結果、対応外とした項目

項目内容
statusアカウント状態("active", "inactive", "cannot_delete_edit", "cannot_delete_edit_upload") * ユーザーの有効・無効をactive/inactiveで管理している。 * 同じ設定項目で、ユーザーの権限的な部分も設定できる。
enterprisenullにすると会社メンバーから外れ無料ユーザーになる。
tracking_codes[]トラッキングコード(管理コンソールで事前設定が必要)
is_password_reset_requiredパスワードリセットを義務付けるか(false→trueのみ)
notification_email.email代替の通知用メールアドレス
💡
画面イメージ
アカウント作成直後は、通知メールが非活性でパスワードリセットに関する項目も存在しない。
 
パスワード設定後に通知メールとパスワードリセットについて入力可能になる。

ドキュメントに記載されているが、対応外とした項目

マッピング項目入力形式説明BOXキー名
user.notifyboolean会社メンバーでなくなった後もメール受信可能かnotify
  • notifyはAPIドキュメントに記載がありますが、以下の理由から対応外としています。
    • Boxが提供しているSDKに項目がない。
    • curlでAPIを直接実行しても値の変動がない。
    • 管理画面に対応する項目がない。