こんにちは、ネクストモード株式会社テクニカルサポート担当です。
Oktaを運用していると、ユーザーが多要素認証(MFA)に使用しているスマートフォンやYubikeyなどの物理デバイスを忘れた場合の対応に迫られることがあります。この問題に対処するため、Early AccessとしてリリースされたTemporary Access Code(以下、TAC)について確認してみます。
TACの利用開始までの流れは以下のとおりです。TACは知識情報のみであるため、パスワードと組み合わせてもMFAとして認められません。そのため、MFAを導入している組織では、TACを利用するために各種ポリシーの調整が必要です。
最初にEarly Accessで『Temporary Access Code』を有効化します。
各種ポリシーを調整する際に対象者を限定するため、まずOktaグループを作成します。今回は『TAC User』という名前でグループを作りました。
次に、Global Session PolicyでMFAを要求している場合は、Oktaグループ『TAC User』を指定し、MFAを要求しないポリシーを作成します。
また、Authentication PolicyでMFAを要求している場合も、Oktaグループ『TAC User』を指定し、TACのみで認証を行うポリシーを作成します。ユーザーが利用するSPに応じたポリシーが複数ある場合は、それぞれのAuthentication Policyで対応が必要です。
TACはAuthenticatorの一つのため、Security > Authenticators内のAdd authenticatorから追加し、Editから編集をします。
設定時には以下の選択肢があります。
最後にAuthenticatorsのEnrollmentでTemporary Access CodeがOptionalとなっていることを確認します。これで設定は完了です。
Temporary Access Code (TAC) は、その名のとおり日常的に使用するものではなく、必要な場合にのみ以下の流れで利用します。ここでは、冒頭で紹介したOkta公式ドキュメントの内容に補足を加えながら説明します。
ユーザーが物理デバイスを忘れてMFAが利用できないとOkta管理者に報告します。
Okta管理者は対象ユーザーの本人確認を行います。補足:以下のような本人確認が考えられます。
Okta管理者はOkta管理画面から対象ユーザーをOktaグループ『TAC User』に追加します。
次にDirectory > Peopleから対象ユーザーを開き、Actionから『Create Temporary Access Code』をクリックします。
有期限を決めて、『Create code』をクリックします。
以下のように操作すると、コードが表示されます。
表示された『Active code』を対象ユーザーに伝えます。
対象ユーザーはOktaにログインする際に以下のような画面が表示され、『Active code』を入力してログインします。
TACは、MFAが利用できない状況で使用されるため、単一要素での認証となります。この機能を導入するには、各種ポリシーの調整とOktaグループ『TAC User』の適切な設定が不可欠です。
TACは1回限りまたは複数回使用かを選択できますが、いずれも期限付きです。セキュリティを確保するためには、有効期限が切れた時点でユーザーをOktaグループ『TAC User』から速やかに削除し、本来のMFAポリシーが適用されるようにすることが重要です。
TACは緊急時に効果的な解決策ですが、運用面での煩雑さが課題となります。Oktaグループからのユーザー削除を効率化するためには、Access Requestを活用したり、Okta WorkflowsでAPI実行を自動化したりする方法が有効でしょう。
APIを使ったTAC作成の詳細については、Temporary access code authenticator integration guideのGenerate a TAC for a userセクションをご参照ください。
実用的な観点では、物理デバイスを忘れた場合、MFAをリセットしてWindows端末やMac端末上のOkta Verifyを利用する方法も考えられます。端末上のOkta Verifyが使えない状況(コールセンター業務など)では、予備のYubikeyをあらかじめ用意して一時的に貸与することで、より円滑な運用が可能になります。
以上、Temporary Access Code(TAC)機能について解説しました。個人的な見解ですが、運用の煩雑さを考慮すると、実際の導入には慎重な検討が必要だと感じます。まだEarly Accessの段階ですので、今後General Availabilityになった際には、よりスムーズな運用ができる仕組みになることを期待しています。