Ory Hydraで運営しているAPI提供サーバーにDeveloper portalを用意する

Ory Hydraで運営しているAPI提供サーバーにDeveloper portalを用意する

更新: 2026年1月19日

Ory Hydraに専用のscopeを用意して、それを経由してアクセスすることで、既存の仕組みを使いながらデベロッパーポータルサイトを構築することができる

前回のブログで、Ory Hydra をつかって、APIを提供する仕組みを作った。しかし現状のままでは各開発者にIDを渡すために、Hydraサーバーに対して、毎回コマンドを叩く必要がある。

 そのため、開発者がアプリケーションのcallbackや名前等を自由に編集するDeveloper portalページを用意した。

https://bfh-developer-portal-front.vercel.app/

画像の説明

 このWebサイトはブレイブフロンティアヒーローズのプライム会員でないと利用できないようになっている。

手法としては、OryHydraに対して、developer portal用のClientを発行する。Scopeにdeveloper:adminを追加する。

--scope openid,profile,offline_access,developer:admin \

 APIサーバーによるClientのCRUD操作はdeveloper:admin権限を要求するようにする。また、新たにdeveloper:adminをもつClientを作れないように制御している。そして、上で述べたように、元のゲームでの利用権限もチェックすることでユーザーの正当性を確認している。

AWS プライベートネットワーク

パブリックインターネット

アクセス

1. ログイン/認可要求

scope: developer:admin
2. Client操作要求

(Bearer Token付)
3. 会員ステータス確認
4. Client CRUD実行

(ownerタグ付与)

開発者

Developer Portal Front-end

Vercel

API Server

CRUD操作 / 権限チェック

Ory Hydra

OAuth2/OIDC Server

Game Server / DB

Game ServerAPI ServerOry HydraPortal (Front)Game ServerAPI ServerOry HydraPortal (Front)開発者ポータル利用開始--owner 'ユーザーID'--scope 'openid,profile...'alt[正当なユーザー][不正/非会員]開発者ログイン (OAuth2 Flow)1認可リクエスト (scope: developer:admin)2ログイン/同意画面3承認4Access Token (developer:admin保持)5新規Client作成要求 (名前, Callback等)6Client作成リクエスト (Token + 入力内容)71. scope 'developer:admin' の検証82. プライム会員かチェック93. Client作成 (POST /admin/clients)10201 Created11作成完了通知12Client ID / Secret 表示13403 Forbidden14開発者

これによって、OryHydraとAPIサーバーを利用してDeveloper Portalページを作成することができ、3rdパーティー開発者が自由に開発を行えるようになる。

開発者が作ったClientをポータルサイトで一覧で取得できるようにclient作成時にはownerを付与する(実際にはAWS上のプライベートネットワーク内でAPIを叩いて実行している)

--owner '一意のユーザーID' \

 Ory Hydraを使うことで、自己増殖するかのように便利ツールを増やしていけるのはヘッドレスな構造ならではといったところ。

現状はやらなきゃいけないことなどが無限にあるため、引き続き開発者向けの便利な仕組みを構築していきます。

最新記事をフォロー

RSS Feed