この記事では、IAM (Identity and Access Management) について理解します。

この記事では、IAM (Identity and Access Management) について理解します。

新会社に入社する際、リーダーから「改訂後のリソース管理にはIAMを使ってほしい」と言われました。IAMとは何ですか? 無知でごめんなさい。後で関連情報を調べて知りました。

  • IAM は単なる製品ではなく、ほとんどの製品 (特に B サイド製品とクラウド製品) に共通の基本機能です。
  • IAM を理解すると、アカウント システムと権限システムの設計がより快適になります。

1シーン

IAM とは何かを紹介する前に、これらのシナリオに遭遇したかどうかを思い出してください。

1.1 従業員/ユーザーとして: 複数のアカウント パスワードのセット、登録とログインの繰り返し

  • アカウントのパスワードの複数のセット: CRM では Lao Yang/パスワード 1234、OA では Xiao Yang/パスワード 9527 です。アカウントが多すぎるため、アカウント番号とパスワードを忘れたり、同じまたは単純なパスワードを設定したりすることがよくあります。
  • 登録とログインの繰り返し: 異なるシステム/アプリにログインしたり、登録と承認申請を繰り返したりするには、アカウントとパスワードを繰り返し入力する必要があります。

1.2 企業管理者として: 従業員の権限を管理し、従業員の行動を適切に追跡できない

  • 従業員のアカウント/権限の管理は時間と手間がかかります。社内のさまざまなシステムで従業員のアカウント/権限を統一的に管理することは不可能であり、その結果、従業員がアカウントを欠いたり、アカウント/権限を持ちすぎたりすることになります。従業員は手動で従業員を開く/撤回する必要があります。入社・異動・退職時のアカウント。
  • 従業員の行動を追跡できない: 従業員の活動は企業内のさまざまなシステムに分散しているため、従業員の行動追跡をタイムリーに検出してカウントし、危険な行動を防ぐことができません。

1.3 開発者として: ユーザー データにアクセスし、車輪の再発明を繰り返すのは困難です

  • 車輪の再発明を繰り返す: アカウント システム、登録とログイン、サードパーティのログイン、ユーザーに依存しないサービスなどの通常の基本機能は、繰り返し開発する必要があります。
  • ユーザー データの接続が難しい: 企業内であっても、異なるシステム間でのアカウント システムの設計と性能に一貫性がない傾向があり、システム間でユーザー データを接続することが困難になります。

1.4 IAM ソリューション

IAM は上記の問題を非常にうまく解決できます。例:

  1. Lao Wang さんは新しい会社に入社し、会社の WeChat で QR コードをスキャンして会社に参加し、関連情報を入力してバックエンド グループに加わりました。
  2. Lao Wang はコンピュータの電源を入れ、アプリケーション ポータルのアドレスを入力し、アカウントとパスワードを使用してログインするか、QR コードをスキャンします。ワークベンチでは、Alibaba Cloud、Enterprise WeChat、Gitlab、Zentao、OA、およびその他のアプリケーションが表示されます。彼は毎日使う必要があります。
  3. アプリケーションのアイコンをクリックすると、アプリケーションに自動的にログインし、自動で許可された機能を使用できます。
  4. マネージャーは、管理バックグラウンドで従業員のログイン ステータスと使用状況をカウントできます。

2 IAM 定義 (アイデンティティおよびアクセス管理): アイデンティティおよびアクセス管理

IAMとはIdentity and Access Managementの略で、アイデンティティとアクセス管理、あるいはアイデンティティ管理とアクセス制御のことです。

2.1 目標: 適切な人や物に、適切なリソースにアクセスするための適切な権限を与えます。

IAM は主に 1 つの目的を達成することを目的としています。それは、適切な人または物が適切な権限を持ち、適切なリソースにアクセスできるようにすることです。このうち「人や物」をサブジェクト、「資源」をオブジェクトと呼びます。

2.2 構成: 4A または 5A

2.2.1 アカウント(アカウント)

アカウントはシステム内のユーザーのデジタル キャリアであり、ユーザーを識別し、保護されたリソースにアクセスするために使用されます。一般に、各システムにはアカウントがあり、異なるシステムのアカウント データ構造は異なります。

