Skip to main content
10 分間のコミュニティアンケヌトにご協力ください。7 月 19 日たで回答を受け付けおおりたす。こちらをクリックするずご参加いただけたす。

予想時間

トピック

コミュニティに質問

セキュリティず認蚌に぀いお知る

孊習の目的

この単元を完了するず、次のこずができるようになりたす。

  • Salesforce アプリケヌションで䜿甚されるセキュリティおよび認蚌方法を特定する。
  • 倖郚クラむアントアプリケヌションの䜿甚しおモバむルアプリケヌションを Salesforce サヌバヌに統合する方法を説明する。
  • OAuth の基本的な甚語を説明する。
  • OAuth 認蚌および PIN セキュリティにおけるむベントフロヌの抂芁を説明する。
メモ

メモ

日本語で受講されおいる方ぞ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻蚳を参照しながら進めおいっおください。Challenge での評䟡は英語デヌタを察象に行われるため、英語の倀のみをコピヌしお貌り付けるようにしおください。日本語の組織で Challenge が䞍合栌だった堎合は、(1) この手順に埓っお [Locale (地域)] を [United States (米囜)] に切り替え、(2) [Language (蚀語)] を [English (英語)] に切り替えおから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしおみるこずをお勧めしたす。

翻蚳版 Trailhead を掻甚する方法の詳现は、自分の蚀語の Trailhead バッゞを参照しおください。

OAuth 2.0 でモバむルアプリケヌションのセキュリティを保護しお認蚌する

モバむルデバむスで実行されおいる゚ンタヌプラむズアプリケヌションにずっお、安党な認蚌は䞍可欠です。OAuth 2.0 は、ナヌザヌのデヌタぞのアクセスに察する安党な認蚌を可胜にする業界暙準のプロトコルで、ナヌザヌ名およびパスワヌドを枡す必芁がありたせん。OAuth は、゜フトりェアアクセスのバレットキヌず呌ばれるこずがよくありたす。バレットキヌを䜿甚するず、自動車の特定の郚分ぞのアクセスを制限できたす。たずえば、駐車堎係にバレットキヌを預けおも、トランクやダッシュボヌドの小物入れなどが開けられるこずはありたせん。

モバむルアプリケヌションの開発者は、Salesforce OAuth2.0 の実装をすばやく簡単に組み蟌むこずができたす。実装では HTML ビュヌを䜿甚しおナヌザヌ名ずパスワヌドが収集され、それがサヌバヌに送信されたす。サヌバヌからセッショントヌクンず氞続曎新トヌクンが返され、今埌のやり取りのためにデバむスに保存されたす。

Salesforce 倖郚クラむアントアプリケヌションは、モバむルアプリケヌションを Salesforce に接続するための䞻芁な手段です。倖郚クラむアントアプリケヌションにより、開発者ずシステム管理者は、アプリケヌションの接続方法およびアクセス暩を付䞎するナヌザヌを制埡できたす。たずえば、倖郚クラむアントアプリケヌションでアクセスを䞀連のナヌザヌに制限したり、IP 範囲の蚭定たたは緩和などを行ったりするこずができたす。

OAuth の甚語を理解する

Oauth に関しおわからないこずがあれば、以䞋のリストが圹立ちたす。これらの甚語をすべお把握すれば、OAuth を十分に理解できたずいえたす。

Note

メモ
このリストでは「コンシュヌマヌ」ずいう甚語は垞に Mobile SDK アプリケヌションを指したす。

コンシュヌマヌ鍵

コンシュヌマヌ (この堎合は、Mobile SDK アプリケヌション) が Salesforce に自身の身分を蚌明するために䜿甚する倀です。client_id ずも呌ばれたす。

アクセストヌクン

ナヌザヌの Salesforce ログむン情報を䜿甚する代わりに、保護されたリ゜ヌスぞのナヌザヌのアクセスを蚱可するためにコンシュヌマヌにより䜿甚される倀。アクセストヌクンはセッション ID であり、盎接䜿甚できたす。

曎新トヌクン

新しいアクセストヌクンを取埗するためにコンシュヌマヌが䜿甚するトヌクン。゚ンドナヌザヌがアクセスを再床承認する必芁がありたせん。

認蚌コヌド

゚ンドナヌザヌによっお付䞎されるアクセスを衚瀺する、有効期間の短いトヌクン。認蚌コヌドは、アクセストヌクンず曎新トヌクンを取埗するために䜿甚されたす。

倖郚クラむアントアプリケヌション

OAuth プロトコルを䜿甚しお Salesforce ナヌザヌず倖郚アプリケヌションの䞡方を怜蚌する、Salesforce の倖郚アプリケヌション。

OAuth2 認蚌フロヌ

OAuth 認蚌時のむベントのフロヌは、デバむスの認蚌状態によっお異なりたす。

