概説

Authlete とは?

Authlete は OAuth 2.0 および OpenID Connect を実装するための BaaS(Backend as a Service) ツールです。

Authlete が提供する標準実装 又は Web API を使うことで、簡単に OAuth 2.0 および OpenID Connect の機能を簡単に実現できます。

OAuth 2.0 とは?

OAuth 2.0 は、ユーザーの同意の元、サードパーティーアプリがあるサービスのユーザーデータに、アクセスすることを許可する仕組みです。このフレームワークを使うことで、ユーザーは、サードパーティーアプリに対してサービスの ID やパスワードを共有することなく、情報へのアクセスを許可できます。

主な仕様は、RFC 6749 にて定義されています。

OAuth 2.0

OpenID Connect とは?

OpenID Connect は、OAuth 2.0 の上に策定されたフレームワークであり、このフレームワークを使うことでサードパーティーアプリは、OpenID プロバイダーによって管理されているユーザのアイデンティティ情報を取得することが可能となります。

主な仕様は、OpenID Connect Core 1.0 にて定義されています。

OpenID Connect

なぜ Authlete が必要なのか?

サービスの Web API を実装する場合、サービスを提供する側は、OAuth 2.0(及び OpenID Connect)を実装すること必要となります。しかしながら、その実装には容易ではなく、多くの時間が必要です。また、個人データを管理すること自体、非常に慎重を要する作業です。限られた社内外のエンジニアのリソースを使い、これら課題を解決しつつ、競合よりも先にサービス提供することは、非常に大変です。

Authlete を使うことで、上記課題を解決できます。Authlete は多量に存在する関連仕様をすべてサポートしています。Authlete を使うことで比較的容易に、Web API を実装することが可能となります。

Authlete の仕組み

Authlete はサービスのバックエンドとして機能します。そのため、基本的に、エンドユーザーやアプリ開発者が直接 Authlete にアクセスすることはありません。OAuth 2.0 を例にとると、下図のようなアーキテクチャになります。

authlete's role in authorization

Web API の構成要素

Web API を実装する場合、4つの構成要素を念頭に置きましょう。下記の4つは、各構成要素と、それらにおける Authlete の役割を示しています。

認証(Authentication)

認証は、「誰か」に関する情報を取り扱います。 OpenID Connect は認証に関する仕様です。


Web API 実装者の役割

Web API 実装者は、エンドユーザーのアカウントを管理するとともに、各エンドユーザーを認証します。Authlete を使う場合、Authleteへ各ユーザーの一意識別子(subject)を手渡す必要があります。


Authlete の役割

Authlete はユーザーの一意識別子を受け取り、トークンやその他の情報と紐づけます。Authlete はエンドユーザーのアカウントを管理せず、また、どのようにユーザーを認証したのか、についても問いません。ID とパスワードで認証してもよいですし、指紋認証、交際認証など、好きな認証方式をお使いいただけます。

認可(Authorization)

認可 は、「誰が誰に何の権限を与えたのか」に関する情報を取り扱います。 OAuth 2.0 は、認可に関する業界標準の仕様です。


Web API 実装者の役割

Authlete へ認可サーバーおよび OpenID プロバイダーに関するメタデータを登録します。登録には、サービス管理者コンソールをご利用いただけます。


Authlete の役割

Authlete は認可のためのソリューションです! Authlete は、アクセストークン、リフレッシュトークン、認可コード、認可サーバーおよびクライアントのメタデータなどを管理します。Authlete を使う場合、これら情報を管理するためのデータベースは不要となります。

リソース管理

リソース管理は、サードパーティーアプリにアクセスさせるリソース(=データ)を扱います。


Web API 実装者の役割

リソースサーバーをホストし、サードパーティーアプリにアクセスさせるための Web API を実装します。この Web API のことを、protected resource endpoints と言います。


Authlete の役割

Authlete は、アクセストークンを発行し、管理します。加えて、アクセストークンの情報を提供する イントロスペクション API を用意しているため、クライアントアプリがリソースにアクセスした際に役立ちます。

クライアント管理

クライアント管理は、クライアントアプリを取り扱います。開発者は、アプリのメタデータを登録します。


Web API 実装者の役割

クライアントアプリの開発者を認証し、アカウントを管理する必要があります。Authlete を使う際には、各開発者の一意識別子を必要に応じて Authlete に手渡します。


Authlete の役割

Authlete は、Client ID を発行し、クライアントアプリのメタデータを管理します。管理には、開発者コンソール をお使いいただけますし、また、Authlete の Web API を使って独自のコンソール画面をお作りいただくことも可能です。

Authlete は OpenID Connect をサポートしていますが、エンドユーザーの認証自体はお客様に実装いただく必要があります。Authlete がサポートする OpenID Connect の機能を使って、OpenID Connect authentication requests のパラメーターを検証し、ID tokens を生成することができます。

Authlete は、認証と認可を分離したアーキテクチャーを採用しています。そのため、エンドユーザーの認証機能をもつ既存のシステムに対しても、Authlete を使うことで、OAuth 2.0 と OpenID Connect の機能を追加することができます。

まとめ

Authlete を使うことで、OAuth 2.0 および OpenID Connect に準拠したウェブサービスを構築できます。Authlete を試してみるには、次にクイックガイドを見てみましょう。