Oktaのセッションのライフタイムと認証要素を自在に操ってみた。

はじめに

今回は、Oktaのセッションのライフタイムとそれに応じた認証要素の要求を自在に設定する方法を、具体例を通して解説していきます。

OktaでのSAML認証の流れ

Oktaでの認証の流れは、下図のようになっております。

OktaでのSAML認証の流れ
  • SP-initiated
    Single Sign-onにおいて、連携先のService Provider(SP)に直接アクセスする際の認証フロー
  • IdP-initiated
    Single Sign-onにおいて、OktaのようなIdentity Provider(IdP)にアクセスしてからSPにアクセスする際の認証フロー
    具体的な認証フローについては、下記にてご説明します。

SP-initiatedの場合

  • SaaSにログイン試行
  • Oktaに認証が要求され、Oktaの認証画面へ遷移する
  • Global Session Policy→Authentication Policy(SaaS)の順に、ポリシーに準ずる認証が要求され、ユーザーが認証要素を入力する
  • 認証処理完了
  • OktaからSAML認証応答が発行され、SaaSにログインできる

IdP-initiatedの場合

  • Oktaにアクセスし、Oktaの認証画面に遷移する
  • Global Session Policy→Authentication Policy(Okta Dashboard)の順に、ポリシーに準ずる認証が要求され、ユーザーが認証要素を入力する
  • 認証処理が完了し、Okta Dashboardにログインする
  • Okta Dashboard上で、SaaSをクリックする
  • (追加の認証要素がある場合)Authentication Policy(SaaS)に準ずる認証が要求され、ユーザーが認証要素を入力する
  • 認証処理完了
  • SAML認証応答が発行され、SaaSにログインできる

今回は、SP-initのSAML認証における、セッションのライフタイムと認証要素について解説していきます。

Oktaで設定できるセッションのライフタイムとは?

  • Oktaが使用されていない時間に準ずるOktaのセッションのライフタイム
  • Okta Dashboardや特定のSaaSへサインインする際の認証要素それぞれの再認証セッションのライフタイム

1.については、Global Session Policyの該当Ruleの、[Expire session after user has been idle on Okta for]にて設定し、

2.については、Authentication Policiesの該当Ruleの、[Re-authentication frequency is]にて設定します。

設定した各セッションのライフタイムと認証の動作について

設定した各セッションのライフタイムが切れた場合の、認証の動作については下図のようになっております。

設定した各セッションのライフタイムと認証の動作について

Global Session Policyで設定したセッションのライフタイムが切れた場合

この場合、SaaSにアサインしているAuthentication Policyにて設定した各認証要素の再認証セッションのライフタイムも切れます。
そのため、認証の際は、IDの確認から、Global Session Policyで指定した認証要素だけでなく、Authentication Policyで指定した認証要素も全て要求されます。

Authentication Policyで設定した再認証セッションのライフタイムが切れた場合

この場合、Global Session Policyで設定したセッションのライフタイムも同時に切れることはありません。
そのため、認証の際は、IDの確認は必要なく、Authentication Policyで指定した認証要素のうち、再認証セッションのライフタイムが切れた認証要素のみ要求されます。

具体例と設定方法

では、実際に経過時間ごとで、要求する認証要素を変える設定の例をご紹介します。

今回は、Oktaへの最終ログインからそれぞれ、3、12、24時間経過したユーザーへの認証要素の変更を例とします。

  • 3時間経過→Okta Verify
  • 12時間経過→Password + Okta Verify
  • 24時間経過→ID, Password + Okta Verify
具体例と設定方法

まず、Okta管理画面上のAuthentication Policiesの該当Ruleにて、以下のように設定します。

  • 対象SaaSにログインする際に要求する認証要素の選択(Password + Okta Verify)
  • 「User must authenticate with」で、[Password + Another factor]を選択
  • 「Possession factor constraints are」で、[Hardware protected]にチェック
対象SaaSにログインする際に要求する認証要素の選択(Password + Okta Verify)
  • Okta Verifyの再認証セッションのライフタイムを3時間に設定
    Okta Verifyの「Re-authentication frequency is」で[Re-authenticate after: ]にチェックを入れ、[3 hours]に設定
  • Passwordの再認証セッションのライフタイムを12時間に設定
    Passwordの「Password re-authentication frequency is」で[Re-authenticate after: ]にチェックを入れ、[12 hours]に設定
Passwordの再認証セッションのライフタイムを12時間に設定

最後に、Okta管理画面上のGlobal Session Policyの該当Ruleにて、以下のように設定します。

  • Okta自体へのセッションのライフタイムを24時間に設定
    「Expire session after user has been idle on Okta for 」を[1 days]に設定
Okta自体へのセッションのライフタイムを24時間に設定

まとめ

Oktaのセッションのライフタイムと認証について、ご理解いただけましたでしょうか。
Okta自体へのセッションのライフタイムだけでなく、認証要素ごとにセッションのライフタイムを設定でき、経過時間によって自在に認証要素を要求できることは、Oktaの魅力の1つです。
ご興味のある方、その他Oktaに関するお問い合わせなどある方は、是非弊社までご連絡ください。

お問い合わせ・資料請求

株式会社マクニカ  Okta 担当

月~金 8:45~17:30