LoginEvent
サポートされているコール
describeSObjects()、query()
特別なアクセスルール
このオブジェクトにアクセス���るには、Salesforce Shield または Salesforce Event Monitoring アドオンサブスクリプションと、「リアルタイムイベント監視データを表示」ユーザ権限が必要です。
項目
| 項目 | 詳細 |
|---|---|
| AdditionalInfo |
|
| ApiType |
|
| ApiVersion |
|
| Application |
|
| AuthMethodReference |
|
| AuthServiceId |
|
| Browser |
|
| CipherSuite |
|
| City | |
| ClientVersion |
|
| Country | |
| CountryIso |
|
| EvaluationTime |
|
| EventDate |
|
| EventIdentifier |
|
| HttpMethod |
|
| LoginGeoId |
|
| LoginHistoryId |
|
| LoginKey |
|
| LoginLatitude | |
| LoginLongitude | |
| LoginType |
|
| LoginUrl |
|
| NetworkId |
|
| Platform |
|
| PolicyId |
|
| PolicyOutcome |
|
| PostalCode | |
| RelatedEventIdentifier |
|
| RemoteIdentifier |
|
| SessionKey |
|
| SessionLevel |
|
| SourceIp |
|
| Status |
|
| Subdivision | |
| TlsProtocol |
|
| UserId |
|
| Username |
|
| UserType |
|
AdditionalInfo の使用
AdditionalInfo を使用すると、ログインイベントを拡張してカスタムデータを含めることができます。このデータは後で照会できます。たとえば、一意の相関 ID を共有する外部システムからユーザがログインしたときに、その ID を取得できます。このプロセスにより、システム間でログインを追跡できます。LoginEvent を使用してデータを保存するには、すべての AdditionalInfo 項目名の先頭を x-sfdc-addinfo-{fieldname} にします。たとえば、有効な項目割り当ては、x-sfdc-addinfo-correlation_id = ABC123 です。ここで、x-sfdc-addinfo-correlation_id は項目名、ABC123 は項目値です。
- x-sfdc-addinfo- は大文字と小文字を区別しません。x-sfdc-addinfo-{field name} は、X-SFDC-ADDINFO-{FIELD NAME} と同じです。
- 項目には、英数字と「_」 (アンダースコア) 文字のみを使用できます。
- 項目名は、x-sfdc-addinfo- を含めずに 2 ~ 29 文字にする必要があります。
- 先頭が x-sfdc-addinfo- でない項目名は無視されます。
- 項目名の x-sfdc-addinfo- より後に無効な文字が含まれていると、「HTTP 400 Bad Request (HTTP 400 無効な要求)」エラーが発生する可能性があります。
- 最初の有効な 30 個の項目名のみが AdditionalInfo に保存されます。項目名は、認証に渡されたのと同じ順序で保存されるとは限りません。
- 既存の API 項目名は HTTP ヘッダー内の AdditionalInfo 名に使用できません。AdditionalInfo 名がオブジェクトの API 参照名と競合した場合、項目値は保存されません。たとえば、X-SFDC-ADDINFO-UserId='abc123' という HTTP ヘッダーは AdditionalInfo に保存されません。
- 追加項目値には、英数字、「_」、「-」文字のみを使用できます。
- 項目値は 255 文字以下にする必要があります。項目値が 255 文字を超えた場合、最初の 255 文字のみが保存され、残りは切り捨てられます。
- 無効な文字を含む項目値は保存されますが、項目ヘッダーが空の文字列 ("") になります。
- 最初の有効な 30 個の項目名のみが AdditionalInfo 項目に保存されます。項目名は、認証に渡されたのと同じ順序で保存されるとは限りません。
- AggregationFieldName が SourceIp の場合、値が Salesforce.com IP だと AggregationFieldValue で絞り込めません。
HTTP と cURL を使用して追加情報を渡す方法
1curl https://yourInstance.salesforce.com/services/oauth2/token -d "grant_type=password" -d
2"client_id=3MVG9PhR6g6B7ps4RF_kNPoWSxVQstrazijsE8njPtkpUzVPPffzy8
3jIoRE6q9rPznNtlsqbP9ob8kUfMjXXX" -d "client_secret=4180313776440635XXX" -d
4"username=user@company.com" -d "password=123456" -H "X-PrettyPrint:1" -H
5"x-sfdc-addinfo-correlationid:
6d18c5a3f-4fba-47bd-bbf8-6bb9a1786624"Java で追加情報を渡す方法
1//adding additional info headers ..
2Map<String, String> httpHeaders = new HashMap<String,String>();
3httpHeaders.put("x-sfdc-addinfo-fieldname1" /* additional info field*/ ,
4"d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
5httpHeaders.put("x-sfdc-addinfo-fieldname2" /* additional info field*/ ,
6"d18c5a3f-4fba-47bd-bbf8-6bb9a1786624" /* value*/);
7ConnectorConfig config = new ConnectorConfig();
8config.setUsername(userId);
9config.setPassword(passwd);
10config.setAuthEndpoint(authEndPoint);
11config.setProxy(proxyHost, proxyPort);
12//setting additional info headers
13for (Map.Entry<String, String> entry : httpHeaders.entrySet()) {
14config.setRequestHeader(entry.getKey(), entry.getValue());
15}
16// Set the username and password if your proxy must be authenticated
179
18LoginEvent
19config.setProxyUsername(proxyUsername);
20config.setProxyPassword(proxyPassword);
21try {
22EnterpriseConnection connection = new EnterpriseConnection(config);
23// etc.
24} catch (ConnectionException ce) {
25ce.printStackTrace();
26}標準 SOQL 使用状況
-
絞り込みなし
-
有効 — WHERE 句が含まれないため、特殊なルールは適用されません。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent
-
有効 — WHERE 句が含まれないため、特殊なルールは適用されません。
-
EventDate で絞り込み
-
有効 — EventDate のみで絞り込みできますが、他の項目で絞り込むと失敗します。このクエリ種別では比較演算子も使用できます。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent 3WHERE EventDate<=2014-11-27T14:54:16.000Z -
有効 — 日付リテラルを使用して EventDate で絞り込みができます。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent 3WHERE EventDate<=TODAY
-
有効 — EventDate のみで絞り込みできますが、他の項目で絞り込むと失敗します。このクエリ種別では比較演算子も使用できます。
-
EventDate および EventIdentifier で絞り込み
-
有効 — 両方の項目に対する LoginEvent 条件のクエリは正常に実行できます。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent 3WHERE EventDate=2014-11-27T14:54:16.000Z and EventIdentifier='f0b28782-1ec2-424c-8d37-8f783e0a3754' -
無効 — EventDate と標準日付リテラルを使用した LoginEvent に対するクエリ。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent 3WHERE EventDate=TODAY and EventIdentifier='f0b28782-1ec2-424c-8d37-8f783e0a3754' -
無効 — <= または >= を使用する EventDate と EventIdentifier 項目のみでの絞り込みはサポートされていません。
1SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId 2FROM LoginEvent 3WHERE EventDate<=2014-11-27T14:54:16.000Z and EventIdentifier='f0b28782-1ec2-424c-8d37-8f783e0a3754'
-
有効 — 両方の項目に対する LoginEvent 条件のクエリは正常に実行できます。
非同期 SOQL 使用状況
非同期 SOQL の場合は、LoginEvent の項目を絞り込み、クエリに任意の比較演算子を使用できます。
例: 昨日の成功したログインの取得
SELECT Application, Browser, EventDate, EventIdentifier, LoginUrl, UserId FROM LoginEvent WHERE EventDate<Yesterday AND Status=’Success’