Loading
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
ユーザーの識別およびアクセス権の管理
ユーザー情報のクエリ

ユーザー情報のクエリ

接続アプリケーションは、UserInfo エンドポイントで接続アプリケーションのアクセストークンに関連付けられたユーザーに関する情報を照会できます。Salesforce は、ユーザーに関する基本的な個人情報と、接続アプリケーションが通信できる重要なエンドポイント (写真、アクセス可能な API エンドポイントなど) を返します。UserInfo エンドポイントは、現在のユーザーに対してのみ、情報へのアクセスを提供します。組織の他のユーザーへのアクセスは提供しません。

必要なエディション

使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方
使用可能なエディション: すべてのエディション

UserInfo エンドポイントは、OpenID Connect によって定義された RESTful API です。エンドポイントの URL の形式は https://login.salesforce.com/services/oauth2/userinfo です。

メモ
メモ Sandbox では、login.salesforce.comtest.salesforce.com に置き換えられます。Experience Cloud サイトの場合、login.salesforce.com はサイトの URL (MyDomainName.my.site.com/.well-known/openid-configuration など) で置き換えられます。URL は HTTPS を使用する必要があります。

UserInfo エンドポイントを照会するためのフローを示します。

  1. 接続アプリケーションは、Salesforce UserInfo エンドポイントにクエリを送信します。クエリには接続アプリケーションのアクセストークンが含まれている必要があります。
  2. Salesforce はユーザー情報で応答します。

UserInfo エンドポイントの照会

次のパラメーターを使用して UserInfo エンドポイントを照会します。アクセストークンは、認証要求ヘッダー、または oauth_token パラメーターのある要求で使用できます。

重要
重要 OAuth インテグレーションを開発するときは、常に機密情報を POST 要求の本文または要求ヘッダーで渡します。機密情報を渡すために URL クエリ文字列で GET パラメーターを使用しないでください。機密情報には、ユーザー名、パスワード、OAuth トークン、クライアントの秘密、個人識別情報が含まれますが、これらに限定されません。セキュリティのベストプラクティスについての詳細は、『Secure Coding Guide (セキュアコーディングガイド)』の「Storing Sensitive Data (機密データの保存)」を参照してください。
パラメーター 説明
oauth_token 接続アプリケーションがクライアントアプリケーションの代わりに保護されたリソースへのアクセスを要求するために使用する OAuth トークン。範囲の形式の追加権限にはアクセストークンが付随することがあります。
format

省略可能。返される出力の形式を指定します。値は次のとおりです。

  • json
  • xml

クライアントは受け入れ要求ヘッダーで次のいずれかの形式を使用して、返される形式も指定できます。

  • Accept: application/json
  • Accept: application/xml
  • Accept: application/x-www-form-urlencoded

要求ヘッダーでは次の情報もサポートされています。

  • */* のワイルドカードが受け入れられ、JSON を返します。
  • 値のリスト (左から右に確認される)。例: application/xml,application/json,application/html,*/* は XML を返します。

format パラメーターは、アクセス要求ヘッダーより優先されます。

version 省略可能。SOAP API バージョン番号またはリテラル文字列 latest を指定します。この値が指定されていない場合、返される API URL には、バージョン番号の代わりに、リテラル値 {version} が含まれます。値が latest として指定されると、最新の API バージョンが使用されます。
PrettyPrint 省略可能。ヘッダー内でのみ使用できます。URL パラメーターとしては使用できません。サイズではなく読みやすさを目的として、返される XML または JSON 出力を最適化するためにこのパラメーターを指定します。たとえば、ヘッダーで X-PrettyPrint:1 を使用します。
callback

省略可能。有効な JavaScript 関数名を指定します。指定した形式が JSON の場合、このパラメーターを使用できます。出力はこの関数名 (JSONP) でラップされます。たとえば、https://server/id/orgid/userid/ に対する要求では {"function":"name"} を返し、https://server/id/orgid/userid/?callback=baz に対する要求では baz({"function":"name"}); を返します。

