ID管理サポートツール

【ID管理サポートツール】オープンソース認証システム「 OpenFGA 」🔐

オープンソース認証システム「OpenFGA」🔐

現代のアプリケーション開発における「アクセス制御」の重要性

現代のアプリケーション開発において、
「アクセス制御」はセキュリティの重要な側面となっています。

データセキュリティの強化

適切なアクセス制御は、機密データを保護します。
・不正アクセス
・データ漏洩
・その他のセキュリティ脅威

「許可されたユーザー」のみがデータにアクセスできるようにするため、
リスクが軽減されます。

セキュリティと整合性

アクセス制御は、
「アプリケーションのセキュリティの整合性維持」のために不可欠な要素です。

適切なアクセス制御メカニズムを実装することで、
企業は機密データを保護し、
規制に準拠し、
全体的なセキュリティ体制を強化できます。

コンプライアンスの確保

多くの業界では、
「データプライバシーやセキュリティに関する厳格な規制」が設けられています。
・GDPR
・HIPAA など

アクセス制御を実装することで、
企業はこれらの規制に準拠し、
高額な罰金や法的問題を回避できます。

業務効率の向上

アクセス制御により、
ユーザーは自分の役割と責任に基づいて、
適切なリソースにのみアクセスできます。

企業ブランディング

「堅牢なアクセス制御」を実装することで、
「ユーザー顧客との信頼」を築くことができます。

企業は、
「顧客データのプライバシーとセキュリティ」に対して
「責任ある姿勢」を示すことで、
信頼を獲得し、
評判を高めることができます。

オープンソース認証システム「OpenFGA」とは

概要

「OpenFGA」は、
スケーラブルなオープンソースの認証システムです。

「あらゆる種類のアプリケーションの認証」を実装し、
「時間の経過に伴う複雑さの増加」に応じて
「スムーズに進化」できるように
設計されています。

Googleが開発したグローバル認可システム「Google Zanzibar」に触発され、
「大規模な信頼性」と「低レイテンシー」を
実現するように設計されています。

「OpenFGA」は、
「読みやすいモデリング言語」と「使いやすいAPI」を使用して、
「きめ細かいアクセス制御」を構築できます。

オフィシャルサイト

→openfga.dev

→github.com →openfga →openfga

開発元

OpenFGAは、
「Cloud Native Computing Foundation」(CNCF)の
オープンソースプロジェクトです。

「CNCF Sandbox Project」として、
活発に開発が進められています。

→cncf.io

利用コスト

OpenFGAは、
オープンソースプロジェクトであるため、
無料で利用できます。

ただし、
OpenFGAを運用するためのインフラストラクチャや運用コストは別途発生します。

OpenFGAの「利用メリット」

「アプリケーションコード」から「認証ロジック」を分離

「アプリケーションコード」から「認証ロジック」を分離することで、
コードの「記述」「変更」「監査」が容易になります。

「単一認証ソリューションへの標準化」による開発速度向上

すべてのアプリケーションでOpenFGAを利用することで、
認証ロジックの開発が容易になり、
開発速度の向上が見込めます。

セキュリティおよびコンプライアンス要件への準拠

「認証に関する決定と監査ログ」を一元化することで、
「セキュリティおよびコンプライアンス要件への準拠」が容易になります。

認証ポリシーの進化が容易

OpenFGAは柔軟性が高いため、
アプリケーション要件が変化しても、
認証ポリシーを簡単に変更できます。

OpenFGAの「アーキテクチャ」

概要

OpenFGAは、
「ユーザーとオブジェクトの関係」に基づいて、
アクセス制御を行う認可システムです。

この関係は、
「リレーションシップタプル」と「認可モデル」の
2つの主要な要素によって定義されます。

OpenFGAは、
これらの概念を用いることで、
「柔軟かつスケーラブルなアクセス制御」を実現しています。

タイプ

「タイプ」は、
「タイプの種類」を定義します。

・ドキュメント
・ユーザー
・フォルダ など

リレーション

「リレーション」は、
「ユーザーとオブジェクトの関係の種類」を定義します。

・閲覧者
・編集者
・所有者 など

リレーションシップタプル

「リレーションシップタプル」とは、
「ユーザー」「リレーション」「オブジェクト」の関係を表す
データ構造です。

