シングルサインオンの有効化
Salesforce では、次のいくつかの方法でシングルサインオンを使用できます。
- Security Assertion Markup Language (SAML) を使用する統合認証を使用すると、関連付けられているが関連のない Web サービス間で認証と認証データを送信することができます。これにより、クライアントアプリケーションから Salesforce にサインオンできます。SAML を使用した統合認証は、組織でデフォルトで有効化されています。
-
代理認証のシングルサインオンを使用すると、Salesforce と選択した認証メソッドを統合することができます。これにより、LDAP (Lightweight Directory Access Protocol) サーバによる認証を統合するか、パスワードの変わりにトークンを使用する認証にシングルサインオンを実行することができます。一部のユーザは代理認証を使用し、それ以外のユーザは引き続き Salesforce 管理パスワードを使用するように、権限レベルで代理認証を管理します。代理認証は組織単位ではなく、権限ごとに設定されます。代理認証を使用する主な理由を次に示します。この機能を Salesforce で有効化されるよう要求する必要があります。組織の代理認証シングルサインオンの有効化については、Salesforce にお問い合わせください。
- 安全な ID プロバイダとのインテグレーションなど、より厳密なユーザ認証を使用できる
- ログインページを非公開にし、企業ファイアウォールの内側からのみアクセスできるようにする
- フィッシング攻撃を減らすために、Salesforce を使用する他のすべの企業と差別化できる
- 認証プロバイダは外部サービスプロバイダのログイン情報を使用して、Salesforce 組織にユーザがログインできるようにします。Salesforce では、OpenID Connect プロトコルがサポートされており、ユーザは任意の OpenID プロバイダ (OpenID Connect をサポートする Google、Paypal、LinkedIn などのサービス) からログインできます。認証プロバイダが有効化されている場合、Salesforce はユーザのパスワードを検証しません。代わりに、Salesforce は外部サービスプロバイダのユーザログイン情報を使用して、認証情報を設定します。
シングルサインオンの利点
シングルサインオンを実装すると、組織は次の利点を得られます。
- 管理コストの削減: シングルサインオンを使用すると、パスワードを 1 つ覚えるだけで、ネットワークリソースや外部アプリケーションと Salesforce の両方にアクセスできます。企業ネットワークの内側から Salesforce にアクセスするとき、ユーザはシームレスにログインでき、ユーザ名やパスワードの入力を求められることはありません。企業ネットワークの外側から Salesforce にアクセスするとき、ユーザの企業ネットワークログインにより、ログインできます。管理するパスワードが少なくなるほど、システム管理者へのパスワードリセット要求も少なくなります。
- 既存の投資の活用: 多くの企業が中央 LDAP データベースを使用してユーザ ID を管理しています。Salesforce の認証をこのシステムに代行させることで、ユーザが LDAP システムから削除されると、Salesforce にはアクセスできなくなります。このため、退社するユーザは、離職後の会社のデータへのアクセス権を自動的に失うことになります。
- 時間の節約: 平均すると、1 つのオンラインアプリケーションにログインするのに 5 ~ 20 秒かかります。ユーザ名やパスワードの入力ミスがあり、再入力を求めるメッセージが出た場合には、さらに時間がかかります。シングルサインオンを使用すると、Salesforce に手動でログインする必要はなくなります。この数秒の節約が、生産性の向上につながります。
- ユーザの採用の増加: ログインしなくてよいという便利さから、日常的に Salesforce を使用するようになります。たとえば、ユーザはメールメッセージにレコードやレポートなどの Salesforce 内の情報へのリンクを記載して送信できます。メールの受信者がリンクをクリックすると、対応する Salesforce ページが自動的に開きます。
- セキュリティの向上: 企業ネットワーク用に作成したパスワードポリシーは、Salesforce にも有効となります。また、1 回の使用のみ有効な認証情報を送信することで、機密データへのアクセス権を持つユーザに対するセキュリティの向上を図れます。
代理認証のベストプラクティス
組織で代理認証シングルサインオンを実装する場合は、次のベストプラクティスを考慮してください。
- 組織の Web サービスの実装は、Salesforce サーバからアクセスできる必要があります。これは、Web サービスを DMZ 内のサーバにリリースする必要があるということです。Salesforce で、[代理認証] セクション ([設定] から [クイック検索] ボックスに「シングルサインオン設定」と入力し、[シングルサインオン設定] を選択) に [代理ゲートウェイ URL] を入力するときは、サーバの外部 DNS 名を使用してください。
- Salesforce とシステムを接続できない場合、または要求の処理に 10 秒以上かかる場合は、ログイン試行は失敗します。エラーはユーザに報告され、ユーザ企業の認証サービスが停止していることを示します。
- 名前空間、要素名、大文字の使用は、SOAP リクエストにあるとおりとします。可能な限り、WSDL からサーバスタブを生成して正確性を保つようにします。
- セキュリティ上の理由から、Web サービスは TLS で使用可能にしてください。Verisign や Thawte などの信頼できるプロバイダから得た証明書を使用する必要があります。信頼できるプロバイダの一覧については、Salesforce にお問い合わせください。
- ログイン要求を出した IP アドレスは、sourceIp です。この情報を使用して、ユーザの場所に基づいてアクセスを制限します。ログイン IP の範囲を検証する Salesforce の機能は、シングルサインオンユーザに対しても有効です。詳細は、「ログイン制限の設定」を参照してください。
- 社内組織で利用しているユーザ名と Salesforce ユーザ名との対応付けが必要な場合があります。組織が標準の対応付けに従っていない場合、ユーザデータベーススキーマ (Active Directory など) を拡張して、Salesforce ユーザ名をユーザアカウントの属性として含めることができる場合があります。そうすることで、お使いの認証サービスで、この属性を使用してユーザアカウントを対応付けることができます。
- システム管理者に対しては、シングルサインオンを有効にしないことをお勧めします。システム管理者がシングルサインオンユーザの場合、シングルサインオンサーバが機能停止すると、Salesforce にログインする方法がなくなります。システム管理者は、問題がある場合にはシングルサインオンを無効にできるように、常に Salesforce にログインできるようにしておく必要があります。
- 組織に実装する前にシングルサインオンソリューションを開発するときには、Developer Edition または Sandbox のアカウントの使用をお勧めします。無償の Developer Edition アカウントにサインアップするには、developer.salesforce.com にアクセスしてください。
- Salesforce for Outlook、Connect for Office、および Connect Offline などの Salesforce クライアントで実装を必ずテストしてください。詳細は、「Single Sign-On for Salesforce clients」を参照してください。
SAML ベストプラクティスを使用した統合認証
組織で SAML を使用した統合シングルサインオンを実装する場合は、次のベストプラクティスを考慮してください。
- [シングルサインオン設定] ページから [Salesforce ログイン URL] 値を取得し、ID プロバイダの設定パラメータの対応箇所 (「受信者 URL」と呼ばれることがある) に指定します。
- Salesforce では、IDP サーバを使用したクロックスキューを最大 3 分間許可します。サーバクロックが最新であることを確認してください。
- SAML アサーションを使ったログインができない場合、ログイン履歴を常にチェックし、エラーメッセージを記録します。トラブルシューティングするには、[シングルサインオン設定] ページで SAML アサーション検証を使用します。
- 社内組織で利用しているユーザ名と Salesforce ユーザ名との対応付けが必要な場合があります。各 Salesforce ユーザの FederationIdentifier 項目に一意の識別子を追加する、またはユーザデータベーススキーマ (Active Directory など) を拡張して、Salesforce ユーザ名をユーザアカウントの属性として追加します。[SAML のユーザ ID 種別] 項目の対応するオプションを選択し、SAML アサーションの識別子を送信するよう、認証サービスを設定します。
- SAML アサーションを使用したログインをユーザに許可する前に、SAML 組織設定を有効にし、必要な設定をすべて行ってください。
- ユーザが Salesforce に直接ログインできないようにするには、[私のドメイン] 機能を使用し、ログインポリシーについてシステム管理者が制御できるようにします。[シングルサインオン設定] 設定ページの [Salesforce ログイン URL] 値で指定した URL パラメータをカスタムドメインで使用できます。
たとえば、[Salesforce ログイン URL] が https://login.salesforce.com/?saml=02HKiP... の場合、
https://<my_domain_name>.my.salesforce.com/?saml=02HKiP... を使用できます。
- SAML シングルサインオンソリューションをテストするときには、Sandbox または Developer Edition のアカウントの使用をお勧めします。無償の Developer Edition アカウントにサインアップするには、developer.salesforce.com にアクセスしてください。
- Sandbox のコピーは、SAML を使用する統合認証を無効にして作成されます。[Salesforce ログイン URL] の値を除き、設定情報はすべて保存されます。[Salesforce ログイン URL] は、SAML を再度有効にした後、Sandbox URL と一致するように更新されます (例: http://cs1.salesforce.com)。Sandbox で SAML を有効にするには、[設定] から [クイック検索] ボックスに「シングルサインオン設定」と入力し、[シングルサインオン設定] を選択し、[編集] をクリックしてから、[SAML を有効化] を選択します。
- ID プロバイダによって、ユーザがサービスプロバイダの利用者 URL を設定することが許可されている必要があります。この値はシングルサインオン設定の [エンティティ ID] の値と一致する必要があります。デフォルト値は、https://saml.salesforce.com です。
ポータルのシングルサインオンのベストプラクティス
Summer '13 リリース以降では、新しい組織にカスタマーポータルとパートナーポータルを使用できません。代わりに、コミュニティを使用します。コミュニティのシングルサインオンおよび SAML の詳細は、「Salesforce Communites 実装ガイド」の「コミュニティの SAML の設定」を参照してください。ポータルを引き続き使用する場合は、次の点に注意してください。
- ポータルで使用できるのは、SAML バージョン 2.0 のみです。
- カスタマーポータルおよびパートナーポータルのみがサポートされます。
- ログインを開始したサービスプロバイダはサポートされません。
- ポータルのシングルサインオンには、portal_id および organization_id 属性の両方が必須です。1 つだけ指定した場合、ユーザにはエラーが表示されます。
- portal_id および organization_id の両方の属性が SAML アサーションに存在する場合、ユーザはそのポータルログインに送られます。どちらも指定されていない場合、ユーザは通常の SAML Salesforce ログインに送られます。
- 1 つの組織で複数のポータルを使用できます。