メモ
メモ JSONP は、厳格な MIME タイプのチェックにより、ID サービス要求では返されなくなりました。要求でコールバックパラメーターに 'format=jsonp' を追加して ID サービスが JavaScript を返すようにする必要があります。ID サービスで JSONP 形式が検出されると、必要な JavaScript タイプ ('application/javascript') が返されます。
is_salesforce_integration_user 省略可能。このパラメーターを指定して、ユーザーに Salesforce インテグレーションユーザーライセンスがあるかどうかを判断します。

Salesforce UserInfo エンドポイントの応答

有効な要求を作成したら、JSON 形式 (デフォルト) または format パラメーターで指定した形式で情報が返されます。

応答には、「OpenID Connect Basic Client Profile」に含まれる値、Salesforce ユーザー ID、組織 ID、フィード、およびプロファイルの URL が含まれます。

応答の email_verified 属性には、たとえば Salesforce システム管理者が Roberta Smith というユーザーを作成した場合など、このシナリオが発生した後にユーザーがメールを検証するかどうかが反映されます。Roberta は、アカウントを確認するためのリンクが含まれる「Salesforce へようこそ」のメールメッセージを受信します。リンクをクリックすると、email_verified 値が true に設定されます。

  • ユーザーがメールアドレスを変更した
  • ユーザーがパスワードを変更したか、Salesforce システム管理者がパスワードをリセットした
  • ユーザーが新しいブラウザーまたはデバイスからのログイン時に ID を検証した
  • Salesforce システム管理者がユーザーを新しいユーザーとして作成した

JSON 形式の応答は、次のとおりです。

{"sub":"https://login.salesforce.com/id/00Dx000.../005x000...",
"user_id":"005x000...",
"organization_id":"00Dx000...",
"name":"yourInstance LastName",
"email":"user1@1135222488950007.com",
"email_verified":true,"given_name":"yourInstance","family_name":"LastName",
"zoneinfo":"America/Los_Angeles",
"photos":{"picture":"https://yourInstance.salesforce.com/profilephoto/005/F","thumbnail":"https://yourInstance.salesforce.com/profilephoto/005/T"},
"profile":"https://yourInstance.salesforce.com/005x000...",
"picture":"https://yourInstance.salesforce.com/profilephoto/005/F",
"address":{"country":"us"},
"urls":{"enterprise":"https://yourInstance.salesforce.com/services/Soap/c/{version}/00Dx00...",
"partner":"https://yourInstance.salesforce.com/services/Soap/u/{version}/00Dx00...",
"rest":"https://yourInstance.salesforce.com/services/data/v{version}/",
"sobjects":"https://yourInstance.salesforce.com/services/data/v{version}/sobjects/",
"search":"https://yourInstance.salesforce.com/services/data/v{version}/search/",
"query":"https://yourInstance.salesforce.com/services/data/v{version}/query/",
"recent":"https://yourInstance.salesforce.com/services/data/v{version}/recent/",
"profile":"https://yourInstance.salesforce.com/005x000...",
"feeds":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/feeds",
"groups":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/groups",
"users":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/users",
"feed_items":"https://yourInstance.salesforce.com/services/data/v{version}/chatter/feed-items"},
"active":true,"user_type":"STANDARD","language":"en_US","locale":"en_US",
"utcOffset":-28800000,"updated_at":"2013-12-02T18:46:42Z"}

