セールスフォースの豆知識2.0

セールスフォースの開発に役立つTipsをメインに、セールスフォースの新機能や関連ニュースなどをお届けします。

パッケージ開発でカスタムメタデータを使ってみた

こんにちは、遠藤です。
Cariot事業部で Cariot(キャリオット) の開発や運用をしています。

さて、今回はSalesforceのカスタムメタデータという機能についてです。

パッケージ開発の中でカスタムメタデータを使ってみたので、実際に使ってみて、便利に感じた点や注意点とかを紹介します。
カスタムメタデータ、「名前は聞いたことはあるけど、何が嬉しいんだろう?」とか「カスタム設定と何が違うんだろう?」みたいな方のヒントになれば幸いです。

それではどうぞ↓↓

続きを読む

API限定ユーザでバッチ登録させるには?

こんにちは、なかやまです。

Salseforceの世界は広く、全てを把握することは困難です。Salesforceは年に3回のリリースがあるのですが、そのリリースノートも最新版だと600ページを超えるボリュームになっており、エンジニアもキャッチアップが大変厳しいです。

そんな機能(や設定)は無い!と決めつける前に、少し調べることをおすすめします。

 

さて、今日のお話は"API限定ユーザ"についてです。 

f:id:flect_nakayama_san:20170605184921j:plain

 

それではどうぞ↓

続きを読む

Sandboxのメールアラートが動かない!?

こんにちは、なかやまです。

来週には夏がやってきますね!個人的に日本の夏というと7月〜8月を想像するのですが、Salseforceの季節的には来週から夏になります!

どういうことかというと、Salesforceの世界では年3回のリリースがあり、Spring・Summer・Winterとリリースタイトルがついてくるのですが、今度の6月11日(日)が日本で利用されているインスタンスのリリース日になります。そしてそのタイトルがSummer'17というわけです。

 

さてさて今週も「それゆけ!Salesforce」のお時間がやってまいりました。ブログを購読するだけで、ゆるくSalseforceの豆知識が身につきますよ^^

f:id:flect_nakayama_san:20170605184921j:plain

 

今日のお話は、「Sandboxのメールアラートが動かない!?」です。

Saleforce開発経験が長い人からすると、よくある話ですね。

 

それではどうぞ

続きを読む

Apexテストクラスで作成日が指定できない!?

こんにちは、なかやまです。

Salesforceで開発して早6年になります。Salesforceの開発は面白いですよね。SaaSでカスタマイズしたり、PaaSでゴリッと開発してみたり。またはAWS開発したサイトと組み合わせてみたりと、毎日楽しんで開発しています♪

 

今日のお話は同僚から聞いた、「テストクラスで作成日が指定できない!?」です。

それではどうぞ

続きを読む

【Salesforceセキュリティの落とし穴 : 01】プロファイル設定

f:id:shns:20170508172427p:plain

本連載について

こんにちは、いしいです。 今回より連載「Salesforceセキュリティの落とし穴」を開始します。

Salesforceは、管理画面から「ポイント&クリック」操作で、簡単にシステム開発が行えます。また「Apexコード」や「Visualforceページ」を使い、本格的なシステム開発を行うこともできます。

しかしながら、開発中にハマリがちな、セキュリティの落とし穴がいくつかあります。この連載では、落とし穴の内容および、回避方法について、紹介をしていきます。

本連載が、セキュアなSalesforceシステム開発のお役に立てば幸いです。

なお、本連載は、Salesforce環境での開発経験がある方を対象としています。

プロファイル設定の落とし穴

隠しているタブも見える

「オブジェクトタブの設定」では、タブ毎に、下記3つの設定から選ぶことになります。

  • デフォルトで表示
    • 当該タブを、デフォルトで表示します(画面幅が狭い場合は「▼」ボタンを押すとタブ表示)
  • デフォルトで非表示
    • 当該タブを、デフォルトでは表示しません(タブの「+」ボタンを押すと表示可能)
  • タブを隠す
    • 当該タブの存在を隠します(タブの「+」ボタンを押しても表示されません)

f:id:flect_tech:20170421175113p:plain

とあるオブジェクトにVisualforceページ経由に限ってアクセスさせたい場合、 オブジェクトタブについては、「タブを隠す」を選ぶこともあるかと思います。

タブは画面に表示されず、タブの「+」ボタンを押してもタブ一覧に表示されません。 さらに、 隠されているタブが紐づくオブジェクトは「グローバル検索」の対象からも外れます。

これでオブジェクトタブ経由のアクセスを止められる気がしますよね?

ただ、タブは隠されているだけであって、アクセス禁止にはなっていません。 ここにセキュリティの落とし穴があります。

実は、隠されているタブにも下記URLでアクセスすることができてしまいます。

よって、「タブを隠す」状態のオブジェクトタブは、アクセス可能であることを前提に、セキュリティ設定を行う必要があります。

対応方針
1.オブジェクトタブを作らない

そもそも、オブジェクトタブを作られていなければ、タブを表示できません。 ただ、全ユーザが、オブジェクトタブ経由でレコードにアクセスできなくなります。 特に、システム管理者が、オブジェクトタブ以外からデータメンテナンスできるよう考慮する必要があります。

2.オブジェクト参照権限を外す

オブジェクトタブが作られていても、タブが紐づくオブジェクトの参照権限がなければ、タブを表示されません。 ただ、オブジェクト権限の有無は、Visualforceページの動作にも影響を及ぼします。 既存のVisualforceページがある場合、権限を外すとページ自体のアクセスが出来なくなったり、「<apex:」から始まるタグの出力結果が空になってしまうこともあるので、注意が必要です。

3.オブジェクトタブを見られても困らない状態にする

オブジェクトタブの表示内容を見られても問題ない状態にする方針も考えられます。 実際の設定の一例は以下の通りです。

  • プロファイルからシステム管理者権限「リストビューを作成およびカスタマイズ」を外す
  • リストビューの編集画面「表示を制限」において、必要とするユーザのみ表示されるよう設定追加する

ページレイアウトに表示していない項目にもアクセスできる

オブジェクトにカスタム項目を追加する際、項目レベルセキュリティの設定を後回しにしてしまうことは無いでしょうか。

ページレイアウトから項目を外してしまえば、Salesforce標準のレコード参照画面には表示されないため、 項目へのアクセスが出来なくなっている気がしてしまいます。

ただ、ページレイアウトに表示されない項目にも、アクセスする方法はあります。 ここがセキュリティの落とし穴となります。

  • レポートからアクセスする
    • 項目別セキュリティで参照権限をもっていれば、レポートの一覧項目に表示できます。
  • ブラウザツールなどを経由してアクセスする
対応方針

基本的なことですが、項目別セキュリティを適切に設定することが大事です。

また、上記「Salesforce Inspector」は、SOQLの実行など様々な操作を行うことができ、開発者にとっては強力なツールです。 しかしながら、一般利用者がこのツールを使うことはセキュリティのリスクとなります。 よって、一般利用者のプロファイルからはシステム管理者権限「API の有効化」を外し、使用できないようにしておくことをお勧めします。

f:id:flect_tech:20170421175120p:plain

次回予告

次回は、ApexコードにおけるCRUDチェックについて紹介します。