社内をパスワードレスにするため頑張った話（中編）

# はじめに

本記事はMicrosoft Security Advent Calendar 2023、11日目の記事になります。

https://qiita.com/advent-calendar/2023/microsoft-security

:::note
いいね👍よろしくお願いします！
:::

# シリーズ3部作です。

https://qiita.com/akihiro_suto/items/1536a623638d5aaa9456

https://qiita.com/akihiro_suto/items/f2d2b637635bebe287ea

https://qiita.com/akihiro_suto/items/89a1dcb364821113ade8

# IdP基盤を整理したことによるメリット

IdP基盤をオンプレADとEntra IDのみの構成に整えることができたことで、Entra IDを中心にアカウント保護やSSOを考えていくことができるようになりました。

IdP基盤を整理することのメリットはいくつもありますが、セキュリティ目線で考えると、

- ユーザーリスク
- サインインリスク

の検知があげられます。

## IdPがバラバラだった場合

以下のようにユーザーからのアクセスがあった場合、認証基盤がバラバラだった場合はそれぞれなにも検知できず、紛れ込んでいる**悪意のあるユーザーもサービスを利用することができてしまいます**。

---

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/a98657be-bbb8-e56a-76d2-2341e7bdba36.png)

---

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/577cfd66-710d-0136-8e06-60669826c896.png)

---

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/be1d85db-849a-641d-8c9c-085db13d2c61.png)

---

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/4496551c-c53e-3e47-3da2-28ab008b073a.png)

## IdPを統一した場合

上記のサインインをまとめて把握することができると、以下のように、**どう見ても怪しいサインイン試行**があります。こういったサインインに対して、**自動的に多要素認証を求める**など、本人確認を徹底することができ、悪意のあるサインインを防げます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/914a876d-88ad-1e04-cc47-85358937ec7b.png)

# SaaSアプリのSSO化を進める

### そもそもSSOとは

:::note
シングルサインオン（SSO）とは、複数のWebアプリケーションにログインする際に、1回の認証で複数のアプリケーションにアクセスできるようにする仕組みです。つまり、複数のWebアプリケーションにログインするために必要なIDやパスワードを1回入力するだけで、複数のWebアプリケーションにアクセスできるようになります。この仕組みにより、ユーザーは複数のIDやパスワードを覚える必要がなくなり、セキュリティも向上します。
:::

https://www.microsoft.com/ja-jp/security/business/identity-access/microsoft-entra-single-sign-on

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/74b7e34f-fefa-bb97-2d9b-ceb5b4d8f70a.png)


### **IdP整理前**

IdP基盤の整理を終えた時点でははEntra ID経由でログインをしているのはM365を含めて3つくらいのSaaSアプリケーションでした。大半のSaaSアプリにはID/PASSでログインをしている状態。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/5afc76ca-617b-c25c-d77e-896f5ef3841c.png)

この**状態ではリスク検知ができない**ため、M365や各種SaaSアプリにログインするときに、必ず**Entra IDを経由させる＝SSO（シングルサインオン）** をさせるように準備を進めていきました。

### **SaaSアプリをSSOにしていった図**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/36c37be0-03b5-8322-4298-78968338cb64.png)

# SaaSアプリのSSOは設定が簡単

Entra IDのドキュメントには、SSOを構成する手順がアプリケーションごとにまとまっています。

https://learn.microsoft.com/ja-jp/entra/identity/saas-apps/tutorial-list

例えば

- Box
    - https://learn.microsoft.com/ja-jp/entra/identity/saas-apps/box-tutorial
- Zoom
    - https://learn.microsoft.com/ja-jp/entra/identity/saas-apps/zoom-tutorial
- Adobe
    - https://learn.microsoft.com/ja-jp/entra/identity/saas-apps/adobe-identity-management-tutorial

のように、対象のSaaSアプリ側での設定まで踏み込んだドキュメントになっているので、自社で使用しているアプリがこのリストにあれば設定は簡単にできます。このリストにのっていない

# SSOは金がかかる

SSOを構成すると、ユーザーはID/PASSの管理をする必要がどんどんなくなっていくため、楽になっていきます。また、前述のとおり、セキュリティ的にもどんどん強固になっていきます。