XML 形式の応答は、次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<user>
<sub>https://login.salesforce.com/id/00Dx000.../005x000...</sub>
<user_id>005x000...</user_id>
<organization_id>00Dx000...</organization_id>
<preferred_username>user1@1135222488950007.com</preferred_username>
<nickname>user1.3860098879512678E12</nickname>
<name>user1 LastName</name>
<email>user1@1135222488950007.com</email>
<email_verified>true</email_verified>
<given_name>user1</given_name>
<family_name>LastName</family_name>
<zoneinfo>America/Los_Angeles</zoneinfo>
<photos>
<picture>https://yourInstance.salesforce.com/profilephoto/005/F</picture>
<thumbnail>https://yourInstance.salesforce.com/profilephoto/005/T</thumbnail></photos>
<profile>https://yourInstance.salesforce.com/005x000...</profile>
<picture>https://yourInstance.salesforce.com/profilephoto/005/F</picture>
<address>
<country>us</country>
</address>
<urls>
<enterprise>https://yourInstance.salesforce.com/services/Soap/c/{version}/00Dx0000002rIh1</enterprise>
<metadata>https://yourInstance.salesforce.com/services/Soap/m/{version}/00Dx0000002rIh1</metadata>
<partner>https://yourInstance.salesforce.com/services/Soap/u/{version}/00Dx0000002rIh1</partner>
<rest>https://yourInstance.salesforce.com/services/data/v{version}/</rest>
<sobjects>https://yourInstance.salesforce.com/services/data/v{version}/sobjects/</sobjects>
<search>https://yourInstance.salesforce.com/services/data/v{version}/search/</search>
<query>https://yourInstance.salesforce.com/services/data/v{version}/query/</query>
<recent>https://yourInstance.salesforce.com/services/data/v{version}/recent/</recent>
<profile>https://yourInstance.salesforce.com/005x000...</profile>
<feeds>https://yourInstance.salesforce.com/services/data/v{version}/chatter/feeds</feeds>
<groups>https://yourInstance.salesforce.com/services/data/v{version}/chatter/groups</groups>
<users>https://yourInstance.salesforce.com/services/data/v{version}/chatter/users</users>
<feed_items>https://yourInstance.salesforce.com/services/data/v{version}/chatter/feed-items</feed_items>
</urls>
<active>true</active>
<user_type>STANDARD</user_type>
<language>en_US</language>
<locale>en_US</locale>
<utcOffset>-28800000</utcOffset>
<updated_at>2013-12-02T18:46:42.000Z</updated_at>
</user>

返されるパラメーターについて次の表で説明します。

パラメーター 説明
sub UserInfo エンドポイントの URL。照会された URL と同じです。
user_id クエリ対象ユーザーのユーザー ID。
organization_id クエリ対象ユーザーの Salesforce 組織の ID。
preferred_username クエリ対象ユーザーのユーザー名。
nickname クエリ対象ユーザーの Experience Cloud のニックネーム。
name クエリ対象ユーザーの表示名 (氏名)。
email クエリ対象ユーザーのメールアドレス。
email_verified

「Salesforce にようこそ」メールのリンクがクリックされ、クエリ対象ユーザーのメールが確認されたかどうかを示します。

このシナリオが発生した後にユーザーが受信したメール内のリンクをクリックすると、email_verified 値は true に設定されます。たとえば、Salesforce システム管理者が Roberta Smith というユーザーを作成したとします。Roberta は、アカウントを確認するためのリンクが含まれる「Salesforce へようこそ」のメールメッセージを受信します。リンクをクリックすると、email_verified 値が true に設定されます。

  • ユーザーがメールアドレスを変更した
  • ユーザーがパスワードを変更したか、Salesforce システム管理者がパスワードをリセットした
  • ユーザーが新しいブラウザーまたはデバイスからのログイン時に ID を検証した
  • Salesforce システム管理者がユーザーを新しいユーザーとして作成した
given_name クエリ対象ユーザーの名。
family_name クエリ対象ユーザーの姓。
zoneinfo クエリ対象ユーザーの設定で指定されているタイムゾーン。
photos

picturethumbnail、または profile として指定される、クエリ対象ユーザーのプロファイル写真への URL の対応付け。

メモ
メモ これらの URL にアクセスするには、アクセストークンを渡す必要があります。
address クエリ対象ユーザーの住所。ユーザーの町名・番地、市区郡、都道府県、国、郵便番号が含まれている可能性があります。
mobile_phone クエリ対象ユーザーの設定で指定されている携帯電話番号。
mobile_phone_verified 有効な番号であることをクエリ対象ユーザーが確認したかどうか。
urls

