dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]組織のパスワードポリシーをForce.com Migration Toolで変更する

開発やちょっとした検証用に作成した組織のパスワードが定期的に期限切れになると管理するのがつらいので
そういった組織についてはパスワードの有効期間を無期限に設定している。

f:id:dackdive:20150706200335p:plain

これを毎回手作業でやると面倒なので Force.com Migration Tool でやりたい、と思ってメタデータを調べてみた。

Salesforce Developers

SecuritySettings というメタデータが存在していて、その中の PasswordPolicies を使えばいけるらしい。
Salesforce Developers

コード

Security.settingssettings というディレクトリの下に置きます。

注意点

その1

SecuritySettings のページ の一番上に

パッケージマニフェストでは、「Settings」の名前を使用してすべての組織設定メタデータ型にアクセスします。詳細は「設定」を参照してください。

とあるので、package.xml に記述するときは SecuritySettings じゃなくて Settings にする。

Settings: Salesforce Developers

その2

「過去のパスワードの利用制限回数」が「制限なし」になっていると、パスワードの有効期間を変更できないらしい(UI からはできるのに。。。!)。
デプロイ時に下記のエラーが出ます。

Error: expiration: 組織でユーザのパスワードを記録していない場合、パスワードの有効期限を有効にできません。,

(英語)

Error: expiration: Password expiration cannot be enabled if your organization does not remember users' passwords.,

おわりに

他にも「パスワードポリシー」で設定できる項目はすべてメタデータとして設定することができるし
SecuritySettings のページにはパスワードポリシー以外にも「セッションの設定」や「ネットワークアクセス」のメタデータもあるので
興味があれば以下のページを見てみるといいかも。

https://developer.salesforce.com/docs/atlas.ja-jp.api_meta.meta/api_meta/meta_securitysettings.htm#SecuritySettingsPasswordPolicies

このテの設定画面は UI からしか操作できないと思い込んでたけど
逆にここに書いてないこと以外は全部 Force.com Migration Tool で設定できるということか。
Salesforce Developers