【GCP Associate対策】一番わかりやすいSAMLとSSOの話 (IdPとSPって何?)
はじめに
こんにちは! Google Cloud Associate Cloud Engineerの勉強中、SAMLとかSSOとか、IdPにSP...といった用語が出てきて混乱した経験はありませんか?
あなたの会社では、サービスプロバイダとのSecurity Assertion Markup Language(SAML)統合をサポートしているシングルサインオン(SSO)用ID プロバイダを使用しています...
こんな問題文を読んで、「うっ...」となった方向けに、今回はこの認証の仕組みを世界一わかりやすく解説して、試験問題を確実に解けるようになることを目指します!
一番わかりやすい例え話:海外旅行で考えよう! ✈️
難しい用語は一旦忘れて、あなたが海外旅行に行く場面を想像してください。
あなた: 旅行者 🧍
行きたい国(サービス): Google Cloud ☁️
あなたの国のパスポートセンター: 会社のログインシステム (Okta, Azure ADなど) 🛂
さて、あなたがGoogle Cloud国に入国しようとすると、入国審査官(Googleのログイン画面)にこう言われます。
「あなたが何者か証明してください。あなたの国のパスポートセンターで発行されたパスポートを見せてください。」
あなたはいきなりGoogle Cloud国でパスポートは作れませんよね?一度、自分の国にあるパスポートセンターに戻って、身分を証明し、パスポートを発行してもらう必要があります。
この流れが、まさにSAML SSOの仕組みそのものなんです!
あなたが Google Cloud (行きたい国) にアクセスしようとする。
Google Cloud は「身分証明書(パスポート)がないね。君の国のパスポートセンターで認証してきなさい」とあなたをリダイレクトさせる。
あなたは**会社のログインシステム(パスポートセンター)**でIDとパスワードを入力して認証する。
認証が成功すると、パスポートセンターは「この人は正真正銘の国民です」という**電子証明書(パスポート)**を発行し、それを持ってあなたをGoogle Cloudに送り出す。
Google Cloud はその電子証明書(パスポート)を見て、「信頼できるパスポートセンターが発行したものだな。OK、入国を許可します!」とログインを許可する。
例え話を専門用語に置き換えてみよう
この例え話の登場人物を、専門用語に置き換えるだけで完璧に理解できます。
例え話の登場人物 | 専門用語 | 説明 |
---|---|---|
パスポートセンター 🛂 | IdP (Identity Provider) | IDを提供する側。ユーザーが誰であるかを認証するシステム。(例: Okta, Azure AD) |
行きたい国 ☁️ | SP (Service Provider) | サービスを提供される側。ユーザーが利用したいアプリケーション。(例: Google Cloud, Salesforce) |
パスポート 📜 | SAMLアサーション | IdPが発行する「この人は認証済みです」という電子証明書。 |
つまり、IdP (Identity Provider) が本人確認を行い、SP (Service Provider) がその結果を信頼してサービスを使わせてあげる、という関係性なのです。
これで試験問題は解ける!
もう一度、最初の問題を見てみましょう。
状況の整理:
会社のSSOプロバイダ = IdP (パスポートセンター)
Cloud Identity (Google Cloud) = SP (行きたい国)
やりたいこと:
会社のIDでGoogle Cloudにログインしたい。
これはつまり、「SPであるGoogleに、IdPである会社のSSOを信頼させる設定」をすれば良いわけです。
では、選択肢を見てみましょう。
正解: Cloud Identity で、サードパーティの ID プロバイダで Google をサービス プロバイダとして SSO を設定する。
まさに、「SPであるGoogleで、**IdPであるサードパーティ(会社)**を使ってSSOを設定する」と書いてありますね!
間違い: Cloud Identity で、Google を ID プロバイダとして SSO を設定し...
これは「GoogleをIdP(パスポートセンター)として」と言っているので、役割が逆です。これはGoogleのIDで外部のアプリにログインする時の設定です。
間違い: OAuth 2.0 の認証情報を取得し...
OAuth 2.0は「認可」の仕組みで、「認証」のSAMLとは役割が違います。例えるなら、パスポート(認証)ではなく、特定の施設への入場許可証(認可)のようなものです。ごっちゃにしないようにしましょう。
まとめ
SSOは、1回のログインで色々なサービスを使えるようにする仕組み。
SAMLは、そのSSOを実現するための言語(ルール)。
IdP (Identity Provider): ユーザーを認証する側(パスポートセンター)。
SP (Service Provider): 利用したいサービス側(行きたい国)。
この「海外旅行の例え」さえ覚えておけば、SAML関連の問題はもう怖くありません。
この記事が、あなたのGCP学習の助けになれば嬉しいです!