トラスト・ログインを経由してMicrosoft 365 サービスにログインする場合のセッションについて
ご案内します。
※本ページの内容は、トラスト・ログイン、Microsoft365間で
SAML連携設定が行われていることが前提になります。
Microsoft 365 サービスにログイン後のセッション
セッション保持時間
トラスト・ログインを経由してMicrosoft 365サービスにログインした場合、
ログイン先サービスでのセッション保持時間はサービス側の仕様に依存いたします。
そのため、トラスト・ログイン側での制御は行えません。
※Microsoft365 サービスに限らず、セッション保持時間は各サービス仕様に依存します。
Microsoft 365サービスにおけるセッション時間につきましてはこちらの
Microsoft社ドキュメントをご確認ください。
参考情報:Microsoft 365 のセッション タイムアウト
サービスの再認証が発生するタイミング
Microsoft 365側で保持するセッション(トークン)が失効すると、再認証が必要になります。
ただし、その時点でトラスト・ログインのセッションが残っている場合、再認証作業は不要です。
Microsoft 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日に非推奨となりました。新しいコマンドについてはこちらをご確認ください。
- 以下のコマンドを実行し、MSOnlineのインポートおよびAzure AD管理者アカウントにサインインします。
Import-Module MSOnline
Connect-MsolService
- LastPasswordChangeTimestamp属性が空欄のアカウントを抽出します。
※赤字表記の部分は記載例ですので、お客様の環境によって読み替えてください。
※この例では「@example.com」を含むアカウントを検索対象としています。
Get-MsolUser -All | where {($_.UserPrincipalName -like "*@example.com")-And ($_.LastPasswordChangeTimestamp -like "")} | select displayName,UserPrincipalName,LastPasswordChangeTimestamp,StsRefreshTokensValidFrom
- 手順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属性 が該当します。