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
6.5k
Exchange Online の基本認証が廃止された今こそ学んでおきたいサービスプリンシパル利用
2022/12/19第36回 Office 365 勉強会での、政岡の登壇資料になります。
Recruit
PRO
December 20, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
Azure Functions HTTPトリガーにおけるタイムアウトでハマったこと
recruitengineers
PRO
2
150
実務につなげる数理最適化
recruitengineers
PRO
6
690
うちにも入れたいDatadog
recruitengineers
PRO
2
380
リクルートのデータ基盤 Crois 年3倍成長!1日40,000コンテナの実行を支える AWS 活用とプラットフォームエンジニアリング
recruitengineers
PRO
2
330
Splunk Enterpriseで S3のデータを直接検索してみた!
recruitengineers
PRO
2
150
Looker APIを使い倒す ユーザーフィードバックを基にした継続的改善サイクル
recruitengineers
PRO
3
57
Kaggleふりかえり会〜LLM 20 Questions & ISIC 2024
recruitengineers
PRO
2
230
Balancing Revenue Goals and Off-Policy Evaluation Performance in Coupon Allocation
recruitengineers
PRO
2
51
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
390
Other Decks in Technology
See All in Technology
kargoの魅力について伝える
magisystem0408
0
200
C++26 エラー性動作
faithandbrave
2
720
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
レンジャーシステムズ | 会社紹介(採用ピッチ)
rssytems
0
150
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
150
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
muziyoshiz
2
2.2k
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
1
760
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
100
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
700
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Thoughts on Productivity
jonyablonski
67
4.4k
Mobile First: as difficult as doing things right
swwweet
222
9k
GitHub's CSS Performance
jonrohan
1030
460k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Building Adaptive Systems
keathley
38
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Designing for Performance
lara
604
68k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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 参考情報