9月15日、「認証が難しい理由 (原題: Why Authorization is Hard)」が公開された。
この記事では、今は何が認証を難しくしているのか、それを解決するためのいくつかのアプローチ、そして関連するトレードオフについて、Osoの共同設立者・CTOであるSam Scottが説明している。
スクリーンショット: Why Authorization is Hard
目次
- 認証の3つの要素
- エンフォースメント
- ディシジョン
- モデリング
- エンフォースメントが難しい理由
- なぜエンフォースメントを独自のコンセプトにするのか
- エンフォースメントでは、懸念事項を切り離すことが特に難しい
- Osoでのエンフォースメント
- ディシジョン・アーキテクチャが難しい理由
- ディシジョンを構成する要素
- アーキテクチャの選択肢は
- ディシジョン・アーキテクチャの選択肢
- Osoでのディシジョン・アーキテクチャ
- モデリング
- モデリングとは
- モデリングで大変なことは
- Osoでのモデリング
- まとめ
今では、Airbnb、Carta、Slack、Intuitなどが、自分たちが構築した社内の認証システムについてブログ記事を書いている。
Sam Scottは、今がいい機会だとして「認証で最も難しい3つの問題」について説明している。
それが、以下の3つである。
- エンフォースメント: 認証を実施することは、非常に多くの場所で行われる必要があるため困難である。
コントローラー、データベースマッパー、ルーター、ユーザーインターフェースなど、すべての場所で認可を実施する必要がある。 - ディシジョン・アーキテクチャ: アプリケーションから認証を分離したいが、認証データの多くはアプリケーションデータでもあるため難しい。
多くの既存のソリューションは、分離することに重点を置いているが、それを調整し、すべてを同期させることも困難である。 - モデリング: シンプルに始めて、必要に応じて複雑にしていくのは難しい。また、簡単に始められる強力なものを作るのも難しい。
利用可能なオプションは、一般的にどちらかに偏っている。
これらは難しい問題ではあるが、"解決済みの問題ではないか?" から "解決するための最良の方法は何か?"へと変化したことは素晴らしいことだと述べている。