クエリ対象ユーザーで使用できる、さまざまな API エンドポイントを含む対応付け。

メモ
メモ REST エンドポイントへのアクセスでは、アクセストークンを渡す必要があります。
  • enterprise (SOAP)
  • metadata (SOAP)
  • partner (SOAP)
  • rest(REST)
  • sobjects(REST)
  • search(REST)
  • query(REST)
  • recent(REST)
  • profile
  • feeds (Chatter)
  • feed-items (Chatter)
  • groups (Chatter)
  • users (Chatter)
  • custom_domain

    設定または伝搬されたカスタムドメインが組織にない場合、この値は省略されます。

active クエリ対象ユーザーが有効であるかどうかを指定する Boolean 値。
user_type クエリ対象ユーザーの種別。
language クエリ対象ユーザーの言語。
locale クエリ対象ユーザーのロケール。
utcOffset クエリ対象ユーザーのタイムゾーンの UTC からのオフセット (ミリ秒単位)。
updated_at ユーザーの前回の変更の xsd datetime 形式 (2010-06-28T20:54:09.000Z など)。
is_app_installed 接続アプリケーションがユーザーの組織にインストールされていて、ユーザーのアクセストークンが OAuth フローを使用して作成されている場合、値は true になります。接続アプリケーションがインストールされていない場合、応答にこの値は含まれません。応答を解析する場合、このプロパティの有無と値を確認してください。
mobile_policy

モバイル接続アプリケーションを管理するための特定の値。これらの値は、接続アプリケーションが現在のユーザーの組織にインストールされていて、そのアプリケーションでセッションタイムアウト値が定義され、モバイル PIN の長さの値が定義されている場合にのみ使用できます。

  • screen_lock — 操作しなくなってから画面をロックするまでの待機時間。
  • pin_length — モバイルアプリケーションにアクセスするために必要な識別番号の長さ。
push_service_type

接続アプリケーションが Apple Push Notification Service (APNS) for iOS プッシュ通知に登録されている場合は apple に設定します。Google Cloud Messaging (GCM) for Android プッシュ通知に登録されている場合は androidGcm に設定します。

応答値は配列型です。

custom_permissions

要求に custom_permissions 範囲パラメーターが含まれている場合、接続アプリケーションに関連付けられた組織のカスタム権限を含む対応付けが応答に含まれます。接続アプリケーションが組織にインストールされていない場合や、カスタム権限に関連付けられていない場合、custom_permissions の対応付けは応答に含まれません。

要求の例を次に示します。

http://MyDomainName.my.salesforce.com/services/oauth2/authorize?response_type=token&client_
          id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&redirect_uri=http://www.example.org/qa/security/oauth
          /useragent_flow_callback.jsp&scope=api%20id%20custom_permissions
         

ID URL レスポンスの JSON ブロックを次に示します。

"custom_permissions":
           {
           "Email.View":true,
           "Email.Create":false,
           "Email.Delete":false
           }
          

無効な要求には Salesforce から次のような応答が返されます。

エラーコード 要求の問題
403 (forbidden) — HTTPS_Required HTTP
403 (forbidden) — Missing_OAuth_Token アクセストークンがない
403 (forbidden) — Bad_OAuth_Token アクセストークンが無効
403 (forbidden) — Wrong_Org 異なる組織のユーザー
404 (not found) — Bad_Id ユーザー ID または組織 ID が無効または間違っている
404 (not found) — Inactive 無効になったユーザーまたは無効な組織
404 (not found) — No_Access ユーザーに組織または情報への適切なアクセス権がない
404 (not found) — No_Site_Endpoint サイトの無効なエンドポイントへの要求
404 (not found) — Internal Error サーバーから応答がない
406 (not acceptable) — Invalid_Version 無効なバージョン
406 (not acceptable) — Invalid_Callback 無効なコールバック
 
読み込み中
Salesforce Help | Article