単一 Sign-On 設定の AD FSAD FS Single Sign-On Settings

シングル Sign-On (SSO) を使用すると、ユーザーは1回認証するだけで、追加の資格情報の入力を求められることなく、複数のリソースにアクセスできます。Single Sign-On (SSO) allows users to authenticate once and access multiple resources without being prompted for additional credentials. この記事では、SSO の既定の AD FS 動作、およびこの動作をカスタマイズするための構成設定について説明します。This article describes the default AD FS behavior for SSO, as well as the configuration settings that allow you to customize this behavior.

サポートされている単一 Sign-On の種類Supported types of Single Sign-On

AD FS は、いくつかの種類のシングル Sign-On エクスペリエンスをサポートしています。AD FS supports several types of Single Sign-On experiences:

  • セッション SSOSession SSO

    セッション SSO cookie は認証されたユーザー向けに記述されており、ユーザーが特定のセッション中にアプリケーションを切り替えると、さらにプロンプトが表示されなくなります。Session SSO cookies are written for the authenticated user which eliminates further prompts when the user switches applications during a particular session. ただし、特定のセッションが終了した場合、ユーザーは資格情報を再入力するように求められます。However, if a particular session ends, the user will be prompted for their credentials again.

    ユーザーのデバイスが登録されていない場合、既定では、AD FS によってセッション SSO cookie が設定されます。AD FS will set session SSO cookies by default if users' devices are not registered. ブラウザーセッションが終了して再起動された場合、このセッションクッキーは削除され、それ以上有効ではありません。If the browser session has ended and is restarted, this session cookie is deleted and is not valid any more.

  • 永続的 SSOPersistent SSO

    永続的 sso cookie は認証されたユーザー用に書き込まれます。これにより、永続的な SSO クッキーが有効である限り、ユーザーがアプリケーションを切り替えるときに、プロンプトが表示されなくなります。Persistent SSO cookies are written for the authenticated user which eliminates further prompts when the user switches applications for as long as the persistent SSO cookie is valid. 永続 SSO とセッション SSO の違いは、永続 SSO を異なるセッション間で保持できることです。The difference between persistent SSO and session SSO is that persistent SSO can be maintained across different sessions.

    デバイスが登録されている場合、AD FS は永続的な SSO cookie を設定します。AD FS will set persistent SSO cookies if the device is registered. また AD FS は、ユーザーが [サインインしたままにする] オプションを選択した場合に、永続的な SSO cookie を設定します。AD FS will also set a persistent SSO cookie if a user selects the “keep me signed in” option. 永続 SSO クッキーが有効でない場合は、拒否および削除されます。If the persistent SSO cookie is not valid any more, it will be rejected and deleted.

  • アプリケーション固有の SSOApplication specific SSO

    OAuth シナリオでは、更新トークンを使用して、特定のアプリケーションのスコープ内でユーザーの SSO 状態を維持します。In the OAuth scenario, a refresh token is used to maintain the SSO state of the user within the scope of a particular application.

    デバイスが登録されている場合、AD FS は、登録されているデバイスの永続 SSO cookie の有効期間に基づいて更新トークンの有効期限を設定します。これは、AD FS 2012R2 では既定で7日間、AD FS 2016 では最大90日です。ユーザーが14日の期間内に AD FS リソースにアクセスする場合、If a device is registered, AD FS will set the expiration time of a refresh token based on the persistent SSO cookies lifetime for a registered device which is 7 days by default for AD FS 2012R2 and up to a maximum of 90 days with AD FS 2016 if they use their device to access AD FS resources within a 14 day window.

デバイスが登録されておらず、ユーザーが [サインインしたままにする] オプションを選択した場合、更新トークンの有効期限は、"サインインしたままにする" の永続 SSO cookie の有効期間と同じになります。これは、既定では最大7日間になります。If the device is not registered but a user selects the “keep me signed in” option, the expiration time of the refresh token will equal the persistent SSO cookies lifetime for "keep me signed in" which is 1 day by default with maximum of 7 day. それ以外の場合、更新トークンの有効期間は、既定では8時間のセッション SSO cookie の有効期間と同じになります。Otherwise, refresh token lifetime equals session SSO cookie lifetime which is 8 hours by default

