Microsoft 365サービスのセッションについて

トラスト・ログインを経由してMicrosoft 365 サービスにログインする場合のセッションについて
ご案内します。

※本ページの内容は、トラスト・ログイン、Microsoft365間で
 SAML連携設定が行われていることが前提になります。

Microsoft 365 サービスにログイン後のセッション

セッション保持時間

トラスト・ログインを経由してMicrosoft 365サービスにログインした場合、
ログイン先サービスでのセッション保持時間はサービス側の仕様に依存いたします。
そのため、トラスト・ログイン側での制御は行えません。

※Microsoft365 サービスに限らず、セッション保持時間は各サービス仕様に依存します。

Microsoft 365サービスにおけるセッション時間につきましてはこちらの
Microsoft社ドキュメントをご確認ください。

参考情報:Microsoft 365 のセッション タイムアウト

 

サービスの再認証が発生するタイミング

Microsoft 365側で保持するセッション(トークン)が失効すると、再認証が必要になります。

ただし、その時点でトラスト・ログインのセッションが残っている場合、再認証作業は不要です。

Microsoft 365側セッション トラスト・ログイン側 セッション 再認証作業
なし あり 不要
なし 必要

 

Microsoft 365(Office 365)で頻繁にサインインが求められる場合

トラスト・ログインのMicrosoft 365(Office 365)連携により
プロビジョニング作成されたユーザーにおいて、頻繁にサインインが求められる事象を確認しております。

■原因

Azure ADユーザーのプロビジョニング作成時、トラスト・ログイン(外部IDプロバイダー)から
「LastPasswordChangeTimestamp」属性を同期できないことにより
セッションの維持に必要な更新トークンが最大12 時間で有効期限切れとなってしまいます。

参考(Microsoft社ドキュメント):
フェデレーション ユーザーは、Azure AD頻繁にサインインする必要があります。

 

■対象となるAzure ADユーザー

トラスト・ログイン経由でMicrosoft 365(Office 365)にプロビジョニング作成されたユーザー

 

■解決方法

Azure ADユーザーに対し、PowerShellコマンドで
「LastPasswordChangeTimestamp」および「StsRefreshTokensValidFrom」属性を設定することで解決いたします。

※MSOnline PowerShellは2024年3月30日に非推奨となりました。新しいコマンドについてはこちらをご確認ください。

  1. 以下のコマンドを実行し、MSOnlineのインポートおよびAzure AD管理者アカウントにサインインします。
    Import-Module MSOnline
    Connect-MsolService

  2. LastPasswordChangeTimestamp属性が空欄のアカウントを抽出します。
     ※赤字表記の部分は記載例ですので、お客様の環境によって読み替えてください。
     ※この例では「@example.com」を含むアカウントを検索対象としています。
    Get-MsolUser -All | where {($_.UserPrincipalName -like "*@example.com")-And ($_.LastPasswordChangeTimestamp -like "")} | select displayName,UserPrincipalName,LastPasswordChangeTimestamp,StsRefreshTokensValidFrom


  3. 手順2で抽出したアカウントに属性を設定します。
    $date = Get-Date
    set-msoluser -UserPrincipalName UPN of user -LastPasswordChangeTimestamp $date -StsRefreshTokensValidFrom $date

 

■補足 
※赤字表記の部分は記載例ですので、お客様の環境によって読み替えてください。

  • 2 つの属性に設定されている値を確認する

    Get-msoluser -UserPrincipalName UPN of user | select-object UserPrincipalName,LastPasswordChangeTimestamp,StsRefreshTokensValidFrom
     値が設定されていない場合:結果が空白で返されます。
     値が設定されている場合 :トークンの最終更新日が表示されます。

 

  • Azure AD 管理センター上で2つの属性を確認する

    ユーザー>対象ユーザー>プロパティ 画面を開きます。
     前回のパスワード変更日時:LastPasswordChangeTimestamp属性
     サインイン セッションの有効期間の開始日時:StsRefreshTokensValidFrom属性 が該当します。
    tempsnip.png

