ねぎ嫌い

始業前に学んだことを小出しに。最近はHacker Newsの人気記事をまとめてみたり。

2017-09-04 Run your own OAuth2 server

原文:www.ory.am

自前のOAuth2.0サーバーを構築するお話。
OAuth2.0サーバーにはORY HydraというGolangで書かれたオープンソースのものを使っている。

まず、この記事のターゲットは、

既に世の中にはOAuth2.0サーバーはあるが、ユーザー管理のやりかたを強制してきたり、自由にならないことが多くあった。
そのため、ORY Hydraでは、数行のコードを実装するだけで独自のユーザー管理をすることが出来るようになる明確なフローが存在する。
第三者の開発者が使用したり、他の全てのアプリケーションが使えるように、ORY Hydraがユーザー情報をOAuth2.0のアクセストークンとOpenIDのConnect IDトークンに変換する。

以下に簡単な流れを記載する。

  1. PostgreSQLや諸々をdockerでインストールする
  2. 環境設定をする
    2-1. System Secretの発行
    2-2. Databaseの設定
    2-3. 初期データの生成
  3. OAuth2サーバーの起動
  4. トークンの発行と検証
    4-1. SSHでコンテナに接続する
    4-2. Hydraに接続する
    4-3. アクセストークンの発行
    4-4. アクセストークンの検証
  5. 同意フロー
    5-1. 同意クライアントの作成
    5-2. アクセスコントロールポリシーの生成
    5-3. コンテナの起動
  6. OAuth2.0 + OpenIDの認可フロー
    6-1. OAuth2.0コンシュマーアプリの生成
    6-2. OAuth2.0認可コードフローの実行
    6-3. ログインと同意
    6-4. アクセストークン・リフレッシュトークン・IDトークンの取得
  7. 認可済みリクエストの発行