前述のように、永続的 SSO が無効になっている場合を除き、登録済みデバイスのユーザーは常に永続的 SSO を取得します。As mentioned above, users on registered devices will always get a persistent SSO unless the persistent SSO is disabled. 登録されていないデバイスの場合は、"サインインしたままにする" (KMSI) 機能を有効にすることで、永続的 SSO を実現できます。For un-registered devices, persistent SSO can be achieved by enabling the “keep me signed in” (KMSI) feature.

Windows Server 2012 R2 では、"サインインしたままにする" シナリオで PSSO を有効にするには、この修正プログラムをインストールする必要があります。この 修正プログラム は、 windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の年 8 2014 月の更新プログラムのロールアップの一部でもあります。For Windows Server 2012 R2, to enable PSSO for the “Keep me signed in” scenario, you need to install this hotfix which is also part of the of August 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2.

タスクTask PowerShellPowerShell 説明Description
永続的 SSO の有効化/無効化Enable/disable persistent SSO Set-AdfsProperties –EnablePersistentSso <Boolean> 永続的 SSO は既定で有効になっています。Persistent SSO is enabled by default. 無効になっている場合は、PSSO クッキーは書き込まれません。If it is disabled, no PSSO cookie will be written.
[サインインしたままにする] を有効または無効にする"Enable/disable “keep me signed in" Set-AdfsProperties –EnableKmsi <Boolean> "サインインしたままにする" 機能は、既定では無効になっています。"Keep me signed in" feature is disabled by default. 有効になっている場合、エンドユーザーは AD FS サインインページで [サインインしたままにする] を選択できます。If it is enabled, end user will see a “keep me signed in” choice on AD FS sign-in page

AD FS 2016-1 つの Sign-On と認証されたデバイスAD FS 2016 - Single Sign-On and authenticated devices

AD FS 2016 は、要求元が登録されているデバイスから最大90日まで増加し、14日以内に認証が要求される場合、PSSO を変更します ([デバイスの使用状況] ウィンドウ)。AD FS 2016 changes the PSSO when requestor is authenticating from a registered device increasing to max 90 Days but requiring an authentication within a 14 days period (device usage window). 最初に資格情報を入力した後、既定では、登録されたデバイスを持つユーザーは、少なくとも14日ごとに1回、AD FS リソースにアクセスするためにデバイスを使用するので、最大90日間、1つの Sign-On を取得します。After providing credentials for the first time, by default users with registered devices get single Sign-On for a maximum period of 90 days, provided they use the device to access AD FS resources at least once every 14 days. 資格情報を指定してから15日間待っている場合、ユーザーは資格情報の入力を再度求められます。If they wait 15 days after providing credentials, users will be prompted for credentials again.

永続的 SSO は既定で有効になっています。Persistent SSO is enabled by default. 無効になっている場合、PSSO クッキーは書き込まれません |。If it is disabled, no PSSO cookie will be written.|

Set-AdfsProperties –EnablePersistentSso <Boolean\>

[デバイスの使用量] ウィンドウ (既定では14日) は、AD FS プロパティ DeviceUsageWindowInDays によって管理されます。The device usage window (14 days by default) is governed by the AD FS property DeviceUsageWindowInDays.

Set-AdfsProperties -DeviceUsageWindowInDays

最大1つの Sign-On 期間 (既定では90日) は、AD FS プロパティ PersistentSsoLifetimeMins によって管理されます。The maximum single Sign-On period (90 days by default) is governed by the AD FS property PersistentSsoLifetimeMins.

Set-AdfsProperties -PersistentSsoLifetimeMins

認証されていないデバイスにサインインしたままにするKeep Me Signed in for unauthenticated devices

登録されていないデバイスの場合、シングルサインオンの期間は、[サインインした ままにする (KMSI) ] 機能の設定によって決まります。For non-registered devices, the single sign-on period is determined by the Keep Me Signed In (KMSI) feature settings. KMSI は既定で無効になっており、AD FS プロパティ KmsiEnabled を True に設定することによって有効にすることができます。KMSI is disabled by default and can be enabled by setting the AD FS property KmsiEnabled to True.

Set-AdfsProperties -EnableKmsi $true

KMSI を無効にした場合、既定のシングルサインオン期間は8時間です。With KMSI disabled, the default single sign-on period is 8 hours. これは、プロパティ SsoLifetime を使用して構成できます。This can be configured using the property SsoLifetime. プロパティは分単位で測定されるため、既定値は480です。The property is measured in minutes, so its default value is 480.

Set-AdfsProperties –SsoLifetime <Int32\>

