Ory Hydraで運営しているAPI提供サーバーにDeveloper portalを用意する
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を作れないように制御している。そして、上で述べたように、元のゲームでの利用権限もチェックすることでユーザーの正当性を確認している。
これによって、OryHydraとAPIサーバーを利用してDeveloper Portalページを作成することができ、3rdパーティー開発者が自由に開発を行えるようになる。
開発者が作ったClientをポータルサイトで一覧で取得できるようにclient作成時にはownerを付与する(実際にはAWS上のプライベートネットワーク内でAPIを叩いて実行している)
--owner '一意のユーザーID' \
Ory Hydraを使うことで、自己増殖するかのように便利ツールを増やしていけるのはヘッドレスな構造ならではといったところ。
現状はやらなきゃいけないことなどが無限にあるため、引き続き開発者向けの便利な仕組みを構築していきます。