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. 第114回 雲勉【オンライン】
    何でこんなに種類があるの︖ ユーザー認証を理解する

    View full-size slide

  2. ユーザー認証サービス、多くないですか?
    世の中には、多くの ユーザー認証サービスがあります。
    どのように使い分けたら、良いのでしょうか?
    2

    View full-size slide

  3. 今日のゴール
    3
    ユーザー認証よくわからない 😢
    から ユーザー認証がちょっと分かる

    View full-size slide

  4. 自己紹介
    4
    なかむら まさと
    中村 昌登
    🐰しろうさ🐰
    ▼ 略歴
    大学 航空宇宙工学で、航空機の制御や空力を勉強
    新卒 大手企業の社内SE、セキュリティとシステムを担当
    現職 Iret で大手会社のセキュリティコンサル等を実施
    ▼ 座右の銘
    『好きこそものの上手なれ』
    ▼ 得意なこと
    ユーザー管理、セキュリティマネジメント
    ▼ 趣味
    Typescript / React / Redux / Serverless Framework
    第001124号

    View full-size slide

  5. トピック
    5
    ユーザー認証サービス 不要論
    IDaaS 製品何が違う?
    IDaaS で使用する用語を覚えよう
    ユーザー認証認可の主要な規格を覚えよう
    主要な Identity Suite を覚えよう
    主要な製品を覚えよう
    まとめ
    1.
    3.
    2.
    4.
    5.
    6.
    7.

    View full-size slide

  6. 1. ユーザー認証サービス 不要論
    6

    View full-size slide

  7. そもそも、外部のユーザー認証サービスは必要なの?
    7
    サーバー側のデータベースでユーザーを管理すれば十分では?
    ID / パスワード認証なんて開発者が実装できるのでは?
    ユーザー認証の要件を定めるのは簡単なのでは?
    高いサービス利用料や、難しい仕様を理解しなくても...

    View full-size slide

  8. 外部製品を使わなくても、サーバー DB で十分!
    わざわざ外部製品を利用しなくても、サーバーで管理すれば十分!
    8
    ホント?
    恐怖 本番開始後のセッション切断エラー
    スケールアウト時にセッション切断が発生!
    ロードバランサーの調整、キャッシュサーバーの増設、データベースサーバーの過負荷も。
    サーバー内部でのユーザー管理は、クラウドとの相性が最悪!
    恐怖 漏洩時の終わらない影響調査
    漏洩時の調査でパスワードの暗号化が不十分であったことが判明!
    終わらない影響調査、お客様への説明行脚、海外法による莫大な賠償金の支払い命令も。
    安全な機微情報の保管は、難しい! (ハッシュ化だけだと不十分)

    View full-size slide

  9. ユーザー認証の要件を定めるのは簡単!
    ユーザー認証の要件を定めるのなんて簡単にできる!
    9
    恐怖 非機能要件多すぎ問題
    ユーザー管理は非機能要件が多すぎる! 見積り後に気づいたときには遅すぎる。
    ユーザー管理画面、権限管理画面、各種監査レポート出力機能。
    パスワードポリシー管理、パスワード変更、パスワードリセット、MFA 追加・リセット等々...。
    恐怖 関係者多すぎ問題
    システム担当者とやり取りしてたら、どんどん増える関係者。
    人事部 「人事システムと連携が必要です」
    監査部 「監査ログの長期保管が必要です」
    情シス部「パスワード数削減のため SSO 以外は認められません」
    ホント?

    View full-size slide

  10. パスワード認証なんて、誰でも実装できる!
    ID と パスワードの確認なんて、誰でも簡単に実装できる!
    10
    恐怖 どんどん増える機能要求
    ID と パスワードだけの認証かと思ったら、どんどん増える機能要求!
    多要素認証にリスクベース認証、端末認証まで、終わりのない認証周りの機能要求。
    これが実装されないとリリース出来ません、みたいなことも。
    恐怖 どんどん広がる認証の輪
    サーバーのデータベースで認証すればいいと思ったら、どんどん増える SSO 要求!
    AD 連携? LDAP 連携? お客様の認証サーバーとの連携要求?
    仕様を確認するだけでも大変な事態に。
    ホント?

    View full-size slide

  11. 結論 外部ソリューションを使おう
    ユーザー管理は考えることが多すぎる!
    ラクをするために外部ソリューションを使おう
    11
    ユーザー認証は簡単に見えて難しい。
    ラクする為の IDaaS 利用を考えよう!
    Identity as a Service

    View full-size slide

  12. 2. IDaaS 製品何が違う?
    12

    View full-size slide

  13. そもそも、どうしてこんなに製品があるの?
    13

    View full-size slide

  14. ユーザー属性が違う
    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 を利用しよう。

    View full-size slide

  15. 認証認可が違う
    IDaaS で管理したい事でサービスを選択する。
    15
    個人を一意に特定したい
    実行権限を与えたい
    組織のID管理と連携したい
    『認証』 (Authentication) (AuthN) 用の規格を利用する
    『認可』 (Authorization) (AuthZ) 用の規格を利用する
    『認証認可』用の規格を利用する
    アプリ上の情報を一意にするため、個人を一意に特定したい!
    OpenID Connect などは、認証のための規格。
    アプリからのメッセージ投稿権限を一時的に付与したり、ユーザーの DM を読み取りたい!
    OAuth 2.0 などは、認可のための規格。
    組織が管理するユーザーと、そのユーザーに付与された権限をほかアプリで利用したい。
    SAML などは、認証認可のための規格。

    View full-size slide

  16. 使う場所が違う
    16
    特定のユースケースに特化している製品もある。
    Windows や Linux のログインがしたい
    Cloud のサービスと連携したい
    その他
    Active Directory や Azure Active Directory は Windows ログインと連携が得意。
    JumpCloud などは、Linux や ネットワーク機器との連携が得意。
    Cognito Identity Pool や Google Firebase Authentication は Cloud との連携が得意。
    LINE ログインなど、特定のユースケースに特化した IDaaS も多くある。

    View full-size slide

  17. 結論 目的に合わせた製品を利用しよう
    17
    ソーシャルログインを活用する際は、SNS のサービス終了時の対応の他、
    規約の変更、利用料の変更などのリスクを事前に考えて!
    ワンポイントアドバイス
    IDaaS 決める際は、
    想定する利用者、必要な情報、利用方法から
    適切な機能や方式、規格に対応したものを選択しよう

    View full-size slide

  18. 3. IDaaS で使用する用語を覚えよう
    18

    View full-size slide

  19. ここで覚えたい用語とは?
    19
    認証 と 認可 ってなに?
    多要素認証 ってなに?
    IdP と SP ってなに?
    Federation ってなに?
    Provisioning ってなに?
    Policy as Code (PaC) ってなに?

    View full-size slide

  20. 認証と認可ってなに?
    20
    個人を特定する『認証』 (Authentication) (AuthN)
    個人を一意に特定するのが認証!
    現実世界で言えば、『マイナンバーカード』や『免許証』、『社員証』を提示するようなもの。
    権限を付与する『認可』 (Authorization) (AuthZ)
    個人に権限を付与するのが認可!
    現実世界で言えば、『自身の住民票の出力権限』や『運転の許可』、『入室許可』など。
    個人
    ID / PW で認証
    社員証で認証
    サイトへの
    アクセスを認可
    ファイルへの
    アクセスを認可
    機密エリアへの
    入室を認可
    事務手続きの
    実施を認可
    認証 (Authentication) 認可 (Authorization)

    View full-size slide

  21. 多要素認証ってなに?
    21
    『パスワード認証』は『要素』じゃない!
    *重要* 『要素』は『方法』じゃないよ!
    パスワード、スマートフォン、トークンのような『方法』は、多要素でいう『要素』じゃない!
    『要素』は記憶、所有、生体 の 3要素!
    多要素の要素は、記憶、所有、生体 の 3要素しかありません!
    この中から 2つ以上を選択するのが多要素認証!
    多要素認証 と 多段階認証
    多要素認証は、要素を 2つ以上利用して認証を行うこと!
    多段階認証は、パスワード確認 → MFA 確認 みたいに複数段階のこと!
    良い認証は、『多要素認証 & 1段階認証』
    ワンポイントアドバイス

    View full-size slide

  22. 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)

    View full-size slide

  23. 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)

    View full-size slide

  24. Provisioning ってなに?
    24
    Provisioning はユーザー登録 / 削除のこと
    実際の運用では、Federation だけでは不十分!
    Provisioning に対応した IDaaS を活用すると、採用・退職時の自動登録・削除が可能!
    SaaS のライセンス管理に Provisioning が必要
    特に、ユーザーライセンス管理が必要な SaaS と連携する場合、Provisioning が必要。
    必要分だけ Provisioning を行うことで、ライセンスの最適化が可能!
    関係性
    IDaaS
    ユーザー登録
    SaaS
    ユーザー登録
    HR sys
    人事登録
    Integration Provisioning
    人事 sys 統合 自動登録

    View full-size slide

  25. Policy as Code (PaC) ってなに?
    25
    プログラムコードからポリシーを分離する
    認証認可の実装を、プログラマの責任からセキュリティ担当者の責任へ分離する。
    ポリシーの実装をコード化して、セキュリティ担当者が実装可能とする。
    きめ細やかな条件管理とコンプライアンスの実現
    コンソール上で役割ベースの認証 (RBAC) や属性ベースの認証 (ABAC) などのアクセス権管理を
    実施し、証跡の保存や、更新履歴の保持など、コンプライアンス管理を実現する。
    関係性
    PaC
    セキュリティ担当者 プログラマ
    要件定義 コーディング
    プログラマ
    要件定義 コーディング
    認証認可
    認証/認可の分離
    セキュリティ担当者

    View full-size slide

  26. 4. ユーザー認証認可の主要な規格を覚えよう
    26

    View full-size slide

  27. ここで覚えたい規格とは?
    27
    SAML 認証 ってなに?
    OpenID Connect ってなに?
    OAuth ってなに?

    View full-size slide

  28. 組織をつなぐ SAML 認証
    28
    SAML 認証は、組織が管理する従業員 ID で SaaS への SSO を実現。
    組織 - SaaS 間で信頼関係を構築することで、ユーザーを認証・認可する。
    組織
    IDaaS
    SaaS
    Federation
    事前に信頼関係を構築
    ユーザー
    ユーザーを署名する
    SaaS
    ログイン
    組織の署名で
    ユーザーを認証、認可する
    SaaS
    サービス提供

    View full-size slide

  29. ソーシャルログイン OpenID Connect
    29
    OpenID Connect 認証は、SNS が管理する ID で SaaS への SSO を実現。
    ソーシャルサービスの署名情報を確認することで、ユーザーを認証する。
    SNS
    ユーザー
    ID Token
    SaaS
    ログイン
    ID Token を受け渡す
    SaaS
    サービス提供
    ユーザー
    ID Tokenの取得
    ID Token 検証
    ログイン

    View full-size slide

  30. 権限を与える OAuth
    30
    OAuth は、アクセス権限 (認可情報) をアプリに付与することを実現。
    ユーザーの代理として、ユーザーの権限を行使することが可能。
    SNS
    ユーザー
    Access Token
    SaaS
    ログイン
    Access Token を受け渡す
    SNS
    サービス API
    ユーザー
    Access Tokenの取得
    ログイン
    ユーザー権限で
    サービスAPI をリクエスト

    View full-size slide

  31. 5. 主要な Identity Suite ※ を覚えよう
    31
    ※ これらを表す一般名称は不明のため、本資料での定義。

    View full-size slide

  32. Identity Suite ※ で出来ること
    32
    ※ これらを表す一般名称は不明のため、本資料での定義。
    メールアドレスで個人を一意に特定して、
    組織を超えた認証や権限付与を行うことが出来る。
    Identity Suite (Google Account / Microsoft Account / etc. )
    自組織による管理 組織外の人員に権限を付与できる
    組織外のファイルに自社の認証を利用出来る

    View full-size slide

  33. 広く使われる 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 製品を中核としたコラボレーションで利用されるアカウント。

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  36. 6. 主要な製品を覚えよう
    36

    View full-size slide

  37. ここで覚えたい製品とは?
    37
    汎用的 に利用できる製品
    AWS で利用できる製品
    Google Account で利用できる製品
    Google Cloud で利用できる製品
    Microsoft で利用できる製品

    View full-size slide

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

    View full-size slide

  39. 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) の認証・認可を実現できます。

    View full-size slide

  40. 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 管理が可能です。

    View full-size slide

  41. 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)

    View full-size slide

  42. 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 の構成が一般的です。

    View full-size slide

  43. 7. まとめ
    43

    View full-size slide

  44. IDaaS を使おう
    44
    餅は餅屋に ID 管理は IDaaS に
    IDaaS は学習が難しい
    IDaaS は利用料が高い
    ローカル管理で IDaaS 不要
    最適な IDaaS で課題を解決



    View full-size slide

  45. ユーザー認証 x アイレット
    45
    それでもやっぱり難しい
    どの製品を選べばいいかわからない
    設定や運用の相談をしたい
    AWS / Google Cloud の
    ログイン支援
    お客様 SaaS アプリの
    認証支援
    IDaaS 選定の
    コンサル支援
    アイレットにご相談ください。
    お客様の ID 管理をご支援できます。

    View full-size slide

  46. ご清聴
    ありがとうございました
    46

    View full-size slide