クイックスタート

Authlete を用いて「OAuth 2.0 認可フロー」を試してみましょう。

1. アカウントを作成しましょう。

サインアップページに必要事項を入力し「登録」をクリックします。

2. メールを確認します。

登録完了後に届くメールに、認可フローを試すための手順が書いてあります。
💡 登録完了後、すぐに OAuth 2.0 のフローを試せるよう、以下の設定がすでに完了しています。
  • Authlete サービスインスタンス
  • デフォルトの OAuth 2.0 認可エンドポイント
  • クライアントアプリのサンプル設定

3. 「認可エンドポイント」ボタンをクリックします。

認証・認可を行うためのログインページに遷移します。

💡 「認可エンドポイント」ボタンをクリックすると、Authlete のデフォルト認可エンドポイントに認可リクエスト(インプリシットグラントフロー)を行います。実際には以下の URL です。

https://api.authlete.com/api/auth/authorization/direct/<SERVICE_API_KEY>?response_type=token&client_id=<SAMPLE_APP_CLIENT_ID>

4. ログイン情報を入力します

Authlete サービスインスタンスの API キーと API シークレットを用います。
💡 動作確認用に、デフォルト認可エンドポイントは API キーと API シークレットを用いてユーザーを認証します。

5. 「認可」ボタンをクリックします

ブラウザはクライアントのリダイレクションエンドポイントに遷移します。 発行されたアクセストークンが表示されます。

また、遷移後の URL のフラグメント部にアクセストークンが含まれています。

https://api.authlete.com/api/mock/redirection/<SERVICE_API_KEY>#access_token=SNqzo...&token_type=Bearer&expires_in=86400&scope=

おめでとうございます! Authlete を使ったアクセストークンの発行ができました!

認可コードグラントフローを試す

上記(インプリシットグラントフロー)に続き、認可コードグラントフローを試してみましょう。

1. Web ブラウザーに以下の URL(認可リクエスト)を入力・送信してください。

https://api.authlete.com/api/auth/authorization/direct/<SERVICE_API_KEY>?response_type=code&client_id=<SAMPLE_APP_CLIENT_ID>

response_type=code である以外は先の認可リクエストと同一です。 <SERVICE_API_KEY> / <SAMPLE_APP_CLIENT_ID> は適宜修正してください。

2. さきほどと同じログインページに遷移します。API キーと API シークレットを入力してください。

3. トークンリクエスト送信ページに遷移します。 client_id フィールドに SAMPLE_APP_CLIENT_ID の値を入力し、Submit ボタンをクリックしてください。

4. トークンレスポンス(JSON 形式)の内容が表示されます。 "access_token""refresh_token" のそれぞれに値が入っていることを確認してください。

認可サーバーを実装する

ここまでのセクションでは、Authlete のデフォルトの認可エンドポイント実装を用いて認可フローを試しました。 実環境での Authlete の活用にあたっては、さまざまな方法で、Authlete の Web API を使った認可サーバーを実装することが可能です。

java-oauth-server はオープンソースの認可サーバーであり、Authlete の Web API を使って実装されています。この、Java を使った参照実装は、独自の認可サーバーを構築する際の参考となるものです。

同参照実装は Authlete をバックエンドとして用いています。それにより、認可データ(アクセストークンなど)や認可サーバー設定、そして認可サーバーと連携するクライアントアプリケーションの情報などを管理するためのデータベースを、認可サーバー側にセットアップする手間を省いています。

その結果、下記のいくつかのコマンドだけで、認可サーバー(java-oauth-server)のダウンロードから実行までが完了します。

詳細は java-oauth-server のドキュメントをご参照ください。

$ git clone https://github.com/authlete/java-oauth-server.git
$ cd java-oauth-server
$ vi authlete.properties
(Authlete サービスインスタンスの API キーとシークレットを記述)
$ mvn jetty:run

詳細は spring-oauth-server のドキュメントをご参照ください。

$ git clone https://github.com/authlete/spring-oauth-server
$ cd spring-oauth-server
$ vi authlete.properties
(Authlete サービスインスタンスの API キーとシークレットを記述)
$ mvn spring-boot:run

詳細は csharp-oauth-server のドキュメントをご参照ください。

$ git clone https://github.com/authlete/csharp-oauth-server
$ cd csharp-oauth-server/AuthorizationServer
$ vi authlete.properties
(Authlete サービスインスタンスの API キーとシークレットを記述)
$ dotnet run

詳細は authlete-php-laravel のドキュメントをご参照ください。

$ laravel new authorization-server
$ cd authorization-server
$ composer require authlete/authlete-laravel
$ vi config/authlete.php
(Authlete サービスインスタンスの API キーとシークレットを記述)
$ php artisan authlete:authorization-server

ご自身で Authlete の Web API を使って認可サーバーを実装・運用される場合、認証コールバックエンドポイントを実装する必要はありません。その代わり、エンドユーザーの認証に関する部分はご自身で実装いただく必要があります。

関連情報