カスタムアプリマネージャの更新
カスタムアプリケーションの管理の概要の動画は、英語版のブログでご覧いただけます。
Box管理コンソールのカスタムアプリケーション管理プロセスの更新をリリースしました。この記事では、リリースされた更新について確認いただき、Box Enterprise内で使用するカスタムアプリケーションを承認または有効化のリクエストをするための準備方法を説明しています。この記事を読み終えると、以下についての基本を理解できるようになります。
· 認証
· 承認
· アクセストークン
· アプリケーションスコープ
最初に、認証と承認の違いを理解することが重要です。認証とは、ユーザーが本人であることを確認するものです。たとえば、Boxにログインする際はユーザー名とパスワードを使用して認証を行います。認証後、リソースにアクセスしようとすると承認が行われます。承認とは、リクエストしたコンテンツに対するアクセス権限があるかどうかを確認するものです。
Boxでは、業界標準のAPI経由の認証として、標準のOAuth 2.0、サーバー認証 (JWT使用)、サーバー認証 (クライアント資格情報許可)、アプリトークン認証の4種類をサポートしています。
各認証タイプには、アクセストークンの取得のために安全な方法がそれぞれ用意されています。アクセストークンとは、開発者がAPI呼び出しを実行するために使用するキーです。
· 標準のOAuth 2.0では、ユーザーの本人確認にBoxを使用します。つまり、ユーザーがアプリケーションにアクセスしようとすると、ユーザー名とパスワードを入力するためにBoxのログイン画面にリダイレクトされます。ログインに成功すると、ユーザーは、自分の代わりに操作を実行するためのアクセス権限をアプリケーションに付与することができます。
· サーバー認証 (JWT使用) およびサーバー認証 (クライアント資格情報許可) では、開発者が独自のID管理システムを使用します。この2つの認証タイプを使用するアプリケーションでは、自動的にサービスアカウントが生成され、これは「アプリの管理者」と考えることができます。適切なスコープを有効にしたサービスアカウントは、多くの管理操作を実行できるため、使用前には必ず管理者の承認が必要になります。
· アプリトークン認証はJWTのサブセットであり、一部のAPI機能へのアクセスのみを許可します。このアプリの種類は、Box Viewを利用したプレビューを使用する場合のみ選択します。
承認のためにアプリケーションをレビューする際は、リクエストされたアプリスコープの確認が必要になります。アクセス権限を付与しすぎないようにするため、最初は不安に感じるかもしれませんが、原則として、APIはウェブアプリケーションと同じ制限に従います。つまり、ユーザーがウェブアプリケーションで実行できない操作は、API経由でも実行することができません。
アプリケーションスコープにより、アプリケーションが問題なく操作できるAPIエンドポイントが決まります。たとえば、「ユーザーを管理する」スコープが選択されていない場合、アプリケーションは、ユーザーの管理に関するAPI呼び出しを正常に実行することができません。
スコープはユーザーの権限と連動しているため、「Boxに格納されているすべてのファイルとフォルダの読み取りと書き込み」スコープを付与しても、Box Enterprise内のすべてのコンテンツに対するAPIアクセスが自動的にユーザーに許可されるわけではありません。認証済みユーザーが、所有またはコラボレーションしていて、編集するのに十分な権限レベルを持っているコンテンツに対して書き込み呼び出しを実行したときに、成功を示すAPIレスポンスを受け取れるようになります。
開発者コンソールに表示されるオプションを以下に示します。
JWT、アプリトークン、クライアント資格情報の例
開発者は、JWT、アプリトークン、またはクライアント資格情報のアプリケーションに自動プロセスを使用できます。開発者がアプリケーションの承認リクエストを送信すると、Boxのプライマリ管理者には次のようなメールが届きます。
[アプリをレビュー] ボタンをクリックすると、管理コンソールの [アプリ] タブが表示され、そこで、Enterprise内でのアプリケーションの承認または拒否をします。
アクセスが許可されると、このアプリケーション用に取得したアクセストークンでは、以下のことが可能になります。
· コンテンツの読み取り
· コンテンツの書き込み
· ユーザーの管理
· グループの管理
· App Userの管理
また、このトークンに関連付けられたユーザーはウェブアプリで持っているアクセス権限が有効になります。このユーザーがユーザーまたはグループの管理権限を持つ管理者でも共同管理者でもない場合は、このスコープが設定されているアプリケーションであっても、エラーが返されます。
アプリケーション承認後、管理コンソールの [カスタムアプリマネージャ] セクションに、Boxインスタンスに対して作成または承認されたその他のアプリケーションと並んで表示されます。
右上にある [アプリの追加] をクリックして、手動による承認フローに沿って追加することもできます。ポップアップウィンドウでアプリケーションのclient_idを入力するだけです。
開発者コンソールでアプリケーションの設定を変更したら必ず、Box管理者がアプリケーションを再度承認して変更を有効にする必要があることに注意してください。このプロセスの手順については、こちらを参照してください。
OAuth 2.0の例
ユーザー認証アプリケーションや標準のOAuth 2.0アプリケーションの管理と表示も可能になります。
デフォルトでは、Box Enterprise内のすべてのユーザーは、管理者の承認なしで独自のOAuth 2.0アプリケーションを有効にすることができます。これは、アプリケーションは、ユーザーがウェブアプリケーションでコンテンツを操作する場合と同じ方法でしかコンテンツを操作できないためです。
管理者であれば、デフォルトで未公開アプリケーションを無効にすることができます。無効にするには、[カスタムアプリマネージャ] 画面の右上にある [設定] ボタンを使用します。2つ目のオプションをオンに切り替えると、すべての未公開OAuth 2.0アプリケーションでは管理者による有効化が必要になり、サーバー認証済みアプリでは管理者による承認と有効化の両方が必要になります。
現在、他のアプリケーションの種類と同じ自動プロセスの導入に取り組んでいますが、それがリリースされるまでは、アプリケーションを手動で承認する必要があります。
管理コンソールの [アプリ] タブで、[カスタムアプリマネージャ] > [ユーザー認証アプリ] > [アプリの追加] の順にクリックします。
開発者は、開発者コンソールで作成したアプリケーションのクライアントIDを管理者に送信する必要があります。テキストボックスにクライアントIDを入力し、[次へ] をクリックします。これで、有効になったアプリケーションは、ユーザー認証アプリのリストに表示されます。今後、そのアプリケーションを同リストから無効にすることもできます。
詳細については、https://ja.developer.box.com/guides/security/を参照してください。