例えば、
リレーションシップタプルで、
「ユーザーAは、ドキュメントXの閲覧者である」という関係を表現できます。

認可モデル

「認可モデル」とは、
リレーションシップタプルを参照して、
「ユーザーがオブジェクトに対して特定のアクションを実行できるかどうか」を
判断するためのルールセットです。

例えば、
「認可モデル」で、
「ドキュメント所有者は、そのドキュメントの閲覧/編集/削除が可能である」
というルールを定義できます。

「従来型アクセス制御システム」の課題

課題①ルールの複雑化

従来のアクセス制御システムでは、
アプリケーションの成長に伴い、
「アクセス制御のルール」が複雑化し、
管理が困難になる傾向がありました。

課題②ハードコード

従来のアクセス制御システムでは、
「アクセス制御のルール」が、
アプリケーションコードにハードコードされている場合、
ルールの変更にアプリケーションの再デプロイが必要となり、
迅速な対応を阻害する可能性があります。

OpenFGAの「特徴」

概要

OpenFGAは、
従来のアクセス制御システムにおける
「スケーラビリティと柔軟性」に関する課題を
解決することを目指しています。

柔軟なアクセス制御

OpenFGAのリレーションシップベースのアクセス制御「ReBAC」は、
従来のロールベースアクセス制御「RBAC」よりも柔軟性が高く、
複雑なアクセス制御ルールを表現できます。

これにより、
開発者はアプリケーション要件に合わせて、
きめ細かいアクセス制御を実装できます。

また、
あらゆるパーミッションソリューションを簡単に作成できる
「ドメイン固有言語」が組み込まれています。

スケーラビリティ

OpenFGAは、
スケーラビリティを備えています。
・大規模アプリケーション
・膨大な数のユーザー
・膨大な数のリソース など

アクセス制御の集中管理

OpenFGAは、
「認可ロジック」を「アプリケーションコード」から分離し、
OpenFGAサーバに集約します。

これにより、
「アクセス制御ルールの一元管理」が可能となり、
「アプリケーションの再デプロイなし」で、
ルール変更を適用できます。

開発者の負担を軽減できます。

オープンソースモデル

OpenFGAは、
オープンソースソフトウェアであり、
誰でも自由に利用できます。

透過性とピアレビュー

OpenFGAは、
「セキュリティ」「安定性」「持続可能性」の高いソフトウェアを構築するために、
「RFCプロセス」と「ガバナンスモデル」を採用し、
誰もが貢献者となり、
公開ロードマップを共同開発できるようになっています。

活発なコミュニティ

OpenFGAは、
活発なSlackとGitHubコミュニティがあり、
誰でも参加できます。

OpenFGAの「主な機能」

「細粒度認可」(FGA:Fine-Grained Authorization)

OpenFGAを使用すると、
「特定のユーザー」に、
「特定のリソースに対する特定のアクションの実行許可」を
付与できます。

特に、
「セキュリティが重視されるアプリケーション」や
「複雑なアクセス管理が求められるシステム」において、
有効なソリューションです。

■詳細なアクセス制御
・ユーザーごとに異なるアクセス権を設定できる
・例)特定の文書やフォルダへのアクセスを個別に管理できる
・アクセス権の変更が頻繁に行われる環境に適している

■スケーラビリティ
・大規模システム(数百万のオブジェクトやユーザー)に対応可能
・迅速かつ効率的なアクセス制御

■高いパフォーマンス
・ミリ秒単位でのアクセス制御チェックが可能

「リレーションシップベースのアクセス制御」(ReBAC:Relationship-Based Access Control)

OpenFGAは、
Googleの内部認証システム「Zanzibar」に触発された
「ReBAC」に依存しています。

このアプローチでは、
「オブジェクト」「リレーション」「ユーザー」のタプルを使用して、
リレーションシップデータを格納し、
「ユーザーとオブジェクト間のマッチング」について、
リレーションに対してチェックします。

「属性ベースのアクセス制御」(ABAC:Attribute-Based Access Control)

OpenFGAは、
「ReBAC機能」に加えて、
「ABAC機能」も提供しています。

これにより、
「ユーザー」「リソース」「コンテキスト」に関する属性に基づいて、
アクセス権を定義できます。

