試験環境

PFOS のアプリをつなぐ(OpenID Connect)

pfos-ID は、OpenID Connect と OAuth 2.1 の認可サーバーです。PFOS のアプリは、標準のライブラリでつなげます。

住所

発行者(issuer)
https://id-staging.pfos.school
OIDC の案内
https://id-staging.pfos.school/.well-known/openid-configuration
認可
https://id-staging.pfos.school/oauth2/authorize
トークン
https://id-staging.pfos.school/oauth2/token
署名鍵(JWKS)
https://id-staging.pfos.school/oauth2/jwks
UserInfo
https://id-staging.pfos.school/oauth2/userinfo
ログアウト
https://id-staging.pfos.school/oauth2/end-session

ほかの住所と、使える方式は、OIDC の案内に書いてあります。

つなぐ手順

  1. 運営者に、連携アプリの登録を頼みます。PFOS のアプリは、同意の画面を出さずにログインできます。
  2. アプリで ES256 の鍵を作ります。秘密鍵はアプリのシークレットに入れ、公開鍵(JWK)を運営者に登録してもらいます(private_key_jwt)。
  3. ログインのときは、/oauth2/authorize に response_type=code、code_challenge(S256)、state、nonce、scope=openid profile を付けて送ります。
  4. 戻ってきたら、iss と state を確かめてから、/oauth2/token でコードをトークンに換えます。
  5. IDトークンを /oauth2/jwks の鍵で検証し、iss、aud、exp、nonce を確かめます。
  6. 利用者は sub で見分けます。preferred_username(@ID)と email は変わることがあります。
  7. 必要なら backchannel_logout_uri を用意します。ログアウトトークンを受け取ったら、アプリのセッションを消します。

決まり

使える権限(スコープ)

スコープできること
openidpfos-ID でログインしたことを確かめる
profile表示名と @ID を見る
emailメールアドレスを見る
offline_accessあなたがいないときも接続を保つ
me:readあなたの pfos-ID の情報(@ID、表示名)を見る
agents:readあなたのエージェント ID と、接続中のエージェントを見る
agents:register新しいエージェント ID の登録を始める(承認はあなたが pfos-ID で行います)