Active Directory フェデレーション サービスの prompt=login パラメーターのサポート

次のドキュメントでは、AD FS で使用できる prompt=login パラメーターのネイティブ サポートについて説明します。

prompt=login とは

アプリケーションが Azure AD からの新しい認証を要求する必要がある場合、つまり、ユーザーが既に認証されている場合でもユーザーを再認証するためにアプリケーションが Azure AD を必要とする場合、認証要求の一部として Azure AD に prompt=login パラメーターを送信できます。

これがフェデレーション ユーザーの要求である場合、Azure AD は、(AD FS のように) 要求が新規認証用であることを通知する必要があります。

既定では、Azure AD は、この種類の認証要求をフェデレーション IdP に送信するときに prompt=loginwfresh=0 および wauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password に変換します。

これらのパラメーターの意味は次のとおりです。

  • wfresh=0: 新しい認証を行います
  • wauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password: 新しい認証要求にユーザー名とパスワードを使用します

これにより、wauth パラメーターで要求される場合にように、ユーザー名とパスワード以外の認証の種類が必要になる企業イントラネットおよび多要素認証のシナリオで問題が発生する可能性があります。

2016 年 7 月の更新プログラムのロールアップを使用した Windows Server 2012 R2 の AD FS では、prompt=login パラメーターのネイティブ サポートが導入されました。 つまり、Azure AD は、Azure AD および Office 365 認証要求の一部として、このパラメーターをそのまま AD FS サービスに送信できるようになりました。

prompt=login をサポートするバージョンの AD FS

prompt=login パラメーターをサポートする AD FS バージョンの一覧を次に示します。

  • 2016 年 7 月の更新プログラムのロールアップを使用した Windows Server 2012 R2 の AD FS
  • Windows Server 2016 の AD FS

prompt=login を AD FS に送信するようにフェデレーション ドメインを構成する方法

Azure AD PowerShell モジュールを使用して、設定を構成します。

注意

prompt=login の機能 (PromptLoginBehavior プロパティで有効化) は、現時点では バージョン 1.0 の Azure AD Powershell モジュール でのみ使用できます。このバージョンでは、コマンドレットの名前に「Msol」が含まれています (Set-MsolDomainFederationSettings など)。 この機能は、現時点では、Azure AD PowerShell モジュールの「バージョン 2.0」経由では使用できません。このバージョンのコマンドレットの名前は「Set-AzureAD*」のようになっています。 これはドメインごとの設定です。 1 つのフェデレーションによって複数のドメインがフェデレーションされている場合、必要な各ドメインに対して変更を適用する必要があります。

  1. まず、次の PowerShell コマンドを実行して、フェデレーション ドメインの PreferredAuthenticationProtocolSupportsMfa、および PromptLoginBehavior の現在の値を取得します。
    Get-MsolDomainFederationSettings -DomainName <your_domain_name> | Format-List *

注意

既定では Get-MsolDomainFederationSettings の出力では、コンソールに特定のプロパティは表示されません。 すべてのプロパティを表示するには、その出力を Format-List * にパイプ (|) して、オブジェクトのすべてのプロパティを強制的に出力する必要があります。

Get-MsolDomainFederationSettings

注意

プロパティ PromptLoginBehavior の値が空 ($null) の場合は、TranslateToFreshPasswordAuth の動作が使用されます。

  1. 次のコマンドを実行して、PromptLoginBehavior を目的の値に構成します。
    Set-MsolDomainFederationSettings –DomainName <your_domain_name> -PreferredAuthenticationProtocol <current_value_from_step1> -SupportsMfa <current_value_from_step1> -PromptLoginBehavior <TranslateToFreshPasswordAuth|NativeSupport|Disabled>

PromptLoginBehavior パラメーターの使用可能な値とその意味は次のとおりです。

  • TranslateToFreshPasswordAuth: 既定の Azure AD の動作が prompt=loginwauth=https://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password および wfresh=0 に変換することであることを意味します。
  • NativeSupport: prompt=login パラメーターがそのまま AD FS に送信されることを意味します。 この値は、2016 年 7 月以降の更新プログラムのロールアップを使用して AD FS が Windows Server 2012 R2 にある場合に推奨されます。
  • Disabled: wfresh=0 のみが AD FS に送信されることを意味します。