前置き
この記事は株式会社ビットキー 情シス Advent Calendar 2023 の13日目の投稿です。
はじめまして。株式会社ビットキーの日浦です。
昨日に引き続きOkta Access Requestsのお話です。
情シスアドカレを見に来てくださる方には釈迦に説法ですが、システムは単体で利用するだけでなく組み合わせることでより便利に使うことができます。今日は最近試したインテグレーションについて書こうと思います。
前提
- 弊社では社内の端末は99%がmacOSで、MDMにはJamfを利用しています。
- IDaaSにOktaを利用しており、アクセス権限の管理でOkta Access Requestsを活用しています。
- 今回はIDaaSであるOkta Access RequestsとMDMであるJamfを使って、
業務用PCで特定のアプリケーションを禁止したり、一時的に使えるようにする、という話を書こうと思います。
概要
情シスとして特定のアプリケーションの社内利用を禁止したい、というシチュエーションがあると思います。
が、そういう情シスが禁止にしたいアプリに限って利用者目線では便利なものが多いので、「◯◯な理由で必要なので、一時的に利用許可してほしい!」と相談が、まれによくあります。
- 一例としてありそうなのは業務利用は「Chromeブラウザだけ許可」「Safariは禁止」みたいなルールを敷いているが、どうしてもSafariでしか使えないWebサイトを利用したいときとか。
- 堅めな日系サービスサイトだとたまに存在する
情シス側には禁止する理由があるし、利用したい側にもそれ相応の理由があるため、ディスカッションやリスクアセスメントを経て「一時的に利用を許可」などの判断をすることも珍しくないと思います。
その際、例えばJamfでアプリの利用を禁止している場合、下記のように「制限ソフトウェア」で制御をかけることが一般的ですが、一時的に許可するためには当然この設定を変更する必要があります。
Jamfの場合「Scope > Exclusions」で依頼者やシリアルを指定して登録するのが一般的かと思います。
若干後半のネタバレになりますが、Exclusions指定するときはシリアル直指定ではなく、Groupを使うのがおすすめです
この、「一時的に許可するためには当然この設定を変更する」がめんどくさすぎるので、もうちょっと楽をする方法を考えてみました
結論
早速ですが結論です。下記のようなピタゴラスイッチを実装します。
- Jamfの制限ソフトウェア機能でアプリの利用を禁止する
- Okta→JamfにOkta Groupを連携しておく(拡張属性に入る)
- Jamfの制限ソフトウェアのExclusionsにSmart Computer Groupを指定する
- 上述のOkta GroupをトリガーにSmart Computer Groupに入るようにしておく
- 利用したい時にOkta Access Requestsで申請してもらい、Okta Groupに入るようにする
さすがに文字だけだとイメージしづらいと思うので、
以下、どうしてもChess.Appを禁止したい情シスと、どうしてもChess.Appを利用したいユーザーを例に、手順を解説します。
1. JamfでChess.Appの利用を禁止する
無事にチェスで遊べないようになりました。
2. Okta→Jamfに所属グループをLDAP連携する
今回は詳細な手順は割愛します。
下記スライドが非常に参考になりました。
3. Okta上で利用を許可するグループを作成する
後にOkta Access RequestとJamfのSmart Computer Groupで利用する「Okta Group」を作成します。
弊社ではTerraformでグループを管理しているため下記のようなソースになります。
resource "okta_group" "oig_temporary_chess_use" {
name = "oig_temporary_chess_use"
description = "created by terraform"
}
適当な人をアサインしてJamf上に連携されているかどうかを確認しましょう
4. Jamf上でSmart Computer Groupを作成する
-
スマートコンピュータグループ:なんでもOK
-
クライテリア
5. Jamfの制限ソフトウェアででChess.AppのExclusionsにグループを指定する
000_oig_temporary_chess_use
のSmart Computer GroupをExclusionsに指定します。
この時点で、Okta上で oig_temporary_chess_use
に所属しているメンバーはチェスで遊べる状態になっています。
「原則利用不可、一部の人は利用許可」 というパターンのときは、これで終了です。
6. Okta Access Requestsで「一時利用許可グループ」に所属するためのリクエストを作成する
今回の例では、申請(承認)後、8時間の間、 oig_temporary_chess_use
のOktaグループに所属する事になります。
承認必須のパターン
承認不要なパターン
7. 実際にやってみる
Okta Access Requestsから申請します
8. 無事、チェスで遊べるようになりました
実際は下記のようなピタゴラスイッチになるので、若干のタイムラグがあります。
特に4の反映は時間が読めない。一瞬のときもあれば15分くらいかかるときもある。
- Okta Access Reqeusetにより申請者が
oig_temporary_chess_use
に所属 - Jamf上でチェックインが走ってサーバサイドでSmart Computer Groupに入る
- Smart Computer Groupに入ったので、制限ソフトウェアのExclusionsに入る
- Jamfサーバサイドの設定がローカルPCに落ちてくる
まとめ
-
OktaとJamfのインテグレーションにより、極端に表現すると情シスが一切手を動かさずにアプリケーションの許可・禁止をコントロールできるようになりました。
-
当然ですが、Jamf上でSmart GroupでScopeを指定する「構成プロファイル」や「ポリシー」でも同じようにユーザーのリクエストベースで、自動での適用が可能です
ex) CIS Controlsに則って「Air Drop」を原則禁止にしてるけど申請内容に応じて一時的に許可する、など -
この組み合わせは非常に拡張性が高いと思うので、他にもいろいろ試してみます。