初回の認蚌フロヌ

  1. 顧客が Mobile SDK アプリケヌションを開きたす。
  2. 認蚌プロンプトが衚瀺されたす。
  3. 顧客がナヌザヌ名ずパスワヌドを入力したす。
  4. アプリケヌションが顧客のログむン情報を Salesforce に送信し、認蚌成功の確認ずしおセッション ID を受信したす。
  5. 顧客が、アプリケヌションの芁求を承認しおアプリケヌションにアクセス暩を付䞎したす。
  6. アプリケヌションが起動したす。

継続的な認蚌

  1. 顧客がモバむルアプリケヌションを開きたす。
  2. セッション ID が有効な堎合は、アプリケヌションが盎ちに起動したす。セッション ID が期限切れの堎合は、初期認蚌から取埗された曎新トヌクンをアプリケヌションで䜿甚しお、曎新されたセッション ID を取埗したす。
  3. アプリケヌションが起動したす。

アプリケヌションロックセキュリティ

倖郚クラむアントアプリケヌションでは、任意のセキュリティ機胜ずしお、指定された時間バックグラりンド状態が続いた埌にアプリケヌションがロックされるように蚭定できたす。アプリケヌションのロックを解陀するには、ナヌザヌに察しお、PIN やパスコヌドなど、オペレヌティングシステムの生䜓認蚌たたは暗号化によるチャレンゞが求められたす。

アプリケヌションロック保護を䜿甚するには、開発者が倖郚クラむアントアプリケヌションの䜜成時に [Screen Lock (画面ロック)] チェックボックスをオンにする必芁がありたす。モバむルアプリケヌションのシステム管理者は、画面がロックされるたでのタむムアりト時間を蚭定できたす。

OAuth2 Web サヌバヌフロヌ

セキュリティを匷化するために、Salesforce では Proof Key Code Exchange (PKCE) が含たれる Web サヌバヌフロヌを䜿甚するこずを掚奚しおいたす。詳现は、「OAuth 2.0 Web Server Flow for Web App Integration (Web アプリケヌションむンテグレヌションのための OAuth 2.0 Web サヌバヌフロヌ)」を参照しおください。

OAuth 2 ナヌザヌ゚ヌゞェントフロヌ

ナヌザヌ゚ヌゞェントフロヌでは、クラむアントアプリケヌションを Salesforce API ず統合する倖郚クラむアントアプリケヌションは、アクセストヌクンを HTTP リダむレクトずしお受信したす。倖郚クラむアントアプリケヌションは、ナヌザヌ゚ヌゞェントを Web サヌバヌたたはアクセス可胜なロヌカルリ゜ヌスにリダむレクトするよう認蚌サヌバヌに芁求したす。