承認モデル

OpenFGAを使用すると、
承認モデルを使用して、
承認ポリシーを定義できます。

これらのモデルは、
「ユーザーとオブジェクト間の関係」
および
「アクセス権の決定方法」を指定します。

リレーションシップタプル

リレーションシップタプルは、
OpenFGAが、
「ユーザーがリソースにアクセスできるかどうか?」を
判断します。

タプルは、
「ユーザー」「リレーション」「オブジェクト」で構成され、
「ユーザーがオブジェクトとどのように関連しているか?」を
定義します。

条件付きリレーションシップタプル

OpenFGAでは、
「特定の条件下でのみ有効なタプル」を
定義できます。

これらの条件付きタプルは、
追加のコンテキストに基づいて、
「アクセス権を動的に適用する必要がある場合」に
活用できます。

チェックリクエスト

OpenFGAの中心的な機能の1つとして、
「チェックリクエスト処理機能」があります。

チェックリクエストは、
「指定されたユーザーが、特定のオブジェクトに対して、特定の関係を持っているかどうか?」を
OpenFGAに照会します。

オブジェクトリストのリクエスト

この機能により、
「ユーザーがアクセスできるオブジェクト」を
検索できます。

ユーザーリストのリクエスト

この機能により、
「オブジェクトとの特定の関係を持つすべてのユーザー」を
取得できます。

共同作業「モジュラーモデル」

モジュラーモデルにより、
複数のチームが「単一のOpenFGAモデル」で
簡単に共同作業できます。

タイプバウンドパブリックアクセス

開発者は、
「特定タイプのすべてのオブジェクトへのアクセス」を
簡単に許可できます。

SDK統合

OpenFGAは、
さまざまなプログラミング言語用のSDKを提供しており、
アプリケーションへの統合を簡素化します。

・Node.js
・Go
・.NET
・Python
・Java
・curl
・擬似コード など

CLI

OpenFGAには、
「コマンドラインインターフェイス」(CLI:Command Line Interface)が
用意されています。

ユーザーは、
コマンドラインからOpenFGAと対話できます。

「Visual Studio Code」拡張機能

この拡張機能により、
OpenFGAモデル構文の「強調表示」と「検証」が可能になります。

オープンテレメトリAPI

OpenFGAは、
「メトリクス」「トレース」「ロギング」を提供するために、
「オープンテレメトリAPI機能」を追加する予定としています。

これらの機能により、
OpenFGAは、
「堅牢」「スケーラブル」「柔軟」な認証システムを
必要とする開発者にとって
強力なツールとなります。

OpenFGAの「セットアップ方法」

オフィシャルサイトでは、
・OpenFGAサーバのセットアップ方法
・Dockerを使用するセットアップ方法
・Kubernetesを使用するセットアップ方法
を参照できます。

→openfga.dev →docs →getting-started →setup-openfga →overview

【ご紹介】クラウドID管理サービス「Keyspider」

Keyspiderの「概要」

「Keyspider」は、
クラウドベースのID管理サービスを提供する
プラットフォームです。

現代のビジネス環境において、
効率的で安全なID管理は非常に重要です。

Keyspiderは、
企業のセキュリティニーズを満たすために設計されており、
信頼性の高いソリューションを提供します。

Keyspiderの「特徴」

クラウドID管理

・クラウドサービスにアクセスするためのIDを統合管理

ユーザーフレンドリーなインターフェース

・使いやすいデザイン
・直感的な操作性
・管理者の負担軽減

高度なセキュリティ機能

・最新の暗号化技術を使用
・データ保護
・不正アクセスから守る

シームレスな統合

・既存システムと簡単に統合できる
・導入がスムーズに進む

スケーラビリティ

・あらゆる規模に対応できる柔軟なシステム
・小規模から大規模な組織までサポート

コスト効率

・低コストで高機能なサービスを提供
・運用コストを削減
・企業のIT予算を最適化

Keyspiderを「選ぶ理由」

Keyspiderは、
「豊富な機能」と「高い信頼性」により、
多くの日本企業に導入されています。

特に、
「セキュリティ」と「効率性」を重視する企業にとって、
最適な選択となりえます。

Keyspiderの詳細情報は、
下記のリンクからご確認ください。

→keyspider.co.jp