KMSI が有効になっている場合、既定のシングルサインオン期間は24時間です。With KMSI enabled, the default single sign-on period is 24 hours. これは、プロパティ KmsiLifetimeMins を使用して構成できます。This can be configured using the property KmsiLifetimeMins. プロパティは分単位で測定されるため、既定値は1440です。The property is measured in minutes, so its default value is 1440.

Set-AdfsProperties –KmsiLifetimeMins <Int32\>

Multi-factor authentication (MFA) の動作Multi-factor authentication (MFA) behavior

重要なのは、比較的長いシングルサインオンを提供している間、AD FS では、以前のサインオンが MFA ではなくプライマリ資格情報に基づいており、現在のサインオンでは MFA が必要な場合に、追加の認証 (multi-factor authentication) の入力を求められることに注意してください。It's important to note that, while providing relatively long periods of single sign on, AD FS will prompt for additional authentication (multi factor authentication) when a previous sign on was based on primary credentials and not MFA, but the current sign on requires MFA. これは SSO 構成には関係ありません。This is regardless of SSO configuration. AD FS は、認証要求を受信すると、まず SSO コンテキスト (cookie など) があるかどうかを判断し、MFA が必要な場合 (外部から要求が送信される場合など) は、SSO コンテキストに MFA が含まれているかどうかを評価します。AD FS, when it receives an authentication request, first determines whether or not there is an SSO context (such as a cookie) and then, if MFA is required (such as if the request is coming in from outside) it will assess whether or not the SSO context contains MFA. それ以外の場合は、MFA が要求されます。If not, MFA is prompted.

PSSO の失効PSSO revocation

セキュリティを保護するために、次の条件が満たされたときに以前に発行されたすべての永続的な SSO cookie を拒否する AD FS ます。To protect security, AD FS will reject any persistent SSO cookie previously issued when the following conditions are met. これには、AD FS での認証を行うために、ユーザーが資格情報を入力する必要があります。This will require the user to provide their credentials in order to authenticate with AD FS again.

  • ユーザーがパスワードを変更するUser changes password

  • 永続 SSO 設定が AD FS で無効になっていますPersistent SSO setting is disabled in AD FS

  • デバイスが紛失または盗難にあった場合、管理者によって無効にされているDevice is disabled by the administrator in lost or stolen case

  • AD FS は、登録されているユーザーに対して発行された永続的な SSO cookie を受信しますが、ユーザーまたはデバイスは登録されていませんAD FS receives a persistent SSO cookie which is issued for a registered user but the user or the device is not registered anymore

  • AD FS は、登録されているユーザーに対して永続的な SSO cookie を受信しますが、ユーザーは再登録します。AD FS receives a persistent SSO cookie for a registered user but the user re-registered

  • AD FS は、"サインインしたままにする" の結果として発行される永続的な SSO cookie を受信しますが、[サインインしたままにする] 設定は、では無効になってい AD FSAD FS receives a persistent SSO cookie which is issued as a result of “keep me signed in” but “keep me signed in” setting is disabled in AD FS

  • AD FS は、登録されているユーザーに対して発行された永続的な SSO cookie を受け取りますが、認証時にデバイス証明書が見つからないか変更されていますAD FS receives a persistent SSO cookie which is issued for a registered user but device certificate is missing or altered during authentication

  • AD FS 管理者が永続的 SSO のカットオフ時間を設定しました。AD FS administrator has set a cutoff time for persistent SSO. これを構成すると、AD FS は、この時間より前に発行されたすべての永続 SSO cookie を拒否します。When this is configured, AD FS will reject any persistent SSO cookie issued before this time

    カットオフ時間を設定するには、次の PowerShell コマンドレットを実行します。To set the cutoff time, run the following PowerShell cmdlet:

Set-AdfsProperties -PersistentSsoCutoffTime <DateTime>

Office 365 ユーザーが SharePoint Online にアクセスできるように PSSO を有効にするEnable PSSO for Office 365 users to access SharePoint Online