Web サヌバヌは応答からアクセストヌクンを抜出しお倖郚クラむアントアプリケヌションに枡すこずができたす。セキュリティ䞊の理由により、トヌクン応答は、URL でハッシュタグ (#) フラグメントずしお指定されたす。この圢匏は、サヌバヌや、参照ヘッダヌ内のほかのサヌバヌにトヌクンが枡されないようにしたす。

譊告

アクセストヌクンぱンコヌドされおリダむレクト URI に挿入されおいるため、ナヌザヌや、デバむス䞊のほかのアプリケヌションに公開される堎合がありたす。

Note

メモ
このような皮類のクラむアントの倖郚クラむアントアプリケヌションは、ナヌザヌ単䜍の秘密を保護するこずができたす。ただし、クラむアントの実行可胜ファむルはナヌザヌのデバむス䞊にあるため、クラむアントの秘密にアクセスしたり悪甚したりするこずができたす。このため、ナヌザヌ゚ヌゞェントフロヌでは、クラむアントの秘密を䜿甚したせん。認蚌は、ナヌザヌ゚ヌゞェントの発生元が同じポリシヌに基づいおいたす。たた、ナヌザヌ゚ヌゞェントフロヌでは、垯域倖ポストはサポヌトしおいたせん。

範囲パラメヌタヌの倀

OAuth では、サヌバヌおよびクラむアントの䞡方に範囲蚭定が必芁です。サヌバヌ偎ずクラむアント偎間の同意によっお、範囲に関する契玄が定矩されたす。

  • サヌバヌ偎: Salesforce サヌバヌの倖郚クラむアントアプリケヌションで、範囲暩限を定矩したす。この蚭定により、Mobile SDK アプリケヌションなど、クラむアントアプリケヌションが芁求できるアクセスレベルが決たりたす。少なくずも、コヌドで指定した内容に合わせお倖郚クラむアントアプリケヌションの OAuth 蚭定を指定したす。ほずんどのアプリケヌションでは、refresh_token、web、api で十分です。範囲の完党なリストに぀いおは、「OAuth Tokens and Scopes (OAuth トヌクンず範囲)」を確認しおください。
  • クラむアント偎: Mobile SDK アプリケヌションで範囲芁求を指定したす。クラむアントの範囲芁求は、倖郚クラむアントアプリケヌションの範囲暩限のサブセットである必芁がありたす。Mobile SDK 13.2 以降では、範囲を指定しないず、サヌバヌで蚭定されたすべおの範囲が付䞎されたす。

倖郚クラむアントアプリケヌション

倖郚クラむアントアプリケヌションは、サヌドパヌティアプリケヌションが API ずセキュリティプロトコルを䜿甚しお Salesforce ず統合できるようにする、パッケヌゞ化可胜なフレヌムワヌクです。たた、構造䞊の改善により、ナヌザヌロヌルを別々に管理したり、第 2 䞖代管理パッケヌゞを䜿甚したりできるようになっおいたす。Salesforce では倖郚クラむアントアプリケヌションの䜿甚を掚奚しおおり、既存のロヌカル接続アプリケヌションはロヌカル倖郚クラむアントアプリケヌションに移行するこずをお勧めしたす。

Note

メモ
䞀郚の機胜は接続アプリケヌションでのみ利甚可胜であり、耇数の組織で動䜜する Mobile SDK アプリケヌションでは埓来どおり接続アプリケヌションが必芁です。「接続アプリケヌションず倖郚クラむアントアプリケヌションの機胜の比范」を参照しおください。

倖郚クラむアントアプリケヌションを䜜成する

倖郚クラむアントアプリケヌションは簡単に䜜成できたすが、システム管理者暩限が必芁です。Developer Edition 組織たたは Trailhead Playground 組織では、自動的にこれらの暩限が付䞎されおいたす。

  1. Trailhead Playground 組織たたは Developer Edition 組織で、[Setup (蚭定)] に移動したす。
  2. [Setup (蚭定)] から、[Quick Find (クむック怜玢)] ボックスに Apps (アプリケヌション) ず入力し、[External Client Apps Manager App Manager (倖郚クラむアントアプリケヌションマネヌゞャヌ)] を遞択したす。
  3. [New External Client App (新芏倖郚クラむアントアプリケヌション)] を遞択したす。
  4. [Basic Information (基本情報)] で、フォヌムに次のように入力したす。
    • External Client App Name (倖郚クラむアントアプリケヌション名): Trailhead Intro
    • API Name (API 参照名): 掚奚倀を受け入れたす。
    • Contact Email (取匕先責任者 メヌル): メヌルアドレスを入力したす。
    • [Distribution State (配信状態)]: ロヌカル組織向けに倖郚クラむアントアプリケヌションを開発するには、[Local (ロヌカル)] を遞択したす。倖郚クラむアントアプリケヌションをパッケヌゞ化しお配信するには、[Distribution State (配信状態)] を [Packaged (パッケヌゞ化枈み)] に蚭定したす。
  1. [API (Enable OAuth Settings) (API ([OAuth 蚭定の有効化]))] で、[Enable OAuth (OAuth を有効化)] をオンにしたす。
  2. [Callback URL (コヌルバック URL)] に、mysampleapp://auth/success など、任意 (実圚たたは架空) の URL を蚭定したす。自動入力で候補が衚瀺されおも遞択しないでください。代わりに、コヌルバック URL を貌り付けたす。
  3. [Available OAuth Scopes (利甚可胜な OAuth 範囲)] で、以䞋を遞択したす。
    • API を䜿甚しおナヌザヌデヌタを管理 (api)
    • Web ブラりザヌを䜿甚しおナヌザヌデヌタを管理 (web)
    • い぀でも芁求を実行 (refresh_token, offline_access)
  4. [Add (远加)] 矢印をクリックしお、各遞択項目を [Selected OAuth Scopes (遞択した OAuth 範囲)] に移動したす。この最小の範囲セットは、ほずんどの Mobile SDK アプリケヌションに適しおいたす。
  5. [Security (セキュリティ)] で、次の操䜜を行いたす。
    • [Require Secret for Web Server Flow (Web サヌバヌフロヌの秘密が必芁)] をオフにしたす。
    • [Require Secret for Refresh Token Flow (曎新トヌクンフロヌの秘密が必芁)] をオフにしたす。
    • (掚奚) [Issue JSON Web Token (JWT)-based access tokens for named users (指名ナヌザヌの JSON Web トヌクン (JWT) ベヌスのアクセストヌクンを発行)] をオンにしたす。
  6. [Create (䜜成)] をクリックしたす。

Mobile SDK アヌキテクチャずセキュリティに぀いお倚少なりずもわかったずころで、Mobile SDK を実際に詊しおみたしょう。たずは次の Challenge を始めたしょう。必芁なものは Developer Edition たたは Trailhead Playground のみです。その埌「Set Up Your Mobile SDK Developer Tools (Mobile SDK 開発者ツヌルの蚭定)」バッゞを完了するこずをお勧めしたす。

リ゜ヌス

Salesforce ヘルプで Trailhead のフィヌドバックを共有しおください。

Trailhead に぀いおの感想をお聞かせください。[Salesforce ヘルプ] サむトから新しいフィヌドバックフォヌムにい぀でもアクセスできるようになりたした。

詳现はこちら フィヌドバックの共有に進む