①問題: ID ソース、上流アカウント同期、統合 ID ソース、下流アカウント同期
  1. どのアカウント/フィールドがユーザーを表しますか? これらのアカウントはどこに散らばっているのでしょうか? (アイデンティティソース)
  2. これらのアカウントを取得するには (IAM) どうすればよいですか? (上流アカウントの同期)
  3. 私 (IAM) はこれらのアカウント データをどのように関連付け、マップし、使用しますか? (統合アイデンティティソース)
  4. これらのアカウントが必要なシステムはどれですか? 彼らに私のアカウントを与えるにはどうすればよいですか? (ダウンストリームアカウントの同期)
②含まれるもの:サブモジュールとプロトコル

アカウント モジュールには通常、次のサブモジュールとプロトコルが含まれます。

1 サブモジュール: アカウントとユーザー グループの管理、アカウントのライフサイクル管理、アイデンティティ ソースの統合と同期
  • アカウント管理: アカウントの追加、削除、変更、確認、有効化および無効化、パスワードのリセット、アカウントのロック解除などが含まれます。
  • 組織/ユーザーグループ管理: ユーザーと権限を関連付け、権限を割り当てる操作を軽減するために使用されます。
  • アカウントのライフサイクル管理: 入社、昇進、異動、退職など、従業員のライフサイクル全体を管理します。
  • ID ソース統合同期: 上流アプリケーションからアカウント データを取得し、アカウントとフィールドを関連付け、マッピング、変換し、ユーザーの唯一の標準データとして下流アプリケーションに同期します。
2 プロトコル: AD/LDAP (軽量ディレクトリ アクセス プロトコル)、SCIM (クロスドメイン ID 管理)
  • AD/LDAP: LDAP (Lightweight Directory Access Protocol) は、ツリー ディレクトリ情報を維持し、アクセス制御を提供するために使用されるプロトコルです。一般に、AD/LDAP とは、Windows AD と Linux を指します。OpenLDAP は、内部でよく使用されるツリー状のデータベースです。企業はユーザーデータとユーザー認証を管理します。
  • SCIM: SCIM (クロスドメイン ID 管理システム) は、ID データの同期と管理を簡素化するプロトコルであり、パブリック クラウド アプリケーションで一般的に使用されます。
③三世帯モデル:顧客、ユーザー、アカウント

個人的には、Account は「口座番号」だと考えています。この記事では、「アカウント」は三世帯モデルにおける「ユーザー」を指し、「ユーザー」は三世帯モデルにおける「顧客」を指します。

参考までに「三世帯」の定義は以下の通りです。

1人の顧客

自然人または法人を指します。法人は一般に法人顧客と呼ばれます。一般のお客様とは、特に断りのない限り、個人のお客様を指します。このオブジェクトのビジネス主キーは文書番号 (ID カードなど) です。

2 ユーザー

登録を通じてシステムにアクセスし、システムが提供するサービスを利用するエンティティを指します。ログイン アカウントとも呼ばれます。つまり、ユーザーが認証情報と個人情報をシステムにログインすることを指します。同様に、法人の顧客がシステムに登録されると、その顧客は販売者と呼ばれます。

3アカウント

これは特に支払いアカウントを指し、ユーザーが支払いシステムでの取引に使用する資金の所有権の証明書を指します。

顧客はソーシャル領域の情報を反映し、ユーザーはビジネス領域の情報を反映し、アカウントは財務領域の情報を反映します。

2.2.2 認証

広義の認証とは信用保証の一種であり、第三者の公証機関が組織・個人の身元、能力、資格などを認定することを指します。

  • 狭義の認証とは、「本人であること」を証明することを指します。IAM における認証とは、サブジェクトがリソースへのアクセスに適用される場合によく見られる、狭義の認証を指します。
1 認証シナリオ: ログイン時の SSO、他のアプリケーションへのジャンプ、機密リソースへのアクセス時の二次認証

IAM には 3 つの主要なシナリオがあります。

  1. 認証されていないサブジェクトには認証が必要 - ログイン
  2. 認証対象が他のアプリケーションにジャンプするときの自動認証 - SSO、シングル サインオン
  3. 認証されたサブジェクトは、機密リソースにアクセスするときに二次認証を必要とします - MFA、多要素認証
2 認証方法: パスワード、確認コード

