SalesforceにおけるsetPasswordとは?設定方法や注意点をご紹介
IT・技術関連
更新日:2024.09.05


SalesforceのsetPasswordとは?
SalesforceのsetPasswordとは、特定のユーザーに指定されたパスワードの引数を設定する機能のことです。画面から設定することも開発者コンソールでプログラミングコードを使用して設定することも可能です。
例えば、1ヶ月や1年、半年など一定の期間でセキュリティのためにIDやパスワードを変更する際に使用します。Apexを使用して設定することが多いですが、C#やJavaを使用する方法もあるのです。
今回は、画面から設定する方法と開発者コンソールからプログラミング技術を使用して設定する方法を分けて紹介します。注意点に関してもサンプルを用いて説明していきます。また、パスワードポリシーに関しても画面設定の中で紹介していきましょう。
SalesforceのsetPasswordについての概要

SetPasswordResult setPasswordResult = connection.setPassword(ID userID, string password);
ユーザーやセルフサービスユーザーのパスワード設定にsetPassword()を使用してパスワードを変更する方法です。例えば、クライアントとなるアプリケーションが、各ユーザーのパスワードを指定してもらいます。
システム管理者がユーザーパスワード変更のためにsetPassword()を使用するのです。
Javaを使用したサンプルコード
以下が、Javaを使用したサンプルコードです。ユーザーIDをパスワードパラメータで受け取って、指定のユーザーパスワードをsetPassword()で設定したサンプルです。public void doSetPassword(String userId, String newPasswd) {
try {
SetPasswordResult result = connection.setPassword(userId, newPasswd);
System.out.println("The password for user ID " + userId + " changed to "
+ newPasswd);
} catch (ConnectionException ce) {
ce.printStackTrace();
}
}
C#を使用したサンプルコード
C#を使用したサンプルコードになります。ユーザーIDをパスワードパラメータで受け取って、指定のユーザーパスワードをsetPassword()で設定したサンプルです。public void doSetPassword(String userId, String newPasswd)
{
try
{
SetPasswordResult result = binding.setPassword(userId, newPasswd);
Console.WriteLine("The password for user ID " + userId + " changed to "
+ newPasswd);
}
catch (SoapException e)
{
Console.WriteLine("An unexpected error has occurred: " +
e.Message + "\n" + e.StackTrace);
}
}
SalesforceのsetPasswordの注意点

setPasswordが使えないユーザーについて
SalesforceのsetPassword()は基本的にApexクラスを使用して変更処理を行います。SalesforceのsetPassword()は、ユーザーIDと新しく設定したいパスワードを引数として渡します。 しかし、setPassword()を使用できないユーザーもいるのです。setPassword()の基本的な構文は以下になります。System.setPassword(UserInfo.getUserId(), newPassword);
例えば、社内のユーザーやカスタマーユーザーはエラーが起きず、問題ないく変更ができたとしましょう。しかし、コミュニティユーザーはパスワードの変更ができないとします。
原因としては、サイトユーザーと同じとシステムに見なされていたなどほかのユーザーと同一視されてしまう場合があります。構文があっている場合は、他の視点で原因を探るといいでしょう。
ユーザーに仮パスワードを設定
SalesforceのsetPasswordでユーザーに一括で仮パスワードを設定する方法と注意点について説明します。 パスワードリセットを行う際にユーザーにメールを送れない、ログイン可能なIPとメールのネットワーク範囲が異なる、同じ仮パスワードを一括で設定したいなど理由はさまざまです。ユーザーパスワードを設定する場合は、開発者コンソールから設定します。 開発者コンソールから「デバッグ」、「Open Execute Anonymous Window」で匿名性のApexを設定しましょう。一括で行う場合は下記サンプルを参考にしましょう。List users = [SELECT Id, Username
FROM User
WHERE isActive = true
ORDER BY Username
];
for(User u : users){
System.setPassword(u.Id, 'Salesforce0000');
}
一括で仮パスワードを設定する注意点
一括で仮パスワードをユーザーに設定したい場合は、いくつか注意点があります。まず、setPassword()を使用して一括でユーザーに仮パスワードを設定するには、人数に制限があります。 アクティブユーザーが151人以上いる場合、ガバナ制限に引っ掛かり、エラーが発生するのです。エラーは「System.LimitException: Too many DML statements: 151」です。 理由としては、パスワードを設定のために各呼び出しで1つのDMLステートメントとされるため、150人より多い人数では、機能ができないためエラーが起こります。また、setPassword()の一括で行うパスワードの変更にはガバナ制限にも気を付ける必要があります。 パスワードを変更したくないユーザーまでパスワードを変更してしまう場合があるのです。失敗しないよう、注意して行うようにしましょう。SalesforceのsetPasswordを活用しよう

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。