OktaをIdPにする俺たちは条件付きアクセスを利用できないのでOktaのSign On Policyを利用する

またOktaネタです。
書くネタがOkta以外ないワロ


タイトルそのまんまなんだけど

SaaS利用する時に、特定IPのみログイン可能にしたいとか、WindowsとMac OSのみ許可してスマートフォンからのアクセスは禁止したいとか、MFA必須にするとか、ログインさせるにもわがままなルールを出しがちになります。
仕方がないんだけど。

で、そんな中で有名なのがマイクロソフトの条件付きアクセス
詳しいことは公式ドキュメント読んでください
条件付きアクセスとは

ただ問題があってOkta(Azure AD以外のIdP)をIdPにしているとこれは使えない
出オチです

なんで使えないかは、OktaがSaaSにアクセスする時にわざわざIntune側にSaaSのアクセスルールを取りにいかないからです。
当たり前だよね。そもそもIntuneもといAzureと連携しているかもあれだし

それでもやっぱり使いたい

一応それでも使いたい人向けの構成書いておきます

Okta(他のIdP) <-SSO-> Azure AD <-SSO-> SaaS

この構成です。つまりOktaとAzureをSSOします。この時、OktaはSPになります。構成上わかりやすく、右のSaaSって書いてあるやつと分けてるけどそっちと同じ扱いちっくなかんじ
なので、SSOの構成組むのはOktaじゃなくてAzure ADになる
Okta買った意味ねーってなります

なので、まぁどうしても譲れない理由がない場合以外はこの構成する必要あるかって思ってます。個人意見ですが。普通にOktaはやめていいと思う。Azure ADだけでええやんっていう


Okta使っててSaaSのアクセスの制限をしたい時

じゃあ、MS的条件付きアクセスみたいなのはOktaにはないのか?っていうとある。

各アプリケーション詳細のSign onタブの一番下にあるSign On Policyがそれにあたる

本家のドキュメント
Sign-on policies

デフォルト状態は、全てのユーザーが全ての場所から全てのデバイスでアクセスできるよってルールです


画像1

詳細


画像2

こんな感じ

指定項目は上から

- ユーザーまたはグループ指定(除外指定も可能)
- ロケーション指定(除外指定も可能)
- デバイスの指定(デバイスのくくりは画像見てください)
- デバイストラスト(後述)
- アクセスの可・拒否・MFAの期間指定

ポリシーはとりあえず10個くらい作ったことあるけど怒られなかったから制限はないんじゃないかと思う。知らない

デバイスの指定は、OSでざっくり指定なので、MacOSのBig Surじゃないとダメとかそういうことはできない。できるようになって欲しい。

デバイストラストの項目に関しては、これはOktaとMDMを連携することで可能
連携していない場合はそもそもポリシーの部分にも表示が出てこないので、テナントをみてこんな項目見たことないって思ったらそう言うことです。

つなげられるMDMはそこそこありますが、Intuneは無理です。
遺憾の意をOktaとMSに表したい。
Windowsのデバイストラストは、IWA Serverとか立ててやることができます。すっごいめんどくさい仕様なのでこれをやっているところあるのかなって思ってます。いたらどれくらいめんどかったか教えてください。

真面目にIntuneと連携できるようになって欲しい。そうじゃないと困る。


ポリシーのルール

ポリシーを書く時に気をつけたいのは、書いた後にどういう意図でそのポリシーにしたのかを分かり易くすることです。
残念ながらポリシー自体にメモを書けないので、ポリシー名をわかりやすくするとか、どこか別のところにメモを書いておいた方がいいです。あとでなんでこんなルールにしたのかわからなくなって闇落ちします。

また、アクセスの許可・拒否は統一しておくとわかりやすいので、どっちかに寄せましょう。
どっちがいいのかはもう好みな気がします。わかりやすいのが一番いいと思う。
ただし、アクセスを許可するでポリシーを書いた場合は、自分で書いたポリシーとデフォルトのポリシーの間に、それ以外のアクセスを拒否するというポリシーを作ってください。
理由は、デフォルトポリシーが全てのアクセスを許可する、というポリシーだからです。このデフォルトポリシーが書き換えできないので、●●の時は許可するというポリシーを書いていっても、最後でそれ以外を拒否するというポリシーを入れておかないと、すり抜けで許可したくない状況でもデフォルトポリシーでログインが可能になってしまいます。ポリシー書くのややこしいね。

で、そうやって書いていったポリシーですが、ユーザーが実際にログインを行おうとした時に、1番上に配置したポリシーから順になめていく感じです。1番目は問題なくても2番目で該当してアクセス拒否となった場合は、3番目以降のポリシーは確認せずにアクセスはブロックされます。

なので、ポリシーを複数書いた場合、順番は気をつけてください。

このsign on policyですが、テンプレート的に保存はできないので、複数アプリケーションで同じルールを同じ順番で使いたくても0から作っていくしかありません。非常にめんどくさいです。テンプレート機能こい。


ちょっと長々書きましたが、最近こんなネタを自分で考えたり聞かれることがあったので書いてみました、

質問や間違ってるよなんてあったら、Twitterかこちらのコメントまでお願いします。

参考になったと思った人は私のAmazon乞食に協力ください
わたしのほしい物リスト

お昼ご飯代で使います