とあるSaaSを、AzureADでSSOする構成にしてみた。・・・が、要件と仕様のはざまで困るケースもある、というお話。
背景
SSOは、目的が2つある。
1つは、ユーザーの利便性を上げること。
システムごとにアカウントとパスワード覚えるなんて大変なので、同じアカウントとパスワードでログインできるようになったら覚えるものが減ってうれしい。
システムごとにログインするのは面倒なので、あるシステムでログインしてたら別のシステムでもログインしているようになったら、手間が減ってうれしい。
もう1つは、セキュリティを上げること。
複数のシステムがSSOで連携してたら、アクセス元の制御やアクセス条件を、強制できる。
複数のシステムがSSOで連携してたら、あるアカウント無効化すれば、対象のシステム全部ブロックできる。
もちろん費用が掛かるケースもあるけど、安全を保ちやすくなる。
というわけで、SaaS導入するときはSSOしよう!ということであるSaaSのSSO連携設定も終わったよ!という状態だったのだが、問題発生。
困った
そのSaaSは、SSO「も」できる、だった。せっかくAzureADでのSSO構成も作成したのだけど、SNSとのSSOや、単純にアカウントとパスワードでのログインもできてしまう。特定の認証プロバイダーのSSOだけに制限する機能がないらしい。
さっきのメリットの、前者は満たせるが、後者が満たせない。
これはサービス側が悪いと言うつもりは毛頭なく、そのサービスに対して、潜在的なユーザーがそういったことを求められているか否か、そのニーズに対して実装することが費用対効果的にメリットがある否かという経営判断なのだと思う。正直そんなん実装しようと思ったらお金かかるし。
ある程度の規模、例えばSalesforceぐらいの規模だったら、認証プロバイダーを1つにすることも、複数にすることも設定可能なオプションを用意している。それは、そういったニーズがあるからに他ならない。
まとめ
気になるSaaSはいっぱいあるし、ユーザーが使いたい!と言ってくるSaaSは便利だから入れたい、と言ってくる。SSOに対応してます、と言われても特定の認証プロバイダーだけに制限する機能があるかはとっても重要。今後は必ずここ確認すると誓った。
ある程度セキュリティを気にするような規模の会社にアプローチするには、上記の機能を実装するか、それが難しいようならせめて特定のIPだけにアクセス制限する機能は実装したほうが、セキュリティを気にする会社への間口は広がると思いますが、いかがでしょう?