原文:www.ory.am
自前のOAuth2.0サーバーを構築するお話。
OAuth2.0サーバーにはORY HydraというGolangで書かれたオープンソースのものを使っている。
まず、この記事のターゲットは、
- APIをセキュアにするためにOAuth2を使いたい人
- GithubやDropboxのようにAPIを第三者に公開したい人
- GoogleやFacebookのようにアイデンティティプロバイダになりたい人
- 認証や認可を委譲/連合させる必要がある人
既に世の中にはOAuth2.0サーバーはあるが、ユーザー管理のやりかたを強制してきたり、自由にならないことが多くあった。
そのため、ORY Hydraでは、数行のコードを実装するだけで独自のユーザー管理をすることが出来るようになる明確なフローが存在する。
第三者の開発者が使用したり、他の全てのアプリケーションが使えるように、ORY Hydraがユーザー情報をOAuth2.0のアクセストークンとOpenIDのConnect IDトークンに変換する。
以下に簡単な流れを記載する。
- PostgreSQLや諸々をdockerでインストールする
- 環境設定をする
2-1. System Secretの発行
2-2. Databaseの設定
2-3. 初期データの生成 - OAuth2サーバーの起動
- トークンの発行と検証
4-1. SSHでコンテナに接続する
4-2. Hydraに接続する
4-3. アクセストークンの発行
4-4. アクセストークンの検証 - 同意フロー
5-1. 同意クライアントの作成
5-2. アクセスコントロールポリシーの生成
5-3. コンテナの起動 - OAuth2.0 + OpenIDの認可フロー
6-1. OAuth2.0コンシュマーアプリの生成
6-2. OAuth2.0認可コードフローの実行
6-3. ログインと同意
6-4. アクセストークン・リフレッシュトークン・IDトークンの取得 - 認可済みリクエストの発行