Microsoft 365サービスのセッションについて

トラスト・ログインを経由してMicrosoft 365 サービスにログインする場合のセッションについて
ご案内します。

※本ページの内容は、トラスト・ログイン、Microsoft365間で
 SAML連携設定が行われていることが前提になります。

Microsoft 365 サービスにログイン後のセッション

セッション保持時間

トラスト・ログインを経由してMicrosoft 365サービスにログインした場合、
ログイン先サービスでのセッション保持時間はサービス側の仕様に依存いたします。
そのため、トラスト・ログイン側での制御は行えません。

※Microsoft365 サービスに限らず、セッション保持時間は各サービス仕様に依存します。

Microsoft 365サービスにおけるセッション時間につきましてはこちらの
Microsoft社ドキュメントをご確認ください。

参考情報:Microsoft 365 のセッション タイムアウト

 

サービスの再認証が発生するタイミング

Microsoft 365側で保持するセッション(トークン)が失効すると、再認証が必要になります。

ただし、その時点でトラスト・ログインのセッションが残っている場合、再認証作業は不要です。

Microsoft 365側セッション トラスト・ログイン側 セッション 再認証作業
なし あり 不要
なし 必要

 

Microsoft 365(Office 365)で頻繁にサインインが求められる場合

トラスト・ログインのMicrosoft 365(Office 365)連携により
プロビジョニング作成されたユーザーにおいて、頻繁にサインインが求められる事象を確認しております。

■原因

Azure ADユーザーのプロビジョニング作成時、トラスト・ログイン(外部IDプロバイダー)から
「LastPasswordChangeTimestamp」属性を同期できないことにより
セッションの維持に必要な更新トークンが最大12 時間で有効期限切れとなってしまいます。

参考(Microsoft社ドキュメント):
フェデレーション ユーザーは、Azure AD頻繁にサインインする必要があります。

 

■対象となるAzure ADユーザー

トラスト・ログイン経由でMicrosoft 365(Office 365)にプロビジョニング作成されたユーザー

 

■解決方法

Azure ADユーザーに対し、PowerShellコマンドで
「LastPasswordChangeTimestamp」および「StsRefreshTokensValidFrom」属性を設定することで解決いたします。

※MSOnline PowerShellは2024年3月30日に非推奨となりました。新しいコマンドについてはこちらをご確認ください。

  1. 以下のコマンドを実行し、MSOnlineのインポートおよびAzure AD管理者アカウントにサインインします。
    Import-Module MSOnline
    Connect-MsolService

  2. LastPasswordChangeTimestamp属性が空欄のアカウントを抽出します。
     ※赤字表記の部分は記載例ですので、お客様の環境によって読み替えてください。
     ※この例では「@example.com」を含むアカウントを検索対象としています。
    Get-MsolUser -All | where {($_.UserPrincipalName -like "*@example.com")-And ($_.LastPasswordChangeTimestamp -like "")} | select displayName,UserPrincipalName,LastPasswordChangeTimestamp,StsRefreshTokensValidFrom


  3. 手順2で抽出したアカウントに属性を設定します。
    $date = Get-Date
    set-msoluser -UserPrincipalName UPN of user -LastPasswordChangeTimestamp $date -StsRefreshTokensValidFrom $date

 

■補足 
※赤字表記の部分は記載例ですので、お客様の環境によって読み替えてください。

  • 2 つの属性に設定されている値を確認する

    Get-msoluser -UserPrincipalName UPN of user | select-object UserPrincipalName,LastPasswordChangeTimestamp,StsRefreshTokensValidFrom
     値が設定されていない場合:結果が空白で返されます。
     値が設定されている場合 :トークンの最終更新日が表示されます。

 

  • Azure AD 管理センター上で2つの属性を確認する

    ユーザー>対象ユーザー>プロパティ 画面を開きます。
     前回のパスワード変更日時:LastPasswordChangeTimestamp属性
     サインイン セッションの有効期間の開始日時:StsRefreshTokensValidFrom属性 が該当します。
    tempsnip.png