この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

UserManagement クラス

エンドユーザの管理 (検証方法の登録や、Salesforce でエンドユーザが認識されないようにするための要求の処理など) を行うためのメソッドがあります。

名前空間

System

使用方法

register および deregister メソッドは、ID 検証方法を登録および登録解除するために使用します。obfuscateUser メソッドは、ユーザの要求に応じてユーザオブジェクトデータをスクランブルするために使用します。formatPhoneNumber メソッドは、電話番号を正しく書式設定するために使用します。

このクラスは、API バージョン 43.0 で導入されています。以前のバージョンでは使用できません。

UserManagement メソッド

UserManagement のメソッドは次のとおりです。

clone()

System.UserManagement オブジェクトの重複コピーを作成します。

署名

public Object clone()

戻り値

型: UserManagement

deregisterVerificationMethod(userId, method)

ID 検証方法の登録を解除します。このメソッドを使用すると、ユーザが既存の検証方法を削除できます。

署名

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)

パラメータ

countryCode
型: String
有効な国コード。
phoneNumber
型: String
国コードは除いて 3 ~ 49 文字の数値を含む携帯番号。たとえば、(415) 555-1234 など。

戻り値

型: String

ユーザの携帯電話番号を適切な形式で返します。

使用方法

このメソッドを使用して、ユーザの携帯電話番号が 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 は適切な形式で値を返します。

initSelfRegistration(method, user)

コミュニティセルフ登録用の独自の検証ページを作成するときに、このメソッドを使用して検証を呼び出します。

署名

public static String initSelfRegistration(Auth.VerificationMethod method, User user)

パラメータ

method
型: VerificationMethod 列挙
ユーザの ID を検証するために使用される検証方法。EMAIL または SNS。
user
型: User
登録の成功後に挿入されるユーザオブジェクト。

戻り値

型: String

使用方法

デフォルトでは、ユーザがメールアドレスまたは電話番号でコミュニティにサインアップすると、Salesforce から検証コードが送信され、ユーザが ID を確認するための検証ページが生成されます。デフォルトの Salesforce 検証ページを独自の検証ページで置き換えることができます。そして、initSelfRegistration メソッドまたは verifySelfRegistraion メソッドを使用して検証プロセスを呼び出します。

まず、initSelfRegistration をコールし、認証チャレンジを開始します。登録の成功時に挿入されるユーザオブジェクトを含めます。登録試行のための一意の識別子が返されます。次に、verifySelfRegistration をコールして検証を完了します。

「VerificationResult クラス」の例を参照してください。

obfuscateUser(userId, username)

Salesforce で個人データが認識されることをユーザが望まなくなったときに、要求に応じてユーザのデータをスクランブルします。ユーザに対してこのメソッドを呼び出すと、データが匿名になり、そのデータを復元できなくなります。このメソッドを使用して、スクランブル後にユーザ名を特定の値に設定します。

署名

public static void obfuscateUser(Id userId, String username)

パラメータ

userId
型: Id
このメソッドでスクランブルするデータを所有するユーザの ID。
username
型: String
ユーザのデータがスクランブルされた後のユーザ名。スクランブルされたユーザ名の値を特定の文字列に設定します。

戻り値

型: void

使用方法

このメソッドは、API バージョン 43.0 で導入されました。以前のバージョンでは使用できません。

obfuscateUser メソッドを使用して、組織のユーザの個人情報を保護します。呼び出されたときに、ユーザのオブジェクトデータは完全にスクランブルされて、ランダムな文字列に置換されます。ユーザの詳細ページは存在しますが、項目には意味のない文字列が含まれます。Salesforce でユーザを削除することはできず、無効化のみが可能なため、個人データは単に難読化 (スクランブル) されます。つまり、ユーザレコードはデータベースに残され、このメソッドは論理削除を実行します。

このメソッドを使用する場合は注意が必要です。ユーザのデータは匿名となり、復元できません。

メモ

考慮事項

  • このメソッドでは、[設定] の組織のユーザ管理設定 [特定のユーザのデータをスクランブル] が有効になっている必要があります。
  • このメソッドはユーザオブジェクトの標準項目に影響します (ユーザ ID、タイムゾーン、ロケール、プロファイルなどの一部の項目を除く)。
  • ユーザに確認を送信する場合、ユーザの ID と後処理のための他の属性 (メールアドレスなど) を書き留めることをお勧めします。
  • このメソッドはユーザオブジェクトのみを変更します。ユーザと他のオブジェクト間の関連付けは削除されますが、他のオブジェクトは変更されません。たとえば、連絡先、ThirdPartyAccountLink (TPAL)、ユーザパスワード認証 (UPA) オブジェクトは変更されずに維持されます。

このメソッドを使用しても、メール変更通知はトリガされないことをシステム管理者に伝えてください。

メモ

このメソッドは、ユーザの個人データとプライバシー保護の取り組みの一環です。ユーザデータを積極的に保護するために実行できることについての詳細は、Salesforce ヘルプの「データ保護とプライバシー」を参照してください。

