Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第114回 雲勉【オンライン】セキュリティの『わからない』が『ちょっと分かる』に変わる 60分 〜何でこんなに種類があるの? ユーザー認証を理解する〜

iret.kumoben
September 14, 2023

第114回 雲勉【オンライン】セキュリティの『わからない』が『ちょっと分かる』に変わる 60分 〜何でこんなに種類があるの? ユーザー認証を理解する〜

iret.kumoben

September 14, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 自己紹介 4 なかむら まさと 中村 昌登 🐰しろうさ🐰 ▼ 略歴 大学

    航空宇宙工学で、航空機の制御や空力を勉強 新卒 大手企業の社内SE、セキュリティとシステムを担当 現職 Iret で大手会社のセキュリティコンサル等を実施 ▼ 座右の銘 『好きこそものの上手なれ』 ▼ 得意なこと ユーザー管理、セキュリティマネジメント ▼ 趣味 Typescript / React / Redux / Serverless Framework 第001124号
  2. 外部製品を使わなくても、サーバー DB で十分! わざわざ外部製品を利用しなくても、サーバーで管理すれば十分! 8 ホント? 恐怖 本番開始後のセッション切断エラー スケールアウト時にセッション切断が発生! ロードバランサーの調整、キャッシュサーバーの増設、データベースサーバーの過負荷も。

    サーバー内部でのユーザー管理は、クラウドとの相性が最悪! 恐怖 漏洩時の終わらない影響調査 漏洩時の調査でパスワードの暗号化が不十分であったことが判明! 終わらない影響調査、お客様への説明行脚、海外法による莫大な賠償金の支払い命令も。 安全な機微情報の保管は、難しい! (ハッシュ化だけだと不十分)
  3. ユーザー認証の要件を定めるのは簡単! ユーザー認証の要件を定めるのなんて簡単にできる! 9 恐怖 非機能要件多すぎ問題 ユーザー管理は非機能要件が多すぎる! 見積り後に気づいたときには遅すぎる。 ユーザー管理画面、権限管理画面、各種監査レポート出力機能。 パスワードポリシー管理、パスワード変更、パスワードリセット、MFA 追加・リセット等々...。

    恐怖 関係者多すぎ問題 システム担当者とやり取りしてたら、どんどん増える関係者。 人事部 「人事システムと連携が必要です」 監査部 「監査ログの長期保管が必要です」 情シス部「パスワード数削減のため SSO 以外は認められません」 ホント?
  4. パスワード認証なんて、誰でも実装できる! ID と パスワードの確認なんて、誰でも簡単に実装できる! 10 恐怖 どんどん増える機能要求 ID と パスワードだけの認証かと思ったら、どんどん増える機能要求!

    多要素認証にリスクベース認証、端末認証まで、終わりのない認証周りの機能要求。 これが実装されないとリリース出来ません、みたいなことも。 恐怖 どんどん広がる認証の輪 サーバーのデータベースで認証すればいいと思ったら、どんどん増える SSO 要求! AD 連携? LDAP 連携? お客様の認証サーバーとの連携要求? 仕様を確認するだけでも大変な事態に。 ホント?
  5. ユーザー属性が違う IDaaS で管理したいユーザー属性でサービスを選択する。 14 従業員を管理したい カスタマーを管理したい 特権管理したい Workforce Identity and

    Access Management (IAM) Customer Identity and Access Management (CIAM) Privileged Access Management (PAM) AD 連携や、HR 連携の他、MFA や SSO などの企業利用向けの機能が豊富。 組織内部システムの認証で利用する場合は、IAM の IDaaS を利用しよう。 ソーシャルログインなどのカスタマー向け機能が豊富。 顧客向けサービスの認証で利用する場合は、CIAM の IDaaS を利用しよう。 一時認証情報の利用や、精緻なアクセスログで内部犯行を抑止するための機能が豊富。 組織内部システムや、顧客向けサービスの特権管理は、PAM を利用しよう。
  6. 認証認可が違う IDaaS で管理したい事でサービスを選択する。 15 個人を一意に特定したい 実行権限を与えたい 組織のID管理と連携したい 『認証』 (Authentication) (AuthN)

    用の規格を利用する 『認可』 (Authorization) (AuthZ) 用の規格を利用する 『認証認可』用の規格を利用する アプリ上の情報を一意にするため、個人を一意に特定したい! OpenID Connect などは、認証のための規格。 アプリからのメッセージ投稿権限を一時的に付与したり、ユーザーの DM を読み取りたい! OAuth 2.0 などは、認可のための規格。 組織が管理するユーザーと、そのユーザーに付与された権限をほかアプリで利用したい。 SAML などは、認証認可のための規格。
  7. 使う場所が違う 16 特定のユースケースに特化している製品もある。 Windows や Linux のログインがしたい Cloud のサービスと連携したい その他

    Active Directory や Azure Active Directory は Windows ログインと連携が得意。 JumpCloud などは、Linux や ネットワーク機器との連携が得意。 Cognito Identity Pool や Google Firebase Authentication は Cloud との連携が得意。 LINE ログインなど、特定のユースケースに特化した IDaaS も多くある。
  8. ここで覚えたい用語とは? 19 認証 と 認可 ってなに? 多要素認証 ってなに? IdP と

    SP ってなに? Federation ってなに? Provisioning ってなに? Policy as Code (PaC) ってなに?
  9. 認証と認可ってなに? 20 個人を特定する『認証』 (Authentication) (AuthN) 個人を一意に特定するのが認証! 現実世界で言えば、『マイナンバーカード』や『免許証』、『社員証』を提示するようなもの。 権限を付与する『認可』 (Authorization) (AuthZ)

    個人に権限を付与するのが認可! 現実世界で言えば、『自身の住民票の出力権限』や『運転の許可』、『入室許可』など。 個人 ID / PW で認証 社員証で認証 サイトへの アクセスを認可 ファイルへの アクセスを認可 機密エリアへの 入室を認可 事務手続きの 実施を認可 認証 (Authentication) 認可 (Authorization)
  10. 多要素認証ってなに? 21 『パスワード認証』は『要素』じゃない! *重要* 『要素』は『方法』じゃないよ! パスワード、スマートフォン、トークンのような『方法』は、多要素でいう『要素』じゃない! 『要素』は記憶、所有、生体 の 3要素! 多要素の要素は、記憶、所有、生体

    の 3要素しかありません! この中から 2つ以上を選択するのが多要素認証! 多要素認証 と 多段階認証 多要素認証は、要素を 2つ以上利用して認証を行うこと! 多段階認証は、パスワード確認 → MFA 確認 みたいに複数段階のこと! 良い認証は、『多要素認証 & 1段階認証』 ワンポイントアドバイス
  11. IdP と SP ってなに? 22 関係性 ユーザーを管理する IdP (Identity Provider)

    サービスを提供する SP (Service Provider) SP は実際のサービス側のこと! 一般的には、自社サービスなどが該当。 IdP は、ユーザー情報を持っている側のこと! 一般的には、Active Directory や IDaaS、SNS などのサービスが該当。 IdP や SP は情報の方向による分類。 一つのサービスが IdP と SP を兼任することもしばしば。 IdP SP IdP から SP へ情報伝達 IdP SP SP 1対多 / 多対1 の関係もある IdP SP / IdP SP 役割を兼任することも IdP (Identity Provider) SP (Service Provider)
  12. Federation ってなに? 23 Federation は連携のこと Federation は SSO (シングルサインオン) を実現する方式の一つ!

    IdP と SP が連携してユーザー保護を行うので、セキュリティ、利便性が高い。 Federation には方向がある Federation は、IdP から始める方式と、SP から始める方式があります。 どちらかにしか対応していない場合もあるので、要チェック! 関係性 IdP アプリ一覧 SP ログイン済 IdP ログイン IdP ログイン SP ログイン済 SP ログイン IdP から始める方式 SP から始める方式 IdP (Identity Provider) SP (Service Provider)
  13. Provisioning ってなに? 24 Provisioning はユーザー登録 / 削除のこと 実際の運用では、Federation だけでは不十分! Provisioning

    に対応した IDaaS を活用すると、採用・退職時の自動登録・削除が可能! SaaS のライセンス管理に Provisioning が必要 特に、ユーザーライセンス管理が必要な SaaS と連携する場合、Provisioning が必要。 必要分だけ Provisioning を行うことで、ライセンスの最適化が可能! 関係性 IDaaS ユーザー登録 SaaS ユーザー登録 HR sys 人事登録 Integration Provisioning 人事 sys 統合 自動登録
  14. Policy as Code (PaC) ってなに? 25 プログラムコードからポリシーを分離する 認証認可の実装を、プログラマの責任からセキュリティ担当者の責任へ分離する。 ポリシーの実装をコード化して、セキュリティ担当者が実装可能とする。 きめ細やかな条件管理とコンプライアンスの実現

    コンソール上で役割ベースの認証 (RBAC) や属性ベースの認証 (ABAC) などのアクセス権管理を 実施し、証跡の保存や、更新履歴の保持など、コンプライアンス管理を実現する。 関係性 PaC セキュリティ担当者 プログラマ 要件定義 コーディング プログラマ 要件定義 コーディング 認証認可 認証/認可の分離 セキュリティ担当者
  15. 組織をつなぐ SAML 認証 28 SAML 認証は、組織が管理する従業員 ID で SaaS への

    SSO を実現。 組織 - SaaS 間で信頼関係を構築することで、ユーザーを認証・認可する。 組織 IDaaS SaaS Federation 事前に信頼関係を構築 ユーザー ユーザーを署名する SaaS ログイン 組織の署名で ユーザーを認証、認可する SaaS サービス提供
  16. ソーシャルログイン OpenID Connect 29 OpenID Connect 認証は、SNS が管理する ID で

    SaaS への SSO を実現。 ソーシャルサービスの署名情報を確認することで、ユーザーを認証する。 SNS ユーザー ID Token SaaS ログイン ID Token を受け渡す SaaS サービス提供 ユーザー ID Tokenの取得 ID Token 検証 ログイン
  17. 権限を与える OAuth 30 OAuth は、アクセス権限 (認可情報) をアプリに付与することを実現。 ユーザーの代理として、ユーザーの権限を行使することが可能。 SNS ユーザー

    Access Token SaaS ログイン Access Token を受け渡す SNS サービス API ユーザー Access Tokenの取得 ログイン ユーザー権限で サービスAPI をリクエスト
  18. Identity Suite ※ で出来ること 32 ※ これらを表す一般名称は不明のため、本資料での定義。 メールアドレスで個人を一意に特定して、 組織を超えた認証や権限付与を行うことが出来る。 Identity

    Suite (Google Account / Microsoft Account / etc. ) 自組織による管理 組織外の人員に権限を付与できる 組織外のファイルに自社の認証を利用出来る
  19. 広く使われる Identity Suite ※ 33 Google Account や Microsoft Account

    は、複数の組織や個人を特定し、 Mail / カレンダー / オンライン会議などのコラボレーションに利用できます。 ※ これらを表す一般名称は不明のため、本資料での定義。 Google Account Google Account は、Gmail や Google Calendar、Google Drive、Google Meet などの Google 製品を中核としたコラボレーションで利用されるアカウント。 Microsoft Account Microsoft Account は Outlook、Teams、Windows 端末ログインなどの Microsoft 製品を中核としたコラボレーションで利用されるアカウント。
  20. Google Account とは 34 Google Account は、組織用 Google Workspace と

    個人用 Google Account で 普遍的でセキュアな認証をクラウドに提供することが可能。 Google Account 個人が管理するもの gmail.com ドメイン利用 独自ドメイン利用 組織が管理するもの Google Workspace Cloud Identity 個人が Google 製品を利用するためのアカウント。 独自ドメインを利用するが、アカウントは個人管理。 組織が Google Workspace を利用する際のアカウント。 独自ドメインを利用し、組織がアカウント管理を実施できる。 要注意
  21. Microsoft Account とは 35 Microsoft Account は、Active Directory と連携した Azure

    Active Directory や、 個人用の Outlook アドレス等でコラボレーションを提供可能。 Microsoft Account 個人用アカウント outlookドメイン利用 既存のアドレスを使用 職場または学校アカウント Azure Active Directory Microsoft が用意したドメインを利用して取得。 既存のメールアドレスを利用して取得。 組織が管理するアカウント。 インターネットで利用される。 要注意 組織ドメインで取得すると同じ名前のアカウントが生成される。 Active Directory 組織が管理するアカウント。 イントラネットのみで利用。 これは別物
  22. 汎用的な製品 38 Okta / OneLogin Okta / OneLogin は主要な IDaaS

    ソリューションの一つです。 従業員向けの IAM や、カスタマー向けの CIAM ソリューションが提供されています。 既存の Active Directory との連携や、MFA 機能など、主要な機能はどちらでも提供されています。 CyberArk CyberArk は PAM ソリューションの一つです。 Root や Administrator といった特権情報の保護や、自動的なパスワードローテーション、 リモートセッションの完全な記録などを行います。 管理者の内部不正を抑止し、管理権限の悪用からシステムを保護する機能が提供されています。
  23. AWS 39 Cognito User Pool Cognito User Pool は、主に CIAM

    として使用する IDaaS です。 ソーシャルログイン、OpenID Connect、SAML 連携など外部ID 連携が可能です。 ユーザーを一意に管理したり、MFA などの機能が提供されています。 Cognito Identity Pool Cognito Identity Pool は、Cognito User Pool などで管理されるユーザーに IAM Role を付与します。 API Gateway や S3 Bucket の利用を認証したユーザーに限定することが可能です。 Amazon Verified Permissions (AVP) Amazon Verified Permissions (AVP) は、Cognito や OIDC などと連携する承認サービスです。 Cedar 言語を用いて Policy as Code を実現し、プログラム外で認証・認可を実装できます。 役割ベース (RBAC) や属性ベース (ABAC) の認証・認可を実現できます。
  24. Google Account 40 Google Workspace Google Workspace (旧 G Suite

    ) は 組織として Gmail や Google Drive、Google Document を 利用能にするオフィススイート製品です。 従業員の Google Account として利用可能であり、組織の AD などとも連携が可能です。 Cloud Identity Cloud Identity は従業員の Google Account 管理や、エンドポイント管理 ( MDM , デバイス監査ログ) が可能な ID 管理ソリューションです。 ID 管理に特化した Free Edition と、エンドポイント管理が可能な Premium Edition があります。 SOHO 向けであれば、50 User までの Free Edition で Google Account 管理が可能です。
  25. Google Cloud 41 Firebase Authentication Firebase Authentication は mBaaS (mobile

    Backend as a Service) としての Firebase の 認証に関する機能です。 新しい Firebase Authentication は Identity Platform を利用しています。 Identity Platform Identity Platform は Google Cloud で利用可能な CIAM (顧客管理) です。 ソーシャルログインや、MFA、マルチテナンシーなど、主要な CIAM 機能を有しています。 Identity-Aware Proxy (IAP) Identity-Aware Proxy (IAP) は Google Account とアプリ / Linux などを統合するプロキシーです。 認証認可に関する機能を Google Cloud の Cloud IAM で分離し、柔軟なカスタマイズを提供します。 Web アプリに対する認証認可のほか、 SSH の認証認可に利用する事ができます。 CIAM (Customer Identity and Access Management)
  26. Microsoft 42 Active Directory Active Directory は、 Windows Server で稼働するディレクトリサービスです。

    中規模以上の組織では、IdP (ユーザー管理基盤) として AD が中核を成していることが多いです。 Active Directory と各種 IDaaS (AAD、etc. ) を統合 (Integration) する構成が一般的です。 Azure Active Directory Azure Active Directory (AAD) は、AD の Azure 拡張である IDaaS です。 Office 365 や Teams などの Microsoft 製品の他、業務アプリの連携などに利用されています。 組織が、Microsoft Account を利用する場合、AAD の構成が一般的です。
  27. IDaaS を使おう 44 餅は餅屋に ID 管理は IDaaS に IDaaS は学習が難しい

    IDaaS は利用料が高い ローカル管理で IDaaS 不要 最適な IDaaS で課題を解決 ❌ ❌ ❌
  28. ユーザー認証 x アイレット 45 それでもやっぱり難しい どの製品を選べばいいかわからない 設定や運用の相談をしたい AWS / Google

    Cloud の ログイン支援 お客様 SaaS アプリの 認証支援 IDaaS 選定の コンサル支援 アイレットにご相談ください。 お客様の ID 管理をご支援できます。