認証方法は主体が「私が私であること」を証明する手段であり、認証方法には大きく「私が知っていること、私が持っているもの、私が何であるか」の3つに分類されます。
(1) 既知: パスワードや秘密の質問など、対象者が知っている情報。
(2) すべて: SMS 検証コード、デジタル証明書、OTP など、主体が所有するアイテム。
(3) 内容:顔、指紋、署名など、対象者が持つ生物学的特徴。

認証方法は MFA と密接に関係しており、MFA (Multi-Factor Authentication、多要素認証) とは、アカウントのセキュリティを向上させるために本人確認に 3 つ以上の認証を使用することを指します。

3 認証プロトコル/スキーム: Cookie、JWT、SAML など。

認証プロトコルは主に、ユーザー、ビジネス システム、および ID 認証サービスの間でユーザー情報を転送するために使用され、ビジネス システムに「このユーザーが誰であるか」を伝えます。

主流の認証プロトコル/シングル サインオン ソリューションには、Cookie、JWT、SAML、CAS、OIDC などが含まれます。インターネット上には多くの情報があるため、ここでは詳しく説明しません。

認証プロトコルは通常、シングル サインオンと密接に関連しています。シングル サインオン (SSO) とは、複数のアプリケーション システムにおいて、ユーザーが一度ログインするだけで、相互に信頼されているすべてのアプリケーション システムにアクセスできることを意味します。

4つの認証源

認証元とは、ユーザーが現在のシステムにログインするときに第三者が提供する認証サービスを指し、システムは第三者の認証結果を信頼します。たとえば、WeChat を使用して APP にログインすると、認証ソースとして WeChat が使用されます。

IAM は通常、シナリオに基づいて、AD/LDAP、Enterprise WeChat/DingTalk、OA などのさまざまな認証ソース ソリューションを提供します。

2.2.3 認可

認可とは、ユーザーまたは組織に代わって権限を行使する権限を譲渡し、ユーザーまたは組織がリソースにアクセスできるようにすることです。

1 認可スコープ (例として RBAC モデルを取り上げます。認可には実際に 3 つのことが必要です:)
  • 操作とオブジェクト (リソースとも呼ばれます) は、操作 (OPS、Operations) とオブジェクト (OBS、Objects) を含む、権限、つまり図内の権限 (PRMS、Pemission) としてパッケージ化されます。
  • サブジェクトに権限を割り当てます (狭い権限)。図では、権限の割り当てとユーザーの割り当てです。
  • サブジェクトがリソースにアクセスすると、認証されてユーザーの ID が特定され、権限が決定されます。
    ここに画像の説明を挿入します
2 権限の分類: アプリケーション、ページ、操作、データ権限

権限は実際には操作とオブジェクトをパッケージ化します。さまざまなシナリオや要件に応じて、さまざまなソリューションがあります。
個人の習慣により権限が次の 4 種類に分類され、制御の強度と粒度が徐々に増加します。

  • アプリケーションのアクセス許可: サブジェクトがアプリケーションにアクセスできるかどうかを制御します。アクセス許可を使用すると、アプリケーションのすべてのコンテンツにアクセスできます。これは、最も粗いアクセス制御です。
  • ページ権限: ページ、メニュー、ボタンなどを含むページレベルの要素を表示するかどうかを制御します。通常、適切なページ権限は企業内のほとんどのニーズを満たすことができます。
  • 操作許可: サブジェクトが追加、変更、削除などの特定の操作を実行できるかどうかを制御します。これは通常、インターフェイスに対応し、サブジェクトがインターフェイスを要求したときに判断されます。ページ権限と操作権限を総称して機能権限ともいいます。
  • データ権限: データのクエリと表示を制御します。行権限や列権限など、サブジェクトごとに異なるデータが表示されます。機能権限が「できるかどうか」を制御する場合、データ権限は「どれだけ持つか」を制御します。
3 権限モデル: ACL、MAC、RBAC、ABAC

認可に関して最も話題になるのは、許可モデルです。ただし、パーミッションモデルはパーミッションを割り当てるためのアイデアと解決策にすぎず、「特定のパーミッションを特定のサブジェクトにどのように割り当てるか」という問題を解決するものであり、「認可」のすべてではないことに注意してください。

