【Okta】SAML の AMR 属性を使って Salesforce の二重プロンプトを回避する

はじめに

こんにちは、ネクストモード株式会社 テクニカルサポート担当です。

Salesforce は 2024年以降、セキュリティ強化の一環として多要素認証(MFA)を段階的に厳格化しています。この変更により、Okta などの SSO 環境では、認証プロンプトが二重に表示される問題が発生する可能性があります。

本記事では、この二重プロンプトを回避し、スムーズな SSO 体験を維持するための Okta 側の設定変更について解説します。

詳細は以下の Salesforce 公式記事を参照してください。

SSOログインにおけるデバイスの有効化(Device Activation)の変更

 

対処方法

Okta で設定変更を行うことで、Salesforce に対してユーザーがどのような認証方法を利用したかを伝えることができます。これにより Salesforce 認証方法が定められた方法であった場合に追加の認証プロンプトを表示しなくなります。

以下の Okta のドキュメントにもとづき設定します。

 

具体的には、Salesforce アプリケーションの Authentication タブから Edit をクリックし、Attributes を開きます。

Okta管理画面でSalesforce設定からAuthenticationタブを開いた画面です。

 

Attribute Statements に以下の値を設定します。

  • Name: AMR
  • Name format: Unspecified
  • Value: session.amr

Attribute Statementsをカスタマイズしている画面です。

 

設定確認:SAML Tracer で AMR 値を観測する

設定が正しく反映されているか確認するために、SAML Tracer などのブラウザ拡張機能を使用して、Okta から Salesforce へ送信される SAML レスポンスを観測することができます。

SAML レスポンス内の Attribute StatementAMR 属性が含まれ、session.amr の値(例:pwdmfa など)が正しく送信されていることを確認してください。

これにより、Salesforce 側でユーザーの認証方法が正しく認識され、二重プロンプトが回避されていることを確認できます。

例えば Okta FastPass で認証を行った場合は以下のように phrokta_verify が確認できます。

SAML TracerでAMR値を確認している画面です。

 

冒頭の Salesforce のドキュメントでは okta_verify が含まれていれば二重プロンプトは発生しない旨が記載されていますので、安心できますね。

 

まとめ

本記事では、Salesforce のセキュリティ強化に伴う二重プロンプトの問題と、Okta 側で AMR 属性を設定することでこれを回避する方法について解説しました。

今後、Salesforce のように IdP 側でユーザーの認証方法を詳細に確認し、それに応じたセキュリティポリシーを適用するニーズは、さらに増加していくことが予想されます。多要素認証の普及とともに、SSO 環境においても認証強度の可視化と制御が重要になってきています。

この記事が、同様の課題に直面されている方々の一助となれば幸いです。