(以下は Scaled Access 社から公開されたホワイトペーパーの日本語訳です。原文は Scaled Access 社 Web サイトから取得可能です。)
Authlete と Scaled Access のクラウドサービスを組み合わせることで、OAuth 2.0 に準拠した高度な認可サーバーを構築しつつ、ユーザー対ユーザー、ユーザー対組織、ユーザー対アプリケーションを含むユーザー単位でのきめ細やかなアクセス制御が可能になります。
Authlete は OAuth 2.0 とOpenID Connect を実装するためのバックエンド Web API を提供する認可エンジンです。この Authlete に Scaled Access を組み合わせると、保護されたリソースに、安全かつ自律的にアクセスし、共有できるようになります。
両サービスを活用する企業は、リレーションシップ(関係性)という条件を追加し、アクセス権の提供・共有を行います。これらのリレーションシップはグラフデータベースで管理され、ユーザー管理アクセス(User- Managed Access / UMA)のポリシー条件に対応しています。
この将来性を考慮したマネージドサービスソリューションは、どのようなエコシステムにおいても、セルフサービス可能かつきめ細かなアクセス権管理を、スケーラブルに実現できるように設計されています。Authlete と Scaled Access は共に API を介して利用可能であり、また OAuth、OpenID Connect、JWTなどのオープンスタンダードに準拠しているため、統合が容易になります。
このアーキテクチャは開発者が使いやすいもので、組織はお気に入りのプログラミング言語やフレームワークを使って認可サーバーのフロントエンドを構築することができます。
多くの企業や組織は、顧客にサービスを提供し、保護されたデータ、コンテンツ、デバイス、または機能へのアクセスを管理するために、Web API インフラストラクチャに大きく依存しています。
Web API を提供するためには、認可のための業界標準である OAuth 2.0 プロトコルと、その OAuth 2.0 プロトコルの上に構築されたアイデンティティ層としての OpenID Connect を実装する必要があります。しかし、適切な仕様を実装するには多くの時間と労力が必要です。
Authlete のバックエンド Web AP Iを利用することで、企業や組織は OAuth 2.0 と OpenID Connectの機能を簡単に実装することができます。Authlete は、アクセストークンやIDトークンの発行、APIクライアントの登録と管理、オーディエンスとスコープの定義、アクセストークンの検証を行うためのさまざまなエンドポイントを実装・提供しています。
下図は、Authlete と Scaled Access を組み合わせて構築された認可サーバーの例を示しています。
Authlete は、企業や組織のウェブサービスの背後で動作するサービスとして提供されるバックエンドです。エンドユーザーや OAuth クライアント、リライイングパーティーと直接やりとりすることはありません。
Scaled Access は、認可リクエストがアクセスポリシーに合致しているかどうかを評価します。
Scaled Access は、組織のエコシステムやニーズに合わせてカスタマイズされた高度な認可機能を提供します。その認可モデルはユニークであり、リレーションシップを使用した、認可情報やアクセストークンに含めるポリシー・権限の生成が行われます。
リレーションシップ情報の活用により、組織は、チームや顧客が、知っている人や一緒に仕事をしている人を招待することを許可します。そしてその人たちに、招待者と同様の、保護されたリソースに対するアクセス権限を与えられるようになります。
また、アクセスポリシーはカスタマイズ可能であり、エコシステム内の共有(ユーザー対ユーザー、ユーザー対組織、ユーザー対アプリケーション)に伴うさまざまなタイプの同意の必須化を可能とします。
“このアーキテクチャにより、API クライアントに「スマートトークン」を提供するソリューションを構築できます。「スマートトークン」には、エンドユーザーの属性、リレーションシップ、同意を考慮したビジネスルールに沿ったスコープやカスタムクレームを含みます。結果として、アクセストークンは、シングルユーザーの ABAC (Attribute-Based Access Control) からマルチユーザーの ReBAC ベースの認可へと進化します。”
Authlete と Scaled Access は、複雑なユースケースを処理し、ユーザーとユーザーの関係に基づいて権限を付与することができる、安全な OAuth/OIDC 準拠の認可サーバーの開発を容易にします。 Sequence Diagram 以下のシーケンス図は、Authlete と Scaled Access を組み合わせた際のアーキテクチャにおける各コンポーネント間のやり取りを示しています。
シーケンスのうち、重要な部分に関して、下記に示します。
認可リクエストの処理
認可サーバーと Authlete サーバーとの間では、ticket パラメータを使用します。
まず、Authlete の /auth/authorization API は、認可リクエストに対するレスポンスとして ticket を返します。その後、/auth/authorization/issue または /auth/authorization/fail API がその ticket を受け取り、トークンやコードを発行したり、エラーを返したりするための認可リクエストを処理します。
/kb/oauth-and-openid-connect/ticket-parameter-in-authorization-endpoint
適用されるポリシーの評価とユーザー権限の決定
Scaled Access は、以下の API を提供します:
https://docs.scaledaccess.com/#relationship-based-access-control および https://docs.scaledaccess.com/#relationship-config-api
必要となるユーザー同意の確認・強制
Scaled Access は、以下の API を提供します
一連の認可プロセスに基づいてスコープと独自クレームを生成し、それらをトークンに反映
Authlete は、認可サーバーがアクセストークンに追加のプロパティを付与するための機能(extra properties)を提供しています。
認可サーバーはリソースサーバーとプロパティを容易に共有できます。そしてリソースサーバーはそのプロパティを、レスポンス内容の生成や認可強制(アクセス可否)に利用できます。プロパティの値は、クライアントからの API リクエストに含まれているアクセストークンから取得できるので、リソースサーバーはデータベースへアクセスする必要はありません。
/kb/oauth-and-openid-connect/extra-properties
トークンの発行
Authleteは、API (Application Programming Interface) セキュリティに不可欠な OAuth 2.0 と OpenID Connect を実装するためのソリューションを、クラウドおよびオンプレミスのソフトウェアサービスとして提供しています。APIは、プログラム間の通信や相互作用を円滑にし、システムの統合に寄与します。金融機関、ヘルスケア、IoT といった業界が、APIを利用して顧客や企業に価値を提供しています。
Authlete の特長のひとつは、プラットフォームがトークンを「オフサイト」に保存することです。これにより、Authlete を利用するお客さま(認可サーバー)側でのトークン管理が不要となり、メインアプリ/サーバー/データベースに脆弱性が生じた場合のリスクを軽減します。また、認証と認可が分離されているため、認可情報を匿名化でき、アイデンティティとの結びつきが非常に緩くなるため、侵害や漏洩の影響を軽減することができます。
Scaled Access を使用することで、企業は認可の仕組みをビジネスのニーズに合わせて適応させることができます。Scaled Access は、属性、コンテキスト、およびリレーションシップを使用して権限をマッピングする独自の権限モデルを展開します。
Scaled Access のクラウドベースのソリューションは、複数のシステムへの権限を単一のプラットフォームで管理し、アクセス管理プロセスを合理化して管理負担を軽減します。そのグラフデータベースは、無制限の数のユーザー、リソース、アプリケーションを管理することができます。
Scaled Access は、各アクセスリクエストを自動的に検証することでゼロトラストインフラストラクチャを実現し、CARTA にインスパイアされたアクセスコントロールと可視性を提供します。
Scaled Access はすでに世界中で2600万人の消費者に利用されており、コカコーラ、マース、ジョンソン・エンド・ジョンソン、メルク、シェルなどのグローバル企業から信頼されています。