obfuscateUser(userId)

Salesforce で個人データが認識されることをユーザが望まなくなったときに、要求に応じてユーザのデータをスクランブルします。ユーザに対してこのメソッドを呼び出すと、データが匿名になり、そのデータを復元できなくなります。

署名

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 {getset;}
3    
4    public UserManagementController()
5    {
6        Profile p = [select id from profile where name = 'Customer Community User'];
7        
8        users = [select usernameid 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)

ID 検証方法を登録します。検証方法には、時間ベースのワンタイムパスワード、メールまたはテキストのワンタイムパスワード、Salesforce Authenticator、U2F などがあります。エンドユーザが各自の検証方法を登録します。

署名

public static System.PageReference registerVerificationMethod(Auth.VerificationMethod method, String startUrl)

パラメータ

method
型: Auth.VerificationMethod
ユーザの ID の検証に使用する検証方法。
startUrl
型: String
ログイン後にユーザに表示するページへのパス。

戻り値

型: System.PageReference

使用方法

このメソッドを使用して、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 で導入されました。それより前のバージョンでは使用できません。

ユーザが [高度なユーザの詳細] で携帯番号を追加または更新した場合、セキュリティ対策として、ユーザは再度ログインして ID を検証する必要があります。その結果、アプリケーションに保存されていない変更は失われます。このセキュリティ対策を無効にするには、Salesforce サポートにお問い合わせください。

メモ

sendAsyncEmailConfirmation(userId, emailTemplateId, networkId, startUrl)

ユーザのメールアドレスに検証用のメールメッセージを送信します。このメッセージには、ユーザが後でメールアドレスを検証するためにクリックする検証リンク (URL) が含まれます。メール検証を一括で送信できます。

署名

public static Boolean sendAsyncEmailConfirmation(String userId, String emailTemplateId, String networkId, String startUrl)

パラメータ

userId
型: String
確認メールを受信するユーザの ID。
emailTemplateId
型: String
検証リンクが定義されているメールテンプレートの ID。
networkId
型: String
コミュニティの ID。
startUrl
型: String
ユーザは検証後にこのページにリダイレクトされ、パラメータとして成功メッセージまたはエラーメッセージが渡されます。null の場合、ユーザはログインページにリダイレクトされます。

戻り値

型: Boolean

メールメッセージの送信が成功したか失敗したかを示します。

使用方法

非同期メールメッセージを送信すると、ユーザが所有する有効なメールアドレスで登録されていることを確認できるため、お勧めします。検証リンクが記載されたメールの受信者を特定するには、ユーザの詳細ページで [ユーザの検証済みメール] 項目が true に設定されているかどうかを確認します。この情報は、TwoFactorMethodsInfo API からも得られます。

外部ユーザに非同期メール検証を送信して、ユーザのメールアドレスを検証します。外部ユーザはメールの OTP (パスワードなしのログイン) でログインする前にメールアドレスを検証する必要があります。

エラーコードと説明はクエリパラメータとして渡されるため、カスタムランディングページを作成するときにエラーを処理できます。

1System.UserManagement.sendAsyncEmailConfirmation('005RM000001a0Ox', 
2'00XRM000000hxnG','0DBRM000000015i', '/s/contactsupport');

verifySelfRegistration(method, identifier, code, startUrl)

コミュニティセルフ登録用の独自の検証ページを作成するときに、このメソッドを使用して検証を完了します。登録を行っている人が検証コードを正常に入力すると、ユーザが作成されてログインされます。

署名

public static Auth.VerificationResult verifySelfRegistration(Auth.VerificationMethod method, String identifier, String code, String startUrl)

パラメータ

method
型: VerificationMethod 列挙
検証方法。
identifier
型: String
initSelfRegistration メソッドから受信した一意の識別子。
code
型: String
検証メソッドから受信した検証コード (EMAIL、SMS など)。
startUrl
型: String
セルフ登録が成功した後にユーザが移動するページ。

戻り値

型: Auth.VerificationResult

使用方法

デフォルトでは、ユーザがメールアドレスまたは電話番号でコミュニティにサインアップすると、Salesforce から検証コードが送信され、ユーザが ID を確認するための検証ページが生成されます。デフォルトの Salesforce 検証ページを独自の検証ページで置き換えることができます。そして、initSelfRegistration メソッドまたは verifySelfRegistraion メソッドを使用して検証プロセスを呼び出します。

verifySelfRegistration は検証を完了し、成功した場合、ユーザが作成されてログインされます。verifySelfRegistration は、ユーザ作成後の検証状況とセッション ID が含まれる検証結果を返します。検証方法が SMS の場合、ユーザオブジェクトには適切な形式の携帯番号 (国コード、スペース、電話番号の順) が含まれている必要があります。例: +1 1234567890。System.UserManagement.formatPhoneNumber を参照してください。

「VerificationResult クラス」の例を参照してください。