Newer Version Available
UserManagement クラス
名前空間
使用方法
register および deregister メソッドは、ID 検証方法を登録および登録解除するために使用します。obfuscateUser メソッドは、ユーザの要求に応じてユーザオブジェクトデータをスクランブルするために使用します。formatPhoneNumber メソッドは、電話番号を正しく書式設定するために使用します。
このクラスは、API バージョン 43.0 で導入されています。以前のバージョンでは使用できません。
UserManagement メソッド
UserManagement のメソッドは次のとおりです。
deregisterVerificationMethod(userId, method)
署名
public static void deregisterVerificationMethod(Id userId, Auth.VerificationMethod method)
パラメータ
- userId
- 型: Id
- 検証方法の登録を解除しているユーザのユーザ ID。
- method
- 型: Auth.VerificationMethod
- ユーザの ID の検証に使用する検証方法。
戻り値
型: void
使用方法
このメソッドを使用して、既存の ID 検証方法の登録を解除します。たとえば、ユーザは電話番号が変更されたときに、電話番号の登録を解除できます。ID 検証方法を登録できるのはエンドユーザのみですが、登録の解除は開発者���ユーザが実行できます。カスタム登録ページを実装するときは、この動作に留意してください。
このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
formatPhoneNumber(countryCode, phoneNumber)
署名
global static String formatPhoneNumber(String countryCode, String phoneNumber)
パラメータ
使用方法
このメソッドを使用して、ユーザの携帯電話番号が Salesforce で要求される形式になるようにします。次に、このメソッドの戻り値を使用して、ユーザのレコードの mobile 項目を更新します。この携帯番号は、SMS ベースの ID 確認に使用されます。たとえば、携帯電話番号は他の ID 検証方法と共に Auth.VerificationMethod 列挙に保存されます。このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
ユーザが携帯番号の入力時に使用できる形式を次にいくつか示します。
- +1, (415) 555-1234 (+ 記号、括弧、ダッシュを含む)
- 1, 4155551234 (数字のみで記号を含まない)
- 1 , 415-555-1234 (余分なスペース)
次の例を考えてみます。
- 正しい例:
- formatPhoneNumber('1', '4155551234');
- formatPhoneNumber('+1','(415) 555-1234');
- formatPhoneNumber('1', '415-555-1234');
- 国コードと携帯番号が分かれているため、正しくない例:
- formatPhoneNumber(null, '+1 415-555-1234');
- エラーは発生しないが、適切に機能しない可能性が高い例:
- formatPhoneNumber('+1', '+1 (415) 555-1234');
formatPhoneNumber コードの例
formatPhoneNumber メソッドを使用したコードの例を次に示します。ユーザの携帯番号を取得し、それを Salesforce で要求される形式に変換します。次に、書式設定された携帯番号でユーザのレコードを更新します。
1global with sharing class PhoneRegistrationController {
2 //Input variables
3 global String countryCode {get; set;}
4 global String phoneNumber {get; set;}
5
6 global String addPhoneNumber()
7 {
8 if(countryCode == null) return 'Country code is required';
9 if(phoneNumber == null) return 'Phone number is required';
10
11 String userId = UserInfo.getUserId();
12 User u = [SELECT Id FROM User WHERE Id=:userId LIMIT 1];
13 String formatNum = System.UserManagement.formatPhoneNumber(countryCode, phoneNumber);
14 u.MobilePhone = formatNum;
15 update u;
16 return null;
17 }
18
19}国コードと電話番号が分かれていれば、formatPhoneNumber は適切な形式で値を返します。
obfuscateUser(userId, username)
署名
public static void obfuscateUser(Id userId, String username)
パラメータ
戻り値
型: void
使用方法
このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
obfuscateUser メソッドを使用して、組織のユーザの個人情報を保護します。呼び出されたときに、ユーザのオブジェクトデータは完全にスクランブルされて、ランダムな文字列に置換されます。ユーザの詳細ページは存在しますが、項目には意味のない文字列が含まれます。Salesforce でユーザを削除することはできず、無効化のみが可能なため、個人データは単に難読化 (スクランブル) されます。つまり、ユーザレコードはデータベースに残され、このメソッドは論理削除を実行します。
考慮事項
- このメソッドでは、[設定] の組織のユーザ管理設定 [特定のユーザのデータをスクランブル] が有効になっている必要があります。
- このメソッドはユーザオブジェクトの標準項目に影響します (ユーザ ID、タイムゾーン、ロケール、プロファイルなどの一部の項目を除く)。
- ユーザに確認を送信する場合、ユーザの ID と後処理のための他の属性 (メールアドレスなど) を書き留めることをお勧めします。
- このメソッドはユーザオブジェクトのみを変更します。ユーザと他のオブジェクト間の関連付けは削除されますが、他のオブジェクトは変更されません。たとえば、連絡先、ThirdPartyAccountLink (TPAL)、ユーザパスワード認証 (UPA) オブジェクトは変更されずに維持されます。
このメソッドは、ユーザの個人データとプライバシー保護の取り組みの一環です。ユーザデータを積極的に保護するために実行できることについての詳細は、Salesforce ヘルプの「データ保護とプライバシー」を参照してください。
obfuscateUser(userId)
署名
public static void obfuscateUser(Id userId)
パラメータ
- userId
- 型: Id
- このメソッドでスクランブルするデータを所有するユーザの ID。
戻り値
型: void
使用方法
このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。
obfuscateUser メソッドを使用して、組織のユーザの個人情報を保護します。呼び出されたときに、ユーザのオブジェクトデータは完全にスクランブルされて、ランダムな文字列に置換されます。ユーザの詳細ページは存在しますが、項目には意味のない文字列が含まれます。Salesforce でユーザを削除することはできず、無効化のみが可能なため、個人データは単に難読化 (スクランブル) されます。つまり、ユーザレコードはデータベースに残され、このメソッドは論理削除を実行します。
考慮事項
- このメソッドでは、[設定] の組織のユーザ管理設定 [特定のユーザのデータをスクランブル] が有効になっている必要があります。
- このメソッドはユーザオブジェクトの標準項目に影響します (ユーザ ID、タイムゾーン、ロケール、プロファイルなどの一部の項目を除く)。
- ユーザに確認を送信する場合、ユーザの ID と後処理のための他の属性 (メールアドレスなど) を書き留めることをお勧めします。
- このメソッドはユーザオブジェクトのみを変更します。ユーザと他のオブジェクト間の関連付けは削除されますが、他のオブジェクトは変更されません。たとえば、連絡先、ThirdPartyAccountLink (TPAL)、ユーザパスワード認証 (UPA) オブジェクトは変更されずに維持されます。
このメソッドは、ユーザの個人データとプライバシー保護の取り組みの一環です。ユーザデータを積極的に保護するために実行できることについての詳細は、Salesforce ヘルプの「データ保護とプライバシー」を参照してください。
ObfuscateUser コード例
1public class UserManagementController{
2 public List <User> users {get; set;}
3
4 public UserManagementController()
5 {
6 Profile p = [select id from profile where name = 'Customer Community User'];
7
8 users = [select username, id from User where profileId=:p.id AND isactive=true];
9 }
10
11 //Use method with extreme caution. Data can't be recovered.
12 @InvocableMethod(label='User Management' description='Obfuscate User data and more')
13 static public void obfuscate(List<User> users)
14 {
15 String uid = ApexPages.currentPage().getParameters().get('uid');
16
17 if(uid == null)
18 return;
19
20 User u = [select contactId from user where id=:uid];
21
22 System.UserManagement.obfuscateUser(uid);
23
24 if(u.contactId != null)
25 {
26 List <Contact> contacts = [select id from Contact where id=:u.contactId LIMIT 1];
27 if (contacts == null || contacts.isEmpty() == true)
28 return;
29
30 delete contacts;
31 }
32 }
33}registerVerificationMethod(method, startUrl)
署名
public static System.PageReference registerVerificationMethod(Auth.VerificationMethod method, String startUrl)
パラメータ
- method
- 型: Auth.VerificationMethod
- ユーザの ID の検証に使用する検証方法。
- startUrl
- 型: String
- ログイン後にユーザに表示するページへのパス。
戻り値
使用方法
このメソッドを使用して、2FA などの ID 検証を完了するか、パスワードなしでコミュニティにログインします。ユーザは、ログインするときに ID を検証するこれらの方法に登録します。開発者は、モバイルで使いやすいパスワードなしのログインを実装する場合にカスタム登録ページを作成します。「passwordlessLogin」を参照してください。
registerVerificationMethod で返された PageReference は、ユーザを Salesforce の検証ページにリダイレクトします。ユーザが正しいコードを入力すると、開始 URL で指定されたコミュニティページにリダイレクトされます。次に例を示します。
1PageReference pr = System.UserManagement.registerVerificationMethod(Auth.VerificationMethod.TOTP,startUrl);
2PageReference p = System.UserManagement.deregisterVerificationMethod(userId,Auth.VerificationMethod.SALESFORCE_AUTHENTICATOR);このメソッドは、API バージョン 43.0 で導入されました。それより前のバージョンでは使用できません。