やることリスト
自分はだいたいこんなことやってますよっ、てやつ。適宜ご参考にして下さい。
1. マイドメインを登録する
なぜかデフォルトの (ap|ap2).salesforce.com のままで使っている人がいまだに多いのだけど、よく慣れたSalesforce開発者は自分用の組織を3桁くらい持っているのが普通であり、そのうちの2,3は同時にログインすることになったりするので、同一ドメインでログインCookieが上書きされるのきついのです。いちいち他のブラウザとか立ち上げてられない。
2. プロファイルのIPアドレス制限を 0.0.0.0 - 255.255.255.255 に設定
たかだかDE組織にいちいちIP制限かけられたくないよ、という場合。これ設定しておくと他人とアカウント共有する場合に毎回承認メールが飛ぶのを防ぐ効果もある。
3. パスワードポリシーの有効期間をNeverに
90日で自動エクスパイアとかうざいので。そもそも強制リセット意味あるのかね。
上記の自動化
上記のうち1以外はMetadata API経由でスクリプト化することが可能。画面開かなくてもコマンドラインでできる。たぶんいちばん楽なのはJSforceのCLIを使う方法。
$ jsforce
> .authorize
logged in as user01@mydemo.example.org
> metadata.update('SecuritySettings',{fullName:'Security',passwordPolicies:{expiration:'Never'}})
{ fullName: 'Security', success: true }
> metadata.update('Profile', {fullName:'Admin',loginIpRanges:{startAddress:'0.0.0.0',endAddress:'255.255.255.255'}})
{ fullName: 'Admin', success: true }
1.もスクレイピングで何とかなりそうだけど、そこまではあまりやりたくない&自動化沼にはまりそう。これぐらいで十分。
ちなみにJSforceの .authorize
コマンドはOAuth2でリフレッシュトークンまで取得できるので、一旦セットアップしておくととても便利です。Zsh環境ならjsforce-zsh-completions使えば接続済みのアカウントから補完できるので
$ jsforce -c admin@
-- connections --
admin@demo01.example.org admin@demo02.example.org
admin@mypartner.example.net admin@mycustomer.example.com
みたいにして接続先を選んでパスワード要らずのサインインができます。
ただし取得したリフレッシュトークンはOSのファイルに保存されてるので取扱には注意しましょう。