9日タグ:セキュリティプロファイル権限セットはじめに今岡です。このブログでは、書籍「Force.comのすべて」の誌面上の都合で十分お伝えできなかったことや、バージョンアップ時の新機能、開発時に役立つTipsなどをテラスカイのエンジニアからお届けします。データアクセスコントロールの検討は不可欠Force.comの活用が進むにつれ、そのプラットフォームには企業のコンプライアンスやプライバシーに関わる情報や財務情報など機密性の高い重要なデータを保有することになり、セキュリティはForce.comでアプリケーションを構築する上での重要テーマとなります。最優先で検討するポイント適切なユーザのみが適切なデータにアクセスできる状態とするこれはユーザに応じたデータ表示のコントロールが不可欠であり、Force.com組織として、社内や社外ユーザが適切な範囲のデータにアクセスできるようにする必要があるということです。データアクセスをコントロールする機能データアクセスのコントロールは基本的に以下の機能で構成されます。共有ルールオブジェクトに対するデータアクセスのベースデータアクセスのベースはプロファイルが管理します。)」がデータアクセスのベースとなります。オブジェクトに対する「すべてのデータ参照」「すべてのデータ変更」といった特別な権限もありますが、この設定を行うのは十分な検討及び慎重な適用が必要でしょう。データアクセスにおける落とし穴ユーザライセンスによってはデータアクセスが制限されるライセンスがあります。そのため、データアクセスを検討する上でユーザに割り当てるライセンスの種類は必ず念頭に置きましょう。※どのライセンスを使用してシステムを構築するかの検討はシステム導入前に行うべきものです。Free:使えるオブジェクトはないデータアクセスにおけるよくある間違いタブを非表示にするタブを非表示にすることにより、ユーザからのデータアクセスを制限できているという誤解はよくあります。Force.comでは全てのレコードは一意のIDで管理されており、一意のIDがわかればそのレコードにアクセスすることは可能です。(※レコードに対するアクセス権がある場合ですが。)また、オブジェクトのプレフィックスが分かればビューを表示させることも可能です。すればビューが表示されます。タブ非表示の誤解を詳細に説明するために、以下の要件があるとします。注文トランは商品マスタに対する参照項目を持っています。営業ユーザは、注文トラン入力時に商品マスタをルックアップで検索して設定します。システム管理者は商品マスタのメンテナンスを行い、営業ユーザは行いません。この要件の時、システム管理者は商品マスタのメンテナンスを行うため、商品マスタタブを表示させ、営業ユーザに対してはタブを非表示としただけではセキュリティは確保されません。営業ユーザが商品のIDが分かった場合、直接商品の詳細/編集ページを表示させることができるからです。そのため、営業ユーザが持つプロファイルに、商品マスタのCRUDは「参照」のみの設定しておく必要があるわけです。セキュリティの観点でページレイアウトを使用するユーザの種類に応じて、セキュリティの観点から特定の項目を「表示させない」といった要件はよくあります。この要件に対して、ページレイアウトを複数作成し、あるページレイアウトからは項目を非表示とする対処を考えた場合、その対応では不十分です。ページレイアウトによる対応では、詳細ページ/編集ページからは確かに項目を非表示とすることは出来ますが、レポートやビュー、あるいはAPIを使ったデータアクセスなどから見れる可能性があり、セキュリティは保証できません。そのため、この要件に対応する場合「項目レベルセキュリティ」を使用します。項目レベルセキュリティを使用した場合、詳細ページ/編集ページから非表示される以外にも適用されるため、セキュリティを保証することができます。APIアクセス項目レベルセキュリティを具体的に説明するために、以下の要件があるとします。注文トランと商品マスタがあります。注文トランは商品マスタに対する参照項目を持っています。注文トランの入力は、社内の営業ユーザ、および社外の販売店ユーザも行います。商品マスタには原価情報を持っており、原価情報は販売店ユーザに見せることはできません。この要件の時、原価情報に対して項目レベルセキュリティを設定するのは想像がつくと思います。ここで特に注意して頂きたいのは、全てのユーザが参照可能なオブジェクトであっても、社外ユーザが参照する場合には、社内ユーザと同じ情報の全てを見せるケースは少ないということに注意を払う必要があることです。権限セット権限セットは、プロファイルで規定されたシステムに対してできることを拡張します。権限セットは、プロファイルのようにオブジェクトレベルのCRUDや項目レベルセキュリティなどをユーザ単位に拡張することが可能です。Force.com上にアプリケーションを構築した後に、新たなアプリケーションを追加開発した場合、ユーザの利用方法の組み合わせ全てに対してプロファイルを再構成するのは非常に手間がかかります。このような時、権限セットを利用すると便利です。プロファイルを検討する上でのポイントプロファイルを検討する上でよくある間違いとして、プロファイルを会社組織の組織階層にマッピングさせて作ることが挙げられます。ある程度の企業規模の場合、組織階層は細分化され複雑であり、また組織変更も行われることでしょう。そのため、以下の検討ポイントを参考にプロファイルを検討すると良いでしょう。利用ユーザに適用されるライセンスは何なのか?おわりに初回ブログでは、データセキュリティの観点でプロファイルを取り上げました。目指す方もいらっしゃることでしょう。ここで触れた内容はTAの評価範囲に含まれますが、レビューボードでこのセキュリティのセクションを落とす人は70-80%もいるそうです。それだけ重要なテーマであり、正しい理解のもと最適なセキュリティ設計が求められているということでしょう。次回はレコードアクセスについてエントリしたいと思います。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。