SAML ログインエラー
ユーザーがシングルサインオン (SSO) で組織にアクセスできない場合は、ログイン履歴を使用して、それが SAML アサーションエラーであるか設定の問題であるかを判断します。アサーション関連のエラーの場合は、SAML アサーション検証を使用して具体的なアサーションの問題を特定します。ID プロバイダーと連携して、SAML アサーションと SSO 設定が有効であることを確認します。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
統合認証を使用可能なエディション: すべてのエディション 代理認証を使用可能なエディション: Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition 認証プロバイダーを使用可能なエディション: Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
| 必要なユーザー権限 | |
|---|---|
| 設定を参照する | 「設定・定義の参照」 |
| 設定を編集する | 「アプリケーションのカスタマイズ」 および 「すべてのデータの編集」 |
ログイン履歴
ログイン履歴を使用して、ログインエラーが SAML アサーションに関連しているか SSO 設定に関連しているかを判断します。
ログイン履歴に次のいずれかのエラーがある場合は、SAML アサーション検証を使用してアサーション内の具体的なエラーを見つけます。
- アサーションが期限切れです
- アサーションのタイムスタンプが古すぎます。
- アサーションが無効です
- アサーションに問題があります (<Subject> 要素がないなど)。
- 利用者が無効です
<Audience>で指定された値が SSO 設定中に指定した [エンティティ ID] と一致しません。
ログイン履歴に次のいずれかのエラーがある場合は、SSO 設定で設定の問題を確認します。[設定] から、[クイック検索] ボックスを使用して [シングルサインオン設定] を見つけて選択します。ID プロバイダーから SAML アサーションのサンプルを入手し、設定内の情報が正しいことを確認します。設定が正しい場合は、SAML アサーション検証を使用してサンプルアサーションを実行します。
- 設定エラー/無効な権限
- Salesforce の SAML 設定に問題があります。たとえば、アップロードした証明書が破損しているか、組織の [シングルサインオン設定] で SAML が無効になっています。
- 発行者が一致しません
- 設定で指定された発行者がアサーション内の発行者と一致することを確認します。
- 受信者が一致しません
- 設定で指定された受信者がアサーション内の受信者と一致することを確認します。
- 再実行が検出されました
- すべてのアサーションには一意の ID があります。 このエラーは、Salesforce が重複するアサーション ID を検出したことを意味します。
- 署名が無効です
- 設定中にアップロードした証明書がアサーション内の署名を検証できませんでした。ID プロバイダーを使用して、適切な証明書があることを確認します。
- 件名確認エラー
- 設定で指定された <Subject> がアサーション内の <Subject> と一致することを確認します。
SAML アサーション検証
SAML アサーション検証を実行すると、Salesforce の有効性要件に対してアサーションがチェックされ、アサーションが各要件を満たしているかどうかが通知されます。Salesforce では、アサーションで次の有効性要件が適用されます (結果ページに表示される順序で示されています)。
- 状況
- SAML レスポンスの状況項目に成功と示されている必要があります。
- 認証ステートメント
- ID プロバイダーはアサーションに
<AuthenticationStatement>を含める必要があります。 - 条件ステートメント
- 一部のアサーションは
<Conditions>ステートメントを使用して、アサーションが有効である期間を制約します。これは、有効期間と呼ばれます。アサーションにタイムスタンプがある<Conditions>ステートメントが含まれる場合、そのタイムスタンプが有効である必要があります。 - タイムスタンプ
- ID プロバイダーは、アサーションを送信した日時を示すタイムスタンプを生成します。Salesforce は、タイムスタンプの 5 分プラスマイナス 3 分以内に ID プロバイダーからアサーションを受信する必要があります。実際には、この制約は Salesforce がタイムスタンプの 3 分前から 8 分後までにアサーションを受信できることを意味します。アサーションで指定されている有効期間がこれより短い場合、検証でこの要件もチェックされます。
NotBeforeとNotOnOrAfterの制約も定義され、有効である必要があります。 - 属性
- Salesforce 設定を [ID は Attribute 要素にあります] に設定した場合、ID プロバイダーからのアサーションに
<AttributeStatement>が含まれている必要があります。 <AttributeName>のみが必要です。- 形式
<Issuer>ステートメントのFormat属性は、"urn:oasis:names:tc:SAML:2.0:nameid-format:entity" と設定するか、全く設定しないかのいずれかである必要があります。次に例を示します。
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://www.salesforce.com</saml:Issuer>次の例も有効です。
<saml:Issuer >https://www.salesforce.com</saml:Issuer>- 発行者
- アサーションで指定された発行者は、Salesforce を設定するときに指定した発行者と一致する必要があります。
- 件名
- アサーションの件名は、Salesforce ユーザー名またはユーザーの統合 ID のいずれかにする必要があります。
- 利用者
- アサーションには、設定で指定した [エンティティ ID] と一致する
<Audience>値が含まれている必要があります。デフォルト値はhttps://saml.salesforce.comです。 - 受信者
- アサーションには、Salesforce の設定で指定した Salesforce ログイン URL または OAuth 2.0 トークンエンドポイントのいずれかと一致する受信者が含まれる必要があります。
- 署名
- アサーションには、有効な署名が含まれている必要があります。署名は、SSO の設定時にアップロードした証明書に関連付けられている秘密鍵を使用して作成する必要があります。ID プロバイダーがレスポンスボディとアサーションに署名することをお勧めします。SSO 中に Salesforce が SAML 応答を受信すると、まず応答本文の署名を検索します。レスポンスボディに有効な署名がある場合、アサーションには有効な署名があるとみなされます。レスポンスボディの署名が欠落しているか無効な場合、Salesforce はアサーション自体で署名を検索します。
- サイト URL 属性
- 有効な値は、次のとおりです。
- 未指定
- オン
- サイトの URL が無効です
- HTTPS にはサイトの URL が必要です
- 指定サイトが無効であるか、ページの使用制限を超えています
- ポータルおよび組織 ID
- 省略可能。ポータルへの SAML ログインの場合、アサーション内の受信者および組織 ID が SSO 設定で指定された受信者および組織 ID と一致する必要があります。
- セッションセキュリティレベル
- 省略可能。セッションセキュリティレベルは、ユーザーセッションの安全性を表します。セッションセキュリティ設定を定義した場合、アサーション内のセッションセキュリティレベルが設定と一致する必要があります。
