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
9.4k
Exchange Online の基本認証が廃止された今こそ学んでおきたいサービスプリンシパル利用
2022/12/19第36回 Office 365 勉強会での、政岡の登壇資料になります。
Recruit
PRO
December 20, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
Browser
recruitengineers
PRO
3
270
JavaScript 研修
recruitengineers
PRO
2
140
TypeScript入門
recruitengineers
PRO
8
1.6k
モダンフロントエンド 開発研修
recruitengineers
PRO
2
260
Webアクセシビリティ入門
recruitengineers
PRO
1
230
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
1
140
モバイルアプリ研修
recruitengineers
PRO
2
220
事業価値と Engineering
recruitengineers
PRO
1
190
制約理論(ToC)入門
recruitengineers
PRO
2
260
Other Decks in Technology
See All in Technology
生成AI利用プログラミング:誰でもプログラムが書けると 世の中どうなる?/opencampus202508
okana2ki
0
190
歴代のWeb Speed Hackathonの出題から考えるデグレしないパフォーマンス改善
shuta13
6
600
Evolution on AI Agent and Beyond - AGI への道のりと、シンギュラリティの3つのシナリオ
masayamoriofficial
0
170
Backboneとしてのtimm2025
yu4u
4
1.4k
Figma + Storybook + PlaywrightのMCPを使ったフロントエンド開発
yug1224
4
270
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
190
Goss: New Production-Ready Go Binding for Faiss #coefl_go_jp
bengo4com
0
1.1k
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
190
Yahoo!広告ビジネス基盤におけるバックエンド開発
lycorptech_jp
PRO
1
270
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
650
広島銀行におけるAWS活用の取り組みについて
masakimori
0
130
人を動かすことについて考える
ichimichi
2
320
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
How STYLIGHT went responsive
nonsquared
100
5.7k
Rails Girls Zürich Keynote
gr2m
95
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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 参考情報