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

login()

ログインサーバにログインし、クライアントセッションを開始します。

login() コールは、ログイン数の制限に含まれます。

メモ

構文

使用方法

login() コールを使用して、ログインサーバにログインし、クライアントセッションを開始します。クライアントアプリケーションは、他の API コールを行う前に、ログインし、sessionId とサーバ URL を取得します。

クライアントアプリケーションは、login() コールを呼び出すとき、ログイン情報としてユーザ名とパスワードを渡します。呼び出し時に、API がログイン情報を認証します。後続のすべての API コールで使用する、sessionId、ログインユーザ名に関連付けられているユーザ ID、および Lightning プラットフォーム API を指す URL を返します。

Salesforce は、クライアントアプリケーションがログインしている IP アドレスを確認し、不明な IP アドレスからのログインをブロックします。API でブロックされたログインに関しては、Salesforce がログイン失敗エラーを返します。ログインするには、ユーザがセキュリティトークンをユーザパスワードの末尾に追加する必要があります。たとえば、パスワードが mypassword で、セキュリティトークンが XXXXXXXXXX の場合は、「mypasswordXXXXXXXXXX」と入力する必要があります。セキュリティトークンを取得するには、Salesforce ユーザインターフェースからパスワードを変更するか、セキュリティトークンをリセットします。ユーザがパスワードを変更するか、セキュリティトークンをリセットすると、ユーザの Salesforce レコードに指定されたメールアドレス宛に新しいセキュリティトークンが送信されます。セキュリティトークンは、ユーザがセキュリティトークンをリセットするか、パスワードを変更するか、またはユーザのパスワードがリセットされるまで有効です。トークンが無効な場合、ユーザはログインプロセスを再度行う必要があります。再度ログインを行わないようにするには、クライアントの IP アドレスを組織の信頼できる IP アドレスのリストに追加します。詳細は、「セキュリティトークン」を参照してください。

ログイン後、クライアントアプリケーションで次のタスクが実行されていることを確認します。

  • API がこのセッションに対する後続要求を検証できるように、SOAP ヘッダー内にセッション ID を設定する。
  • 後続サービス要求の要求先としてサーバ URL を指定する。ログインサーバでは、ログインコールしかサポートされません。

開発ツールごとに、セッションヘッダーとサーバ URL の指定方法は異なります。詳細は、使用している開発ツールのマニュアルを参照してください。

login() は、1 時間につき 1 ユーザあたり最大 3,600 コールに制限されています。この制限を超えると、「Login Rate Exceeded」 (ログイン数の制限を超えました。) エラーが表示されます。1 時間の上限を超えると、Salesforce によりユーザのログインがブロックされます。ユーザはブロックされてから 1 時間後、もう一度ログインを試行できます。

Enterprise と Partner エンドポイント

バージョン 11.1 以前の API では、Partner WSDL で構築されたクライアントアプリケーションは Enterprise エンドポイントに要求を送信可能で、Enterprise WSDL で構築されたアプリケーションは Partner エンドポイントに要求を送信可能です。バージョン 12.0 以降では、この機能はサポートされていません。

エンドポイントのベース URL

Salesforce 組織のエンドポイントを指定するときは、ベース URL に関して 3 つのオプションがあります。
  1. 推奨: [私のドメイン] のログイン URL: 本番組織の場合は https://MyDomainName.my.salesforce.com 形式、拡張ドメインが有効な Sandbox の場合は https://MyDomainName--SandboxName.sandbox.my.salesforce.com 形式。Sandbox で拡張ドメインを使用していない場合は、https://MyDomainName--SandboxName.my.salesforce.com を使用し、拡張ドメインを有効にするときにこれらのエンドポイントを更新することを計画してください。
  2. デフォルトの Salesforce ログイン URL: 本番組織および Developer Edition 組織の場合は https://login.salesforce.com、Sandbox の場合は https://test.salesforce.com

    システム管理者は、[私のドメイン] の設定を介してデフォルトの Salesforce ログイン URL から SOAP API ログインが行われることを防止できます。

    メモ

すべての例では、本番組織で推奨される [私のドメイン] のログイン URL 形式が使用されています。Sandbox のエンドポイントを指定したり、デフォルトの Salesforce ログイン URL を使用したりする場合は、必要に応じて例を変更してください。

[私のドメイン] のログイン URL を使用する利点とデフォルトの Salesforce ログイン URL を使用する利点を理解するには、Salesforce ヘルプの「コードを使用した Salesforce へのログイン」を参照してください。

プロキシを使用したログイン

プロキシ経由で Salesforce にログインする場合は、ログインに使用する ConnectorConfig クラスのインスタンスでプロキシホストおよびポート番号を設定します。プロキシを認証する必要がある場合は、ユーザ名およびパスワードを設定します。

