こんにちは、こやしぃです。
今回ご紹介するのは、Oktaに新たに追加された機能です。従来は、アカウントステータスの変更時に確認作業が煩雑で、管理に多くの手間がかかることが課題となっていました。
たとえば、ユーザーが休職などでアカウントを「Suspended(一時停止)」に設定した場合、従来のグループルールではこの「一時停止」のステータスを条件に指定できなかったため、「どのユーザーがどのステータスなのか」を、一覧で把握することができませんでした。
その結果、権限を適切に制御するために、管理者が個別に手動でグループメンバーシップを管理する必要があり、運用が複雑化したり、ステータスの変化が反映されていないユーザーがグループに残り続けるリスクが生じていました。
特に、管理者側から見ると「誰がどのステータスか」を直感的に把握できず、管理効率が落ちてリスク増加につながる可能性がありました。
| ステータス例 | グループ・ルール適用後の主なユースケース例 |
| Suspended(一時停止) | 休職や調査のためにアカウントが一時停止された瞬間、一時停止グループに追加する |
| Locked out(ロックアウト) | 認証失敗によりアカウントがロックされた場合、自動で「セキュリティアラートグループ」に追加する |
| Pending User Action(ユーザーアクション保留中) | オンボーディング中のユーザーが初回パスワード設定を完了するまでの間、自動的に「オンボーディング用グループ」に追加する。 |
| Staged(段階的) | 人事システムから情報がプロビジョニングされた直後のアカウント準備段階で、特定のプロビジョニングチェック用グループに追加する。 |
この新機能は、従来の静的属性によるグループ管理が抱えていた、運用上の課題を解決します。
| 課題となっていた点 | 新機能による解決(メリット) |
| ステータス確認作業の遅延 |
Suspended等のユーザーに対して、手動でグループ変更を行う必要がなくなり、即座にグループ・一覧表示ができる。 |
| 一時的な状態(Pending User Actioなど)にあるユーザーを正確に抽出し、期間限定のサポートアクセスなどを付与することが困難だった |
ライフサイクルイベントの各段階にあるユーザーを正確に抽出し、オンボーディング時などの動的なサポート付与をグループを通じて自動化できる。たとえば「ユーザーのステータスが Pending User Action の間だけ、自動的に『初期設定のサポートグループ』に追加する」といったルールを設定し、必要な期間だけ、該当するグループへ限定的なアクセス権を付与できるようになった。 |
今回は『もしパスワード期限切れステータスのユーザーがいたら、そのユーザーを一覧表示できるリストを作成する』手順を紹介していきます。
OEL記述の例:
user.getInternalProperty("status") == "PASSWORD_EXPIRED"
意味: ユーザーステータスが「Password Expired(パスワードの有効期限切れ)」である場合にのみ、グループ(例:パスワード期限切れ)に所属させる。
まず、Oktaの管理コンソール内で、ステータス毎にユーザーをまとめるためのグループを作成します。
ディレクトリ > グループ へ移動し、“グループを追加”を選択します。
管理対象の項目では、さきほど設定したルールが適用されていることを確認できます。
この手順により、パスワードが期限切れとなったユーザーの自動抽出およびグループ化が正常に機能することが確認できました。
今後は、パスワード有効期限が切れたユーザーが、該当グループ(パスワードリセット状態)に自動的に追加されます。
さらに、パスワード期限切れユーザーが自動でアクセス制限グループに移動される仕組みは、証跡として残りますので、内部監査・外部監査にも対応しやすくなり、監査業務の効率化も期待できます。