Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Exchange Online の基本認証が廃止された今こそ学んでおきたいサービスプリンシパル利用
Search
Recruit
PRO
December 20, 2022
Technology
7
8.7k
Exchange Online の基本認証が廃止された今こそ学んでおきたいサービスプリンシパル利用
2022/12/19第36回 Office 365 勉強会での、政岡の登壇資料になります。
Recruit
PRO
December 20, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
問題解決に役立つ数理工学
recruitengineers
PRO
11
2.7k
Curiosity & Persistence
recruitengineers
PRO
2
180
結果的にこうなった。から見える メカニズムのようなもの。
recruitengineers
PRO
1
380
成長実感と伸び悩みからふりかえる キャリアグラフ
recruitengineers
PRO
1
160
リクルートの オンプレ環境の未来を語る
recruitengineers
PRO
3
250
LLMのプロダクト装着と独自モデル開発
recruitengineers
PRO
1
300
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 ビジネス編
recruitengineers
PRO
3
170
新規検索基盤でマッチング精度向上に挑む! ~『ホットペッパーグルメ』の開発事例 技術編
recruitengineers
PRO
1
220
大規模プロダクトにおける フロントエンドモダナイズの取り組み紹介
recruitengineers
PRO
5
160
Other Decks in Technology
See All in Technology
Houtou.pm #1
papix
0
660
GoogleのAI Agent
shukob
0
120
KMP導⼊において、マネジャーとして考えた事
sansantech
PRO
1
210
“新卒らしさ”を脱ぎ捨てて 〜1年を経て学んだこと〜
rebase_engineering
0
130
RDRA3.0を知ろう
kanzaki
2
430
Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
0
490
プラットフォームとしての Datadog / Datadog as Platforms
aoto
PRO
1
330
積み上げられた技術資産と向き合いながら、プロダクトの信頼性をどう守るか
plaidtech
PRO
0
860
mnt_data_とは?ChatGPTコード実行環境を深堀りしてみた
icck
0
210
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
8
920
プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
3
180
CloudBruteによる外部からのS3バケットの探索・公開の発見について / 20250605 Kumiko Hennmi
shift_evolve
3
110
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
It's Worth the Effort
3n
184
28k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
19
1.2k
Documentation Writing (for coders)
carmenintech
71
4.8k
Building Applications with DynamoDB
mza
95
6.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
106
19k
Visualization
eitanlees
146
16k
Unsuck your backbone
ammeep
671
58k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
Transcript
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 1 Exchange Online の基本認証が廃止された 今こそ学んでおきたい サービスプリンシパル利用 株式会社リクルート 政岡 裕士 2022年12月19日 第36回 Office 365 勉強会 © Recruit Co., Ltd. All rights reserved.
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 2 2 (C) Recruit □□□□□□□□ Co., Ltd. All rights reserved. • Yuji Masaoka | まっぴぃ • Twitter: @mappie_kochi • Zenn: ymasaoka • 株式会社リクルート(2019/5 ~ ) • リクルートグループ従業員向け Microsoft 365 / Microsoft Azure 関連の管理運用 • コミュニティ活動 • Japan Azure Cosmos DB User Group – Organizer • Japan SQL Server User Group – Staff • 趣味 • Perfume / Disney / Gym(Anytime Fitness)/ SwitchBot 自己紹介
会社紹介
リクルートグループについて 4 創業 1960年3月31日 「大学新聞広告社」としてスタート グループ 従業員数 51,757名 (2022年3月31日時点) 連結売上収益
28,717億円 (2021年4月1日~2022年3月31日) 連結営業利益 3,789億円 (2021年4月1日~2022年3月31日) グループ 企業数 連結子会社 351社 関連会社8社 (2022年3月31日時点) ビジョン・ミッ ション
リクルートグループのうちメディア&ソリューション事業を推進する会社 ※2012/10 中核事業会社・機能会社に分社 → 2021/4「リクルート」として統合 リクルートについて 5 リクルート ホールディングス リクルートキャリア
リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ リクルートマーケティングパートナーズ リクルートスタッフィング スタッフサービス・ホールディングス 人材派遣事業 RGF Staffing B.V. HRテクノロジ― 事業 RGF OHR USA, Inc. その他海外派遣グループ会社 Indeed,Inc. Glassdoor,Inc. リクルートテクノロジーズ リクルートコミュニケーションズ 事業 会社 機能 会社 マッチング & ソリューション事業 (株)リクルート
リクルートの事業内容について(主なサービス) 6 選択・意思決定を支援する情報サービスを提供し、 「まだ、ここにない、出会い。より速く、シンプルに、もっと近くに」を実現する メディア&ソリューションSBU HRテクノロジーSBU 人材派遣SBU 国内派遣 海外派遣
リクルートのビジネスモデルについて 7 リクルートには、ユーザーとクライアントという2つのお客様が存在します。 企業と人(B to C)、企業と企業(B to B)、人と人(C to C)、すべての間に立ち双方にとって最適な
マッチングを図る「場」を提供しています。 ユーザーとクライアントを新しい接点で結び、 「まだ、ここにない、出会い。より速く、シンプルに、もっと近くに」の場を創造する
本題
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 9 9 Exchange Online は多要素必須の時代へ突入 POP/IMAP、EWS、MAPI などは 単一要素認証を無効化 (SMTP Auth もいずれ無効化予定) ▪日本語 Exchange Online における 基本認証の廃止 – 2022 年 9 月の更新 ▪英語 Basic Authentication Deprecation in Exchange Online – September 2022 Update
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 10 10 • 有効化された後、管理者権限で明示的にオフにすることも可能ではある (が、このご時世に多要素オフ=セキュリティ意識が怪しいと見られる可能性あり) 補足)Azure AD も多要素がデフォルトの時代へ 10 ▪日本語 2022 年 6 月末から「セ キュリティの既定値群」の有 効化が促されます (対象 : 一 部のテナント) ▪英語 Raising the Baseline Security for all Organizations in the World 条件付きアクセスで多要素条件を細かく設定することも可能 多要素認証は、企業として必要最低限のセキュリティ施策の1つ (海外では当たり前)
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 11 11 • 2020 年に PJ 発足、2021/5 から段階的に多要素を適用開始 • 多要素適用によって発生する業務影響についての相談窓口を設置 サービスプリンシパルや OAuth への切替対応を支援 • 2022/10 以降は、すべての Microsoft 組織アカウントは多要素必須 リクルートはどのように多要素対応をしたか
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 12 12 • わかったこと=日本はまだまだセキュリティへの意識が弱い 続々と寄せられる、多要素に対するさまざまな声 社員 多要素入れたら業務影響しかないから無効化しろ まっぴぃ 会社のセキュリティ規程で必須だから無理なんです… 社員 プログラムで自動化してるけど、コードのメンテが できない(工数もない)から適用期限を来年にしてほしい まっぴぃ MS 側で期限が決まっているのでなんとかそれまでに頑張って... (ちなみに参考コードはここ / VBA だったら... etc.) セキュリティ = 企業の最優先するべき事項 の意識を!
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 13 13 • MSAL:Microsoft Authentication Library の略 • 対応言語もさまざま存在(.NET / Java / JavaScript / Python etc.) • MSAL 経由でサービスプリンシパルから Microsoft Graph API を実行 プログラムは MSAL + サービスプリンシパルに移行 ▪詳細は Microsoft Docs を参照 Microsoft Authentication Library (MSAL) の概要 ADAL や EWS は Graph API に 移行が必要になっている
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 14 14 • ローカル表現とグローバル表現 • サービスプリンシパル = 自テナント内専用の識別子 • エンタープライズアプリ(アプリケーション)= 全テナントで共通の識別子 • サービスプリンシパルとエンタープライズアプリは 1 vs 1 の関係 • 実際に Microsoft Graph の権限許可はサービスプリンシパル側で指定 補足)サービスプリンシパル と エンタープライズアプリ ▪詳細は Microsoft Docs を参照 Azure Active Directory のアプリケーション オブジェクトとサービス プリンシパル オブ ジェクト
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 15 15 • 「バッチ処理 = とりあえずアプリケーションの許可を付与」は非常に危険! 「アクセス許可の種類 - アプリケーションの許可」 の罠 ちゃんと見て付与をしていますか? 意味を理解して付与をしていますか? 例)Mail.Send の場合
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 16 16 • 委任されたアクセス許可 • 原則、承諾されたアカウント分だけしか実行できないようになっている • 委任されたアクセス許可であっても、「管理者の同意」ボタンには注意 • アプリケーションの許可 • Microsoft Graph API のアクセス許可だけ設定している状態は危険 • メールが有効なセキュリティグループ & アプリケーションのアクセス許可ポリシーを 使用して、利用できる対象に制限を付与 Mail.Send や Mail.Read は限られた ID だけ OK に縛る
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 17 17 • Exchange Online PowerShell v3 などを使用し作成 • サービスプリンシパルでメールの送受信を行うことを許可するユーザーアカウントを グループメンバーとして追加 • 実際のコマンドについては、公開済みのブログ記事を参照 • Exchange Online 管理センターなどでも作成可能 • なぜメールが有効なセキュリティグループを使うのか • 後の運用が楽だから(対象の追加/除外は、グループメンバーの操作だけで完結) メールが有効なセキュリティグループの作成
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 18 18 • サービスプリンシパルとメールが有効なセキュリティグループを紐づける • アプリケーションのアクセス許可ポリシーで紐づけることで、許可したユーザー以外の Graph API 利用を拒否 • 実際のコマンドについては、公開済みのブログ記事を参照 アプリケーションのアクセス許可ポリシー
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 19 19 • 可能な限り、証明書利用が好ましい(個人的意見です) • クライアントシークレットは、値が流出しただけで危険 • 証明書の場合、公開鍵 + 秘密鍵 の組み合わせで流出しないと意味がない • 証明書は利用者側で発行したもののうち、公開鍵だけを AAD に登録するのみ • SaaS 製品などによっては証明書に対応していない例もあり • できる限り、他社に流出しないような取り扱いを心がける (裏側の仕様を完全に把握することは難しいが) • 数年間にわたって同じ値を使わせるような Docs には要注意(流出した際のリスクが大きい) 余談)証明書 と クライアントシークレット どっちを利用?
DEMO
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 21 21 • メール同様、アプリケーションの許可には注意 • Sites.Selected 以外は基本使わないこと 余談)SPO / OneDrive でのアクセス制限 21
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 22 22 • Exchange Online の基本認証はもう利用できない(廃止) • SMTP Auth は影響の大きさから適用が見送られているが、いずれ実施 • Azure AD もデフォルトで多要素認証が必須になっている • 海外では多要素認証は当たり前 • 条件付きアクセスで条件を細かく設定したい、などの目的以外で、機能をオフにしない • これまで ID/PASS でやっていた処理はサービスプリンシパルへ移行 • サービスプリンシパル = アプリ用の ID のようなもの • サービスプリンシパルに Graph API のアクセス許可を付与 • プログラムからは MSAL を通してリソースにアクセス まとめ1:多要素認証は導入が当たり前の時代
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 23 23 • 利用単位に制限を設けられるかをしっかり確認して付与をしましょう • メール系 (Mail) の場合は、アカウント制限をかける • SharePoint や OneDrive の場合は、サイト制限をかける • 制限ができない Graph API の利用には、制限を設ける(一般ユーザーは NG など) • わからない時は Microsoft サポートをうまく活用する • サービスプリンシパルは、必要最小限の権限で定期的な棚卸を行うこと • システムや利用目的が別であるなら、サービスプリンシパルもそれぞれ分ける • 証明書やシークレットは年単位での切り替えを推奨(切り替え時に棚卸ができる) • 証明書やシークレットの流出に気をつけること • 部外者への流出 = 不正アクセスのリスク • シークレットや証明書は適切な場所で管理(証明書ストア / Azure Key Vault など) • シークレットをソースコードにベタ書きするのは絶対に NG まとめ2:アプリケーションの許可を使用する際の注意
• マスター テキストの書式設定 • 第 2 レベル • 第 3
レベル • 第 4 レベル • 第 5 レベル マスタ タイトルの書式設定 24 24 • Microsoft 公式ブログ • Exchange Online における基本認証の廃止 – 2022 年 9 月の更新 • 2022 年 6 月末から「セキュリティの既定値群」の有効化が促されます (対象 : 一部のテ ナント) • Microsoft Docs • Microsoft Authentication Library (MSAL) の概要 • Azure Active Directory のアプリケーション オブジェクトとサービス プリンシパル オブ ジェクト • その他 • サービスプリンシパルのアプリケーション許可による Mail.Send や Mail.Read にアカウン ト制限を適用する -Zenn.dev 参考情報