**ただ…**

SSOを企業側がやりたがっていることををSaaSアプリ側もわかっていまして…😂

SSOを構成することができるプランは上位プランのみになっているサービスが多いです。

### 例 DocuSign

電子署名を取り交わすだけなら下位プランでもOKですが、SSOを構成するためには最上位のプランでなければなりません。

https://ecom.docusign.com/ja-JP/plans-and-pricing/esignature

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/8d37ac60-6413-79fa-ae52-e6bc56de70ed.png)

### 例 Bitly

短縮URLサービスのBitlyも、URLを短縮するだけなら下位プランでOKですが、SSOを構成するために最上位プランの契約が必要になります。

https://bitly.com/pages/pricing

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/86905f4e-9a77-5a1f-f51e-0b1dcd0f04ed.png)

## SaaSアプリのSSO化をどんどん進める

ということで、SSO化を進めるためには、利用SaaSのプラン変更が伴うためコスト増につながります。が、それ以上にセキュリティ上メリットがあること、ユーザー利便性もあがることを訴え、（おそらく）会社にも理解をしてもらったので各種アプリのSSO化を進めていきました。

プラン変更は営業の方へのコンタクト、打ち合わせ、契約書の巻き取りなどなどそれなりに工数が多く、また「ただSSOにしたいだけなのにこんなに値段変わるの！」というサービスもあり、時間的にも精神的にも大変でした。

# Entra IDに認証を集約する！

細かいトラブルはありましたが、SSOができるようになったアプリケーションは順調に増えて、今日時点で30以上になっています。並行して**自社開発の業務アプリケーションもSSO**できるように追加開発を進めました。

ここまでくると、ユーザーとしても「情シスがSSO化を進めている」と気づいてきて、新たに開発する業務アプリケーションや、既存の小さく運用されていたSaaSに対して、

- **「〇〇（SaaS名）はSSOにできませんか？」**
- **「▲▲はSSOにしたほうがいいんですよね？」**

といった声が上がるようになってきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/31b13d36-7286-a427-a16a-5d1cece6a73e.png)

Entra ID経由でサインインしているアプリと、そのサインイン回数をまとめたグラフ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/b1dc16dd-c89d-4a95-4878-f9670e7df915.png)

# リスクの監視ができるようになった

SaaSアプリや自社開発WebアプリをSSOできるようにしていくことで、何かのアプリを利用する際には必ずEntra IDのチェックを通ることになりました。

こういう構成にすることで、以下のような自動修復アクションを構成することができました。

### リスクの高いサインイン

リスクの高いサインインアクティビティは、例えば「不可能な移動」があげられます。直前のサインインが日本のIPアドレスからだったのに、その数分後にアメリカのIPからアクセスがあった場合、「不可能な移動」と判定されます。リスクの高いサインインアクティビティがあった場合は再度 **「多要素認証以上」の再認証** を求めています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/914a876d-88ad-1e04-cc47-85358937ec7b.png)

### リスクの高いユーザー

リスクの高いユーザーとして判定されるのは、主にパスワード関係の侵害になります。不正アクセス試行があったユーザーや、パスワード漏洩が認められた場合に「リスクが高いユーザー」となります。
**リスクが高いユーザーには、パスワード変更を求めます。** Entra IDにはセルフサービスパスワードリセット（SSPR）という仕組みがあり、ヘルプデスクがサポートせずとも、自分だけでパスワード変更ができます。

**再掲**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/36c37be0-03b5-8322-4298-78968338cb64.png)

# 中編まとめ

M365筆頭に、業務に必要なアプリケーションのほとんどの認証がEntra IDを利用することになり、リスク監視、そして自動修復ができるようになりました。（時系列的には並行して進めていましたが）そもそものEntra IDへのログインがパスワードレスになれば、社内はほぼパスワードレス環境になります。

# シリーズ3部作です。

https://qiita.com/akihiro_suto/items/1536a623638d5aaa9456

https://qiita.com/akihiro_suto/items/f2d2b637635bebe287ea

https://qiita.com/akihiro_suto/items/89a1dcb364821113ade8