セッション終了

クライアントアプリケーションは、セッションを終えるために明示的にログアウトする必要はありません。セッションは、前もって決定された非活動状態の期間の後、自動的に終了します。デフォルト値は 2 時間です。API コールを行うと、非活動状態タイマーがゼロにリセットされます。セッションの有効期限 (タイムアウト) の値を変更するには、[設定] から、[クイック検索] ボックスに「セッションの設定」と入力し、[セッションの設定] を選択します。

有効なセルフサービスユーザの認証

Spring '12 以降、新しい Salesforce 組織ではセルフサービスポータルを利用できません。既存の組織は、引き続きセルフサービスポータルを使用できます。

メモ

アクティブセルフサービスユーザを認証するには、セルフサービスがユーザの認証に対して LoginScopeHeader を使用して、Organization ID を指定します。認証の前提として、セルフサービスユーザが存在しており、かつ有効である必要があります (「SelfServiceUser」参照)。

顧客の Experience Cloud サイトのユーザ認証

[API の有効化] 権限を持つ有効な Experience Cloud サイトユーザを認証するには、LoginScopeHeader を使用して、Experience Cloud サイトを含む組織の Organization ID を指定します。サイトユーザは、存在する有効なユーザであり、認証される前に Experience Cloud サイトに属している必要があります。

Experience Cloud サイトのユーザを認証するエンドポイントを指定する場合、拡張ドメインが有効でない組織では、ベース URL が異なります。
  • 拡張ドメインが有効である場合、ベース URL の形式は、本番組織では https://MyDomainName.my.site.com、Sandbox 組織では https:/MyDomainName--SandboxName.sandbox.my.site.com となります。
  • 拡張ドメインが有効でない場合、ベース URL の形式は、本番組織では https://ExperienceCloudSitesSubdomain.force.com、Sandbox 組織では SandboxName-CommunitySubdomainName.InstanceName.force.com となります。

Experience Cloud サイトのユーザ認証のすべての例では、拡張ドメインが有効な本番組織用のベース URL の形式が使用されています。Sandbox 組織のエンドポイントを指定する場合、または拡張ドメインをまだ有効にしていない場合は、ベース URL を更新してください。

エンドポイントの例

クライアントアプリケーションでは、ログイン要求を次のエンドポイントに送信できます (この際に、認証エンドポイントの有効な値を使用します)。

Enterprise WSDL:
  • String authEndPoint = "https://MyDomainName.my.salesforce.com/services/Soap/c/version/"
  • String authEndPoint = "https://MyDomainName.my.site.com/path-prefix/services/Soap/c/version/"
Partner WSDL:
  • String authEndPoint = "https://MyDomainName.my.salesforce.com/services/Soap/u/version/"
  • String authEndPoint = "https://MyDomainName.my.site.com/path-prefix/services/Soap/u/version/"

ログアウト

Salesforce では、不要になったセッションを終了するために、必ず logout() をコールすることをお勧めします。このコールは、子セッションも終了させます。ほとんどの保護が行われるようにするには、セッションが期限切れになるのを待つのではなく、ユーザをログアウトします。

サンプルコード — Java

このサンプルでは、指定されたユーザ名、パスワード、および認証エンドポイント URL を使用してユーザをログインします。このサンプルでは、ログインの成功後、ユーザ情報とセッション情報をコンソールに書き込みます。このサンプルを実行する前に、ユーザ名、パスワード、認証エンドポイントの値を有効な値に置き換えてください。

API コールを作成するために必要な Web サービス WSDL を生成してインポートする方法については、「クイックスタート」の「ステップ 2: Web サービス WSDL を生成または取得する」を参照してください。

サンプルコード — C#

このサンプルでは、指定されたユーザ名、パスワードを使用してユーザをログインします。login コールの結果には、サービスエンドポイント URL が含まれます。この URL は、組織にサービスしている仮想サーバインスタンスであり、一意のセッション ID です。このサンプルでは、バインドにこれらの返された値を設定します。バインド URL に返されたサービスエンドポイントを設定します。また、すべての API コールで使用されているセッションヘッダーのセッション ID を設定します。次に、ログインの成功後、ユーザ情報とセッション情報をコンソールに書き込みます。このサンプルを実行する前に、ユーザ名とパスワードの値を有効な値に置き換えてください。

API コールを作成するために必要な Web サービス WSDL を生成してインポートする方法については、「クイックスタート」の「ステップ 2: Web サービス WSDL を生成または取得する」を参照してください。

引数

名前 説明
username string ログインで使用する username
password string 指定された username に関連付けられているログインパスワード。

ログイン要求のサイズは、10 KB 未満に制限されています。

応答

LoginResult

障害

LoginFault

UnexpectedErrorFault