PSSO が有効になり AD FS で構成されると、ユーザーが認証された後、AD FS は永続的な cookie を書き込みます。Once PSSO is enabled and configured in AD FS, AD FS will write a persistent cookie after a user has authenticated. 次回ユーザーがサインインしたときに、永続的な cookie がまだ有効である場合、ユーザーは資格情報を入力して再度認証する必要はありません。The next time the user comes in, if a persistent cookie is still valid, a user does not need to provide credentials to authenticate again. また、Microsoft Azure AD と SharePoint Online で永続化をトリガーするために AD FS で次の2つの要求規則を構成することで、Office 365 および SharePoint Online ユーザーの追加の認証プロンプトを回避することもできます。You can also avoid the additional authentication prompt for Office 365 and SharePoint Online users by configuring the following two claims rules in AD FS to trigger persistence at Microsoft Azure AD and SharePoint Online. Office 365 ユーザーが SharePoint online にアクセスできるようにするには、この修正プログラムをインストールする必要があります。この 修正プログラム は、 windows RT 8.1、Windows 8.1、および Windows Server 2012 R2 の年 8 2014 月の更新プログラムのロールアップの一部でもあります。To enable PSSO for Office 365 users to access SharePoint online, you need to install this hotfix which is also part of the of August 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2.

InsideCorporateNetwork 要求を通過する発行変換規則An Issuance Transform rule to pass through the InsideCorporateNetwork claim

@RuleTemplate = "PassThroughClaims"
@RuleName = "Pass through claim - InsideCorporateNetwork"
c:[Type == "https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork"]
=> issue(claim = c);
A custom Issuance Transform rule to pass through the persistent SSO claim
@RuleName = "Pass Through Claim - Psso"
c:[Type == "https://schemas.microsoft.com/2014/03/psso"]
=> issue(claim = c);

概要:To Summarize:

シングルサインオンエクスペリエンスSingle SignOn experience ADFS 2012 R2ADFS 2012 R2
デバイスは登録されていますか?Is Device Registered?
ADFS 2016ADFS 2016
デバイスは登録されていますか?Is Device Registered?
NONO いいえ、KMSINO But KMSI YESYES NONO いいえ、KMSINO But KMSI YESYES
SSO = > 設定更新トークン =>SSO=>set Refresh Token=> 8時間8 Hrs 該当なしN/A 該当なしN/A 8時間8 Hrs 該当なしN/A 該当なしN/A
PSSO = > 設定更新トークン =>PSSO=>set Refresh Token=> 該当なしN/A 24時間24 Hrs 7日間7 Days 該当なしN/A 24時間24 Hrs 14日の期間の最大90日Max 90 Days with 14 Days Window
トークンの有効期間Token Lifetime 1時間1 Hrs 1時間1 Hrs 1時間1 Hrs 1時間1 Hrs 1時間1 Hrs 1時間1 Hrs

登録済みのデバイスですか?Registered Device? PSSO/Persistent SSO を取得するYou get a PSSO / Persistent SSO
登録されていないデバイスですか?Not Registered Device? SSO を取得するYou get a SSO
登録されていないデバイスですが、KMSI ですか?Not Registered Device but KMSI? PSSO/Persistent SSO を取得するYou get a PSSO/ Persistent SSO

もし:IF:

  • [x] 管理者が KMSI 機能を有効にしました [および][x] Admin has enabled the KMSI feature [AND]
  • [x] ユーザーがフォームログインページで KMSI チェックボックスをクリックします。[x] User clicks the KMSI check box on the forms login page

新しい更新トークンの有効性が前のトークンより長い場合にのみ、ADFS は新しい更新トークンを発行します。ADFS issues a new refresh token only if the validity of the newer refresh token is longer than the previous token. トークンの最長有効期間は84日ですが、AD FS 14 日間のスライディングウィンドウでトークンが有効なままになります。The maximum lifetime of a token is is 84 days, but AD FS keeps the token valid on a 14 day sliding window. 更新トークンが、通常の SSO 時間である8時間有効な場合、新しい更新トークンは発行されません。If the refresh token is valid for 8 hours, which is the regular SSO time, a new refresh token will not be issued.

次のことをお勧めします。Good to Know:
Lastpasswordchangetimestamp 属性が同期されていないフェデレーションユーザーは、最大有効期間の値が12時間の セッション cookie と更新トークンを発行します。Federated users who do not have the LastPasswordChangeTimestamp attribute synced are issued session cookies and refresh tokens that have a Max Age value of 12 hours.
これは、古い資格情報 (変更されたパスワードなど) に関連付けられているトークンを取り消すタイミングを Azure AD が判断できないために発生します。This occurs because Azure AD cannot determine when to revoke tokens that are related to an old credential (such as a password that has been changed). したがって、ユーザーとそれに関連付けられているトークンが良好な状態であることを確認するために、Azure AD を頻繁に確認する必要があります。Therefore, Azure AD must check more frequently to make sure that the user and associated tokens are still in good standing.