使用する具体的な権限モデルは、シナリオとニーズに基づいて決定する必要がありますが、権限モデルに固執して実際のビジネスを無視しないでください。

以下に、いくつかの一般的な権限モデルを紹介します。

  • ACL (アクセス制御リスト) は、サブジェクト (ユーザーまたはユーザー グループ) と権限 (操作やリソースを含む) をリストに直接関連付けることによって、サブジェクトがアクセスできるリソースを制御します。
  • DAC (Discretionary Access Control、随意アクセス制御) は、ACL または ACM によって実装できますが、その特徴は、オペレーティング システムで一般的な、権限を持つサブジェクトが他のサブジェクトに権限を付与または取り消すことができることです。
  • MAC (Mandatory Access Control) は、主体とオブジェクトにセキュリティ (機密レベル) をマークすることによって、主体がそのオブジェクトに対して関連する操作を実行できるかどうかを決定するもので、軍事産業では一般的です。
  • RBAC (Role Based Access Control) は、「ロール」の概念を導入することでサブジェクトとアクセス許可の関係を切り離し、一般的で成熟した効果的なアクセス許可モデルです。
  • ABAC (Attribute Based Access Control) は、属性または属性のグループが特定の条件を満たすかどうかを動的に計算して認可判定を行うもので、パブリック クラウドでよく使用され、シナリオに応じてさまざまな形式があります。
4 認証

IAM の「認可モジュール」には、「割り当て」(認可とも呼ばれる)に相当する「認証」部分も含まれています。

認証とは、主体がオブジェクトにアクセスする権限を持っているかどうかを確認することであり、完全な認証には身元認証と権限の決定が含まれます。

多くの場合、本人認証を完了することで認証が完了しますが、この部分は「認証」モジュールに属します(認証とは英語で認証の意味もあります)。

ただし、ABAC やゼロ トラストを使用する場合など、より複雑なシナリオでは、サブジェクトがリソースにアクセスするときに、意思決定ポイント PDP が属性またはポリシー ルールに基づいてサブジェクトに十分なアクセス許可があるかどうかを動的に計算し、それに基づいてアクセスを解放またはインターセプトする必要があります。計算結果 このセクションも認証に属します。
ここに画像の説明を挿入します

2.2.4 アプリケーション
  • 狭義のアプリケーションとは、IAMにおける業務システムのマッピング、つまりAPP IDとAPP Secretのことです。
  • 大まかに言うと、アプリケーションは対話型のオブジェクトであり、前述のアカウント、認証、認可を実行するものであり、通常はオブジェクトとして使用されます。
1 事前に統合されたアプリケーション

アプリケーション間の仕様やプロトコルの違いにより、IAM は一部のアプリケーションを事前に統合し、アカウント、認証、認可、その他のモジュールを事前に接続して、顧客がすぐに使用できるようにすることがよくあります。

一般ユーザー向けに、IAM は企業内で権限を持つすべてのアプリケーションを表示する統合アプリケーション ポータル (ダッシュボード) を提供します。また、ユーザーの日常使用を容易にするために独自のアプリケーションを手動で追加することもできます。
ここに画像の説明を挿入します

2.2.5 監査: ユーザーの操作を記録し、操作に応じてログを分割します。

監査ログには、件名、操作、オブジェクト、タイプ、時間、場所、結果などを含むすべてのユーザー操作を記録する必要があります。

さまざまな次元に従って、操作ログとログイン/ログアウトログ、ユーザーログと管理者ログ、ビジネスシステムログとIAMシステムログなどのさまざまな操作ログに分類できます。

監査関連機能は規模や業種に応じて求められるものが異なりますが、一般に海外では国内に比べて監査が厳しく、コンプライアンスを重視しています。

2.3 分類

①EIAM:従業員のアイデンティティとアクセス管理(企業内IAM)

EIAMとは、Employee Identity and Access Managementの略で、企業内の従業員を管理するIAMを指し、主に従業員の利用の利便性や企業経営のセキュリティに関する課題を解決します。

EIAMの製品形態には次のような特徴があります。

  • エンタープライズ クラウド アプリケーションとローカル アプリケーションを統合する必要がある
  • さまざまなアイデンティティ ソースを統合する必要がある
  • SSO と MFA が一般的に使用されます
  • 企業ごとに必要なアクセス制御レベルも異なります
②CIAM:Customer Identity and Access Management(ユーザーのIAM)

CIAMとはCustomer Identity and Access Managementの略で、企業の外部顧客・ユーザーを管理するIAMを指し、主にユーザーデータの連携や開発コスト、標準化に関する課題を解決します。

CIAM の製品形態には次のような特徴があります。

  • ユーザー側でよく見られるのは、シングル サインオンと許可されたログインです。
  • 開発者が直接使用できる共通コンポーネントを提供する
  • 高性能と高可用性をより重視
③クラウドベンダーIAM(RAM:Resource and Access Managementとも呼ばれる)

クラウド ベンダーの IAM は、RAM (Resource and Access Management) とも呼ばれ、企業のクラウド リソースを管理する IAM を指し、主にクラウド リソースのアクセス制御を管理するために使用されます。

クラウドベンダーのIAMは製品形態としては以下のような特徴を持っています。

  • 認可の柔軟性と企業管理のセキュリティを重視
  • 認証または呼び出し用に複数のタイプのアカウントをサポート
  • 通常、彼らは独自のクラウド リソースの管理のみに重点を置いています。

2.4 オープンソース IAM の推奨事項

2.4.1 オープンアイデンティティプラットフォーム

Open Identity Platform は、エンタープライズ IAM ソリューションの完全なエコシステムです。

プロジェクトはいくつかのサブプロジェクトで構成されています。

OpenAM: オープンアクセス管理

OpenDJ: Java テクノロジーに基づく LDAPv3 互換ディレクトリ

OpenIG: アイデンティティ ゲートウェイを開きます。セッション管理用に設計されたプロキシ サーバー

OpenIDM: これは、Libre のオープン ID およびアクセス管理ソリューションです。

Open ICF; Open Identity Connector Framework: ID 管理と監査/セキュリティ管理の間の橋渡しとして機能するコネクタ フレームワーク ソリューションです。

Open Identity Platform のすべてのプロジェクトは、GitHub 上のオープンソース ライセンスに基づいてリリースされます。

2.4.2 キークローク

Keycloak は、Red Hat がスポンサーとなっている ID およびアクセス管理 (IDM) ソリューションです。これは、エンタープライズ レベルのアプリケーションに対応できる機能が豊富なプロジェクトです。

Keycloakは、SSO「シングル・サインオン」、OpenID Connect、OAuth 2.0、SAML 2.0、ソーシャル・メディア・ログインおよびその他のプロトコルをサポートし、LDAPおよびActive Directoryをサポートします。カスタム パスワード ポリシーもサポートします。

Keycloakは、経験豊富な開発者の助けを借りて新しいカスタム機能を追加するように設計されています。

Keycloak は、非常に優れた拡張性を備えているため、複数の Web アプリケーションとモバイル アプリケーションの ID、ユーザー権限、ポリシーを同時に管理するための最適なソリューションです。

2.4.3 Apache の失神

Apache Syncope は、企業のデジタル ID を管理するためのクロスプラットフォーム ソリューションです。Java で開発され、Apache 2.0 ライセンスに基づいてリリースされました。

Apache Syncope は、プロビジョニング、監査、レポート、管理、ポリシー管理、パスワード管理、パスワード ポリシー管理などの ID 管理プロセスを完全に制御し、豊富な REST API も提供します。

2.4.4 フュージョン認証

FusionAuth は、複数の監査、レポート、構成ツールを含む、認証、認可、ユーザー管理を提供する完全なマルチプラットフォーム IAM ソリューションです。

FusionAuth は、無料でダウンロード、インストール、使用できるオープン ソース プロジェクトです。協力的なコミュニティがあり、開発者と企業ユーザーの数は着実に増加しています。

FusionAuth は、Linux、macOS、Windows、または Docker へのインストールをサポートしています。

FusionAuth は、より多くのエンタープライズ機能を含むエンタープライズ バージョンの商用サポート プランを提供します。FusionAuth Company は、FusionAuth Cloud で月額 75 ドルからのクラウド ホスティング プランも提供しています。

FusionAuth は現在も脅威検出などの機能を毎日更新しています。

2.4.5 Aerobase IAM サーバー

IAM ソリューションとしての Aerobase は、基本的に Keycloak やその他のオープンソース プロジェクトからフォークされたものですが、さらに多くの機能が追加されています。新しい IAM フレームワークを構築して、マイクロサービスをサポートし、アクセス制御機能とプライバシー ガバナンスを拡張します。

Aerobase Server の機能リストには、シングル サインオン (SSO)、ソーシャル ログイン、2 要素認証、LDAP および Active Directory のサポート、カスタマイズ可能なユーザー インターフェイス、ID/アクセス管理、ID ブローカリングが含まれます。

OpenID Connect、OAuth2.0、SAML 2もサポートされています。

2.4.6 ミッドポイント進化

MidPoint Evolveum は、ID およびアクセス管理のための完全なオープンソース エコシステムであり、この推奨リストで最も GDPR に準拠したソリューションです。

このリストにあるほとんどのソリューションと同様の機能に加えて、midPoint Evolveum はデータ処理、監査に重点を置き、すぐに使用できるデータ修正および消去のオプションを提供します。

2.4.7 OpenIAM

OpenIAM は、オープンソースのエンタープライズ IAM ソリューションであり、コミュニティ エディションとエンタープライズ エディションで利用でき、専門的な商用サポートが提供されます。

OpenIAM は、アイデンティティ管理、アプリケーション、SSO (シングル サインオン)、デスクトップ SSO、API 統合制御のための強力な Web アクセス制御を提供します。二要素/多要素認証とロールベースのアクセス制御管理。

OpenIAM は、SSH キー管理、セッション管理、パスワードボールト、特権アカウントセキュリティなどの追加機能に加え、医療、金融、教育、保険用のカスタム拡張機能も提供します。

OpenIAM は、Microsoft Office 365、G Suite、ServiceNow、Salesforce とシームレスに統合できます。

OpenIAM は無料のプロジェクトですが、コミュニティ バージョンをダウンロードするには登録が必要です。

2.4.8 接着剤

Gluu は、スケーラブルなセルフホスト型 IAM ソリューションを提供します。同社の製品には次のものがあります。

Gluu Server、IAM ソリューション

Gluu Gateway (API および Web サイト用の認証および認可ソリューション)

Gluu Casa、Super Gluu (モバイル アプリケーション用に構築された IAM システム)

oxd (OAuth と OpenID を使用してアプリケーションを保護するクライアント アプリケーション)

Gluu は、そのスケーラビリティとクラスタリング機能により、数十の Web アプリケーションやモバイル アプリケーション向けにカスタマイズされています。

oxTrust は、認証、認可、ユーザーを管理するための Gluu の Web アプリケーションです。

Super Gluu 2FA は、バックエンドに Gluu サーバーを備えたモバイル ユーザー向けのモバイル認証システムです。Android および iOS デバイスで利用できます。

2.4.9 オリー

ORY は、オープンソースの ID および認証管理システムの開発に注力している会社で、以下の製品が含まれます。

ORY/Kratos をご覧ください: ユーザーおよび ID 管理ソリューション。

Hydra: OAuth 2.0 および OpenID 認定 OpenID Connect サーバー。アプリケーションと API への安全なアクセス。

Oathkeeper: ID およびアクセス プロキシ (IAP)。

Keto: アクセス制御および権利管理サーバー。

ORY: オープンソース ソリューションとしてリリースされ、統合が容易で、複数の言語をサポートしています。Go 言語で書かれているため、最適なパフォーマンスが保証され、Web アプリケーションやモバイル アプリケーションと簡単に統合できます。

Ory は、サポート (サービス料金) 付きのエンタープライズ ライセンスを提供します。

2.4.10 ソフィド

Soffid は、アクセス管理 (AM)、アイデンティティ ガバナンス (IGA)、アイデンティティ リスクとコンプライアンス (IRC)、および特権アカウント管理 (PAM) を 1 つの包括的なプラットフォームに統合する統合 IAM プラットフォームです。

Soffid は、ビジネスとともに成長する完全なソリューションです。企業は、最も単純なアクセス管理 (AM) 機能とシングル サインオン (SSO) 機能から始めて、ニーズが成熟するにつれて IAM 環境を拡張できます。

おすすめ

転載: blog.csdn.net/weixin_45565886/article/details/133652646