1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民こと、
新藏(にいくら)と申します♪
(/・ω・)/
ARIのアドベントカレンダの4日目です!
今回はAzureの「サービスプリンシパル」や「アプリ」の概念がややこしくて混乱したので、
整理してみようと思います!
Azureについて勉強中の方の参考になれば幸いです。
(*^^)v
2.ユースケース
今回は、Azure DevOpsのパイプラインを使用してAzureリソースをデプロイする場合に、
どのような流れで認証・認可がされるのかを整理します。
3.基本用語の整理
処理の流れに入る準備として、基本的な用語を整理します。
認証
認証とはユーザーやアプリがシステムにアクセスする際、
ID情報が正しいかを確認するプロセスです。
要するに、「あなたは誰ですか?」を確認するプロセスです。
認可
認可とは認証が終わった後、そのIDにどんな権限があるかを決定するプロセスです。
要するに、「あなたは何ができますか?」を決定するプロセスです。
サービスコネクション
サービスコネクションとは、サービスプリンシパルへの資格情報を持ち、
Azure DevOpsからAzureへ接続する際のゲートウェイです。
パイプラインが安全にAzureへ接続できるようにします。
Entra ID
Entra IDとはAzureにおける認証・認可を一元管理するサービスのことです。
アプリ
アプリとは、Entra IDへの認証方法を定義するサービスのことです。
サービスプリンシパル
サービスプリンシパルとは、アプリを基に作成される、
Azureで権限を持つアカウントのことです。
RBACで権限を付与します。
4.処理の流れ
では、処理の流れについて説明します。
① パイプラインを起動するとサービスコネクションへの接続が開始されます
② サービスコネクション経由でEntra IDに接続を開始します
③ アプリ登録の際に発行された認証情報(クライアントID、シークレットなど)
を使用してEntra IDで認証を実施します
④ 認証が通った場合、Entra IDがアクセストークンを発行します。
トークンにはサービスプリンシパルのIDが含まれ、
Azure側でRBACにより権限が確認されます
⑤ パイプラインがトークンを使用してリソース操作を実施します
※より厳密には、各Azureサービスがトークンの主体(サービスプリンシパル)
に付与された権限を確認し、権限があればリソース操作が実行されます
5.日常生活に例える
うーん、中々専門用語が多くて難しいと思ったので、
社員証による認証認可と対応させてみました
① 人が会社に入るため、窓口へ行く
(パイプライン → サービスコネクション)
②窓口が総務部に『この人を入館させたい』と連絡する
(サービスコネクション → Entra ID)
③総務部が申請書に書かれた社員番号や暗証番号で本人確認する
(アプリ登録の認証情報で認証)
④ 総務部が社員証を渡し、社員証には部署や権限が記載されている
(トークン発行)
⑤社員証を使って各部署の部屋に入り、仕事ができるようになります
(Azure側でRBACにより権限確認 → Azureリソース操作)
6.おわりに
ここまで読んで下さり、ありがとうございます!!!
(^^)
ややこしい単語が多いので整理してみました、
同じような悩みがある方の助けになれば幸いです♪
(:3_ヽ)_

