接続アプリケーションについて
学習の目的
- 接続アプリケーションとは何かを説明する。
- 接続アプリケーションをどのように使用できるかを説明する。
- 接続アプリケーションに関する各自のロール (開発者またはシステム管理者) を特定する。
ジャーニーの始まり
接続アプリケーションに慣れている方は、このアプリケーションをさまざまな形で利用できることをご存知でしょう。接続アプリケーションに慣れていない場合は、これから接続アプリケーションがユーザー、外部サービス、Salesforce を結び付けるフレームワークであることを学習していきます。接続アプリケーションの機能は膨大で、使いこなせるようになるためには Trailhead の 1 つのトレイルに取り組む必要があります。けれども心配いりません。あなたのジャーニーのガイドとして、基本事項から順番に説明していきます。
このモジュールでは、接続アプリケーションをどのように使用できるのかを説明します。接続アプリケーションの作成や設定については、今後のモジュールで詳しく解説する予定です。このジャーニーを終える頃には、接続アプリケーションの達人になっていることでしょう。
接続アプリケーションとは?
接続アプリケーションは、API や標準プロトコル (Security Assertion Markup Language (SAML)、OAuth、OpenID Connect など) を使用して、外部アプリケーションを Salesforce に統合できるようにするフレームワークです。接続アプリケーションではこうしたプロトコルを使用して、外部アプリケーションの承認、認証、シングルサインオン (SSO) の提供を行います。Salesforce に統合された外部アプリケーションは、カスタマーサクセスプラットフォームをはじめとするプラットフォームやデバイス、SaaS サブスクリプションで実行できます。
たとえば、あなたが Salesforce モバイルアプリケーションにログインして Salesforce 組織のデータを参照している場合も、接続アプリケーションを使用しています。
接続アプリケーションは、外部アプリケーションに関するメタデータを取得して、外部アプリケーションがどのプロトコル (SAML、OAuth、OpenID Connect) を使用し、どこで実行されているかを Salesforce に伝えます。そして、Salesforce が外部アプリケーションにデータへのアクセスを許可し、アクセス制限 (アプリケーションのアクセス期限など) を定義するポリシーをアタッチできます。また Salesforce で、接続アプリケーションの利用状況を監査することもできます。
Salesforce 組織で接続アプリケーションを使用する方法
組織では接続アプリケーションをさまざまな形で活用できます。これらのユースケースをご紹介しましょう。
API インテグレーションを使用したデータへのアクセス
開発者や独立系ソフトウェアベンダー (ISV) が Salesforce 組織からデータを取り込む Web ベースのアプリケーションやモバイルアプリケーションを構築する場合、このデータを要求するクライアントに接続アプリケーションを使用できます。この場合は、Salesforce API に統合する接続アプリケーションを作成します。
たとえば、Salesforce 組織から注文状況を取り込む Web ベースのアプリケーションを構築する場合は、その用途の接続アプリケーションを作成できます。この接続アプリケーションに OAuth 2.0 を組み合わせれば、Web ベースのアプリケーションを Salesforce API に統合して、定義したデータに対する承認されたアクセスを許可できます。
あるいは、Salesforce 組織の顧客の連絡先情報を検索するモバイルアプリケーションを構築したいと考えていることもあるでしょう。Salesforce Mobile SDK を使用すれば、接続アプリケーションに OAuth 2.0 を実装できます。この接続アプリケーションがモバイルアプリケーションを Salesforce API に統合し、定義したデータに対する承認されたアクセスを許可します。
Salesforce API に統合する接続アプリケーションの種別に応じて、数種類の OAuth 2.0 認証フローの中から選択できます。各種のフローについては次の単元で説明します。
サービスプロバイダーと Salesforce の統合
Salesforce が ID プロバイダーとして機能する場合、接続アプリケーションを使用してサービスプロバイダーと組織を統合することができます。組織の設定に応じて、次のいずれかの方法を使用できます。
SAML 2.0 を使用する接続アプリケーションを使用して、サービスプロバイダーと組織を統合します。サービスプロバイダーまたは ID プロバイダーがフローを開始する場合は、Salesforce が SAML シングルサインオン (SSO) をサポートします。
たとえば、ユーザー認証に SAML 2.0 を実装したカスタムの Your Benefits (従業員福利厚生) という Web アプリケーションを構築したとします。ユーザーが各自の Salesforce ログイン情報を使用して、このアプリケーションにログインできるようにしたいと考えています。この SSO フローを設定するには、Your Benefits (従業員福利厚生) Web アプリケーションを接続アプリケーションとして設定します。組織で SAML プロトコル を実装していることから、Salesforce 組織はすでに ID プロバイダーとして設定されています。これでユーザーが各自の Salesforce ログイン情報を使用して、Your Benefits (従業員福利厚生) アプリケーションにログインできるようになります。
また、OpenID Connect を使用する接続アプリケーションを使用して、サービスプロバイダーと Salesforce 組織を統合することもできます。このオプション使用する場合、サービスプロバイダーは OpenID Connect トークンを受け入れる必要があります。
たとえば、ユーザーが Salesforce 組織から直接、OpenID Connect を受け入れる外部の Wellness Tracker (健康追跡) アプリケーションにサインオンできるようにするとします。この SSO フローを設定するには、Wellness Tracker (健康追跡) アプリケーションを接続アプリケーションとして設定し、OpenID Connect 範囲を指定します。この設定は、サービスプロバイダーと Salesforce 組織を統合することによって Wellness Tracker (健康追跡) アプリケーションの SSO フローを有効にします。
こうしたユースケースについては、後続の単元で詳しく説明します。また、Salesforce Identity Connect や SSO についての詳細は、Trailhead の「Identity の基本」モジュールで確認できます。
外部 API ゲートウェイの認証の提供
外部 API ゲートウェイでホストされているリソースを保護するために、Salesforce を独立した OAuth 認証サーバーとして機能させることができます。リソースサーバーが、OpenID Connect 動的クライアント登録を使用して、Salesforce にクライアントアプリケーションを接続アプリケーションとして自動的に作成します。そうすると、Salesforce がこれらの接続アプリケーションに、サードパーティサービスがホストする保護されたリソースへのアクセスを承認します。
たとえば、Salesforce を、MuleSoft の Anypoint Platform 上でホストされる API ゲートウェイの OAuth 認証サーバーとして機能させることができます。リソースサーバーである MuleSoft の Anypoint Platform は、クライアントアプリケーションを接続アプリケーションとして動的に作成できます。これらの接続アプリケーションが、API ゲートウェイによって保護されているデータへのアクセス要求を Salesforce に送信できます。要求を受信した Salesforce は、接続アプリケーションを認証して承認し、API ゲートウェイによって保護されているデータへのアクセスを許可できます。
このユースケースがよくわからないと感じても心配いりません。後続の単元で詳しく説明します。
サードパーティアプリケーションへのアクセスの管理
組織でサードパーティアプリケーション (AppExchange から入手したサードパーティアプリケーションなど) を使用している場合は、システム管理者が、サードパーティアプリケーションが組織のどのデータにアクセスできるかを管理するセキュリティポリシーを設定できます。システム管理者はまた、誰がサードパーティアプリケーションを使用できるかも定義できます。
たとえば、組織のユーザーが出張を手配できるサードパーティアプリケーションをインストールするとします。接続アプリケーションの [管理者が承認したユーザーは事前承認済み] を選択すると、特定のユーザープロファイルをこのアプリケーションに割り当てることができます。そして、このユーザープロファイルのあるユーザーのみがこのアプリケーションにアクセスできます。また、一定の期間後にこの出張手配アプリケーションによる Salesforce データへのアクセスを取り消す更新トークンポリシーを設定することもできます。
サードパーティアプリケーションを管理するセキュリティポリシーを設定する以外に、こうしたアプリケーションを Salesforce 組織からアンインストールすることや、必要に応じてブロックすることも可能です。
こうしたユースケースについては、接続アプリケーションの管理に関する今後のモジュールで取り上げます。
接続アプリケーションに関するロール
簡単に言うと、開発者は接続アプリケーションの認証フローの作成と設定を行い、システム管理者は接続アプリケーションの使用状況を管理するポリシーや権限を設定します。けれども、どちらのロールもこれだけではありません。
接続アプリケーションの開発者
接続アプリケーションの開発者とは、接続アプリケーションとして Salesforce データにアクセス可能な API インテグレーションまたは外部アプリケーションを構築する Salesforce の開発者と ISV です。開発者は各自の組織向けの接続アプリケーションを構築できますが、他の Salesforce 組織もそのアプリケーションをインストールして使用できます。
接続アプリケーションのシステム管理者
接続アプリケーションのシステム管理者は、Salesforce 組織の接続アプリケーションのインストールやアンインストール、必要に応じてブロックを行います。また、アプリケーションに権限やポリシーを設定して、接続アプリケーションを誰が使用でき、このアプリケーションにどこからアクセスできるかを明示的に定義します。これらの権限やポリシー (プロファイルを含む)、権限セット、IP 範囲制限、多要素認証によって組織のセキュリティが強化されます。
リソース
- Salesforce ヘルプ: 接続アプリケーション
- Trailhead モジュール: Identity の基本
- Salesforce 開発者 Web サイト: Identity Developer Center (Identity デベロッパーセンター)