サービスプロバイダーと Salesforce の統合
学習の目的
- 接続アプリケーションを使用して、サービスプロバイダーと Salesforce 組織をどう統合できるかを説明する。
- ユーザー認証に SAML 2.0 を実装する接続アプリケーションを使用して、サービスプロバイダーと Salesforce 組織を統合する方法について説明する。
- ユーザー認証に OpenID Connect を実装する接続アプリケーションを使用して、サービスプロバイダーと Salesforce 組織を統合する方法について説明する。
SSO の復習
シングルサインオン (SSO) を使用すると、ユーザーがアプリケーションごとに個別にログインしたり、異なるユーザーログイン情報を作成 (および記憶) しなくても、他のアプリケーションにアクセスできます。SSO によってユーザーを外部アプリケーションに結び付けることができます。たとえば、コールセンターの担当者が Salesforce 組織のポータルにある [カスタマーサポート] タイルをクリックすれば、ログイン情報を再度入力しなくてもカスタマーサポート組織にアクセスできます。
ID プロバイダーとサービスプロバイダー
SSO フローを理解するうえで重要な点は、ID プロバイダーとサービスプロバイダーが果たす役割を認識することです。
プロバイダータイプ | 役割 |
ID プロバイダー | ユーザーが再度ログインしなくても他の外部アプリケーションにアクセスできるようにする、信頼できるサービスです。 |
サービスプロバイダー | 外部アプリケーションの代わりに ID プロバイダーから ID を受け入れるサービスです。 |
Salesforce が ID プロバイダーとして機能する場合、接続アプリケーションを使用してサービスプロバイダーと組織を統合することができます。このような SSO フローでは、接続アプリケーションはユーザー認証に SAML 2.0 または OpenID Connect を実装します。
SAML を使用したサービスプロバイダーとの統合
サービスプロバイダーと Salesforce 組織を統合するために、ユーザー認証に SAML 2.0 を実装する接続アプリケーションを使用できます。組織ですでに SAML プロトコルが使用されている場合は、このオプションを使用します。
たとえば、ユーザー認証に SAML 2.0 を実装したカスタムの Your Benefits (従業員福利厚生) という Web アプリケーションを構築したとします。ユーザーが各自の Salesforce ログイン情報を使用して、このアプリケーションにログインできるようにしたいと考えています。この SSO フローを設定するには、Your Benefits (従業員福利厚生) Web アプリケーションを接続アプリケーションとして設定します。組織で SAML プロトコルを実装していることから、Salesforce 組織はすでに ID プロバイダーとして設定されています。ユーザーが Salesforce 組織にログインすると、別々にログインしなくても Your Benefits (従業員福利厚生) Web アプリケーションにアクセスすることができます。
- 営業担当が Salesforce 組織にログインし、Your Benefits (従業員福利厚生) Web アプリケーションを開きます。
- Salesforce が、SAML レスポンスをサービスプロバイダー (接続アプリケーションの設定時に定義) に送信します。
- サービスプロバイダーがユーザーを識別し、SAML レスポンスで Salesforce から送信されたデジタル証明書を検証します。
- ユーザーが Your Benefits (従業員福利厚生) Web アプリケーションにログインします。
OpenID Connect を使用したサービスプロバイダーとの統合
OpenID Connect も SAML と同様に、2 つのサービス間の SSO を可能にするプロトコルです。SAML と異なる点は、OpenID Connect が今日の API エコノミー向けに構築されていることです。OAuth 2.0 上に認証レイヤーを追加して、ユーザー情報を含む ID トークンと OAuth アクセストークンを安全に交換できるようにします。
サービスプロバイダーと Salesforce 組織を統合するために、ユーザー認証に OpenID Connect を実装する接続アプリケーションを使用できます。このオプション使用する場合、サービスプロバイダーは OpenID Connect トークンを受け入れる必要があります。接続アプリケーションにサービスプロバイダー用の OpenID Connect 範囲を設定します。OpenID Connect 範囲は、ID トークンでユーザー情報を渡します。これでユーザーが各自の Salesforce または Experience Cloud のログイン情報を使用して、外部アプリケーションにログインできます。
たとえば、ユーザーが Salesforce 組織から直接、OpenID Connect を受け入れる外部の Wellness Tracker (健康追跡) アプリケーションにサインオンできるようにするとします。そのために、Wellness Tracker (健康追跡) アプリケーション用の接続アプリケーションを作成します。接続アプリケーションでは、OAuth 設定を有効にし、[一意の識別子へのアクセスを許可 (openid)] 範囲を選択して、ID トークンを設定します。この設定は、サービスプロバイダーと Salesforce 組織を統合することによって Wellness Tracker (健康追跡) アプリケーションの SSO フローを有効にします。
- ユーザーが Wellness Tracker (健康追跡) アプリケーションを開きます。
- Salesforce が、接続アプリケーションのクライアント ID と秘密を他の認証データとともに Wellness Tracker (健康追跡) サービスに送信します。
- Wellness Tracker (健康追跡) サービスが、アプリケーションへのアクセス要求を検証します。続いて、ユーザーデータへのアクセストークンと引き換えに、この情報を Salesforce サーバーに返します。
- Salesforce が、このトークンを Wellness Tracker (健康追跡) サービスに送信します。
- Wellness Tracker (健康追跡) サービスが、ユーザーの Wellness Tracker (健康追跡) アカウントへのアクセスを承認します。
- ユーザーが Wellness Tracker (健康追跡) アプリケーションにログインします。