Skip to content

RFC 対応一覧 ​

本ライブラリがコード中で参照しているすべての規格を、実装パッケージ、および有効化を決めるオプション・feature と対応づけて一覧化しています。まずステータス列(凡例は下にあります)を見て、次に括弧内を読んでください。対応する範囲と対応しない範囲が書いてあります。

仕様をどう分類しているか
一覧に載る仕様は、まずそもそも OP の責務かどうかで分けます。OP の責務であるものは full・partial・planned に、そうでないものは out of scope・refused に分類します。1 つの仕様RFC · OIDC · FAPI一覧の 1 行にあたるそもそも OP の責務かRP やリソースサーバのすべきことを定める仕様もある責務であるfullpartialplanned責務ではないout of scoperefused
out of scope と refused は別の主張です。前者はその仕様が他者の担当だという意味で、後者は OP の担当でありながら意図的に採らないという意味です。後者には必ず理由を記録しています。

ステータスの凡例 ​

full その仕様について本ライブラリが対象とする OP 側 surface を end-to-end で実装しています。
partial OP として必要な部分は実装済みです(設計上スコープ外の任意章は除きます)。
planned 対応予定。まだ着地していません。
out out-of-scope(設計上、本ライブラリの責務ではない)。
refused 意図的に拒否しています(例: alg=none)。

この区分は実装範囲を示すもので、OpenID Foundation の認証取得を意味しません。full とした行も、その行に記した制限やライブラリの対象外事項まで満たすという意味ではありません。

OIDC core / discovery ​

仕様ステータス場所
OpenID Connect Core 1.0partial(response_type は code のみ)op/、internal/authorize、internal/tokenendpoint、internal/userinfo、internal/sector
OpenID Connect Discovery 1.0partial(メタデータエンドポイントを実装)internal/discovery
OpenID Connect Dynamic Client Registration 1.0partial(主要フローと登録メタデータの検証を強制)internal/registrationendpoint
OpenID Connect RP-Initiated Logout 1.0fullinternal/endsession
OpenID Connect Back-Channel Logout 1.0fullinternal/backchannel
OpenID Connect Prompt Create 1.0full (LoginFlow.Registration を設定すると prompt=create を受け付け、prompt_values_supported で公開します)internal/authorize, internal/authn, internal/discovery
OpenID Connect Front-Channel Logout 1.0out(iframe / third-party-cookie 依存の通知方式は意図的に非実装。Back-Channel Logout を使う)—
OpenID Connect Session Management 1.0out(サードパーティ cookie 依存のため。Back-Channel を推奨)—
OpenID Connect CIBA Core 1.0partial(poll 配信のみ。ping / push は対象外)internal/ciba、internal/cibaendpoint、op.WithCIBAGrant
  • OpenID Connect Core 1.0:Aggregated / Distributed claim types §5.6.2 は emit せず、pairwise sub §8.1 は op.WithPairwiseSubject で対応。詳細は下の「設計上の対象外」セクション
  • OpenID Connect Discovery 1.0:既定の ES256 では、Discovery が必須とする RS256 を id_token_signing_alg_values_supported に含めません。op.WithSigningAlgorithm(op.AlgRS256) で構築した OP は RS256 を広告します
  • OpenID Connect Dynamic Client Registration 1.0:強制する内容: sector_identifier_uri の取得、application_type=web / =native ごとの redirect URI 規則、JWKs / pairwise / response_type のクロスチェック、PUT の予約フィールド拒否、post_logout_redirect_uris の往復、5 種の JWE alg/enc encrypted-response メタデータ。GET /register/{id} の応答からは client_secret を意図的に除外、software_statement も非対応

OAuth 2.0 系 RFC ​

RFCステータス場所 / オプション
RFC 6749 OAuth 2.0 Frameworkpartial(authorization-code、refresh-token、client-credentials の surface)op/、internal/authorize、internal/tokenendpoint
RFC 6750 Bearer Token Usagepartial(OP 発行 bearer token と、UserInfo / introspection など OP が持つ resource endpoint)internal/tokens、internal/userinfo、internal/introspectendpoint
RFC 6819 Threat Model & Security Considerationspartial(OP 全体に適用しているセキュリティ指針。独立したプロトコル surface ではない)コードベース全体
RFC 7009 Token Revocationfull(feature.Revoke で有効化)internal/revokeendpoint
RFC 7521 Assertion Frameworkpartial(private_key_jwt クライアント認証と JWT bearer authorization grant)internal/clientauth、internal/assertiongrant
RFC 7523 JWT Bearer Assertions for Client Auth and Authorization Grantspartial(private_key_jwt)internal/clientauth、internal/assertiongrant、internal/tokenendpoint
RFC 7591 Dynamic Client Registrationpartial(op.WithDynamicRegistration で有効化)internal/registrationendpoint
RFC 7592 DCR Managementpartial(read / update / delete を実装)internal/registrationendpoint
RFC 7636 PKCEfull(S256 のみ。plain は拒否)internal/pkce
RFC 7662 Token Introspectionfull(feature.Introspect で有効化)internal/introspectendpoint
RFC 7800 Confirmation Methods (cnf)fullinternal/dpop、internal/mtls、internal/tokens
RFC 8252 OAuth 2.0 for Native Appspartial(OP 側の native redirect / loopback 制約を強制。client app 側の挙動は対象外)internal/registrationendpoint、internal/authorize
RFC 8414 Authorization Server Metadatafullinternal/discovery
RFC 8485 Vectors of Trustpartial(ACR/AAL マッピング経由で消費)op/aal.go、op/acr.go
RFC 8628 Device Authorization Grantfull(op.WithDeviceCodeGrant で有効化)internal/devicecode、internal/devicecodeendpoint、op/devicecodekit
RFC 8693 OAuth 2.0 Token Exchangefull(op.WithTokenExchangeGrant で有効化)internal/customgrant/tokenexchange
RFC 8705 OAuth 2.0 mTLS Client Auth & Cert-Bound Tokensfull(feature.MTLS は証明書バインドアクセストークン、mtls_endpoint_aliases、クライアントを認証するすべてのエンドポイントでの tls_client_auth / self_signed_tls_client_auth によるクライアント認証を接続)internal/mtls
RFC 8707 Resource Indicatorspartial(authorize / token / device / CIBA での正規化と client 許可リスト検証を実装)internal/resourceindicator、internal/authorize、internal/tokenendpoint、internal/devicecodeendpoint、internal/cibaendpoint
RFC 8725 JWT Best Current Practicesfull(alg 許可リスト、typ チェック)internal/jose
RFC 9068 JWT Profile for Access Tokenspartial(JWT の発行は OP の単一アルゴリズム(既定は ES256)で行います)internal/tokens
RFC 9101 JAR (JWT-Secured Authorization Request)full(feature.JAR で有効化)internal/jar
RFC 9126 PAR (Pushed Authorization Requests)full(feature.PAR で有効化)internal/parendpoint
RFC 9207 OAuth 2.0 Authorization Server Issuer Identifierfullinternal/authorize(応答に iss パラメータを付与)
RFC 9396 Rich Authorization Requests (authorization_details)full(op.WithAuthorizationDetailTypes で有効化)internal/authorizationdetails、op/authorization_details.go
RFC 9449 DPoPfull(§8 nonce フロー含む。feature.DPoP で有効化)internal/dpop、op.WithDPoPNonceSource
RFC 9470 OAuth 2.0 Step Up Authentication Challengefull(OP は ACR rule で acr_values / max_age の再認証を尊重)op/rule.go(RuleACR)、op/stepup.go
RFC 9700 OAuth 2.0 Security Best Current Practicepartial(OP 側の BCP 方針。リフレッシュトークンのローテーションと §2.2.2 の再利用時の連鎖失効を含む)コードベース全体
RFC 9701 JWT Response for OAuth 2.0 Token Introspectionfull(既定は signed JWT)internal/introspectendpoint、internal/jose
RFC 9728 OAuth 2.0 Protected Resource Metadatafull(op.WithProtectedResources で有効化)internal/protectedresource、op/protected_resource.go
  • RFC 6749 OAuth 2.0 Framework:implicit grant と password grant は意図的に非実装
  • RFC 6750 Bearer Token Usage:一般的な RS challenge 挙動はリソースサーバ側の責務
  • RFC 7009 Token Revocation:リフレッシュトークンを失効させると、そのローテーションチェーンは長さに関係なく全体が、加えて grant のアクセストークンが失効する。同じクライアントでのユーザの別のリフレッシュチェーンは引き続き使える
  • RFC 7521 Assertion Framework:SAML bearer grant と client_secret_jwt は意図的に非実装
  • RFC 7523 JWT Bearer Assertions for Client Auth and Authorization Grants:jti が空または長すぎる assertion は拒否し、クライアントの JWKS 取得で障害が起きたときは invalid_client ではなく 503 を返す。urn:ietf:params:oauth:grant-type:jwt-bearer grant は、明示的に信頼した issuer の assertion について実装済みで、assertion はすべて jti で単回使用。client_secret_jwt は非実装で、登録時点で invalid_client_metadata として拒否
  • RFC 7591 Dynamic Client Registration:software_statement は invalid_software_statement で拒否。jwks と jwks_uri の両方を持つクライアントレコードは、§2 が併用を禁じているため、あらゆる経路で拒否
  • RFC 7592 DCR Management:PUT の省略はフィールド削除ではなくサーバの既定値へのリセットとして扱い、応答での client_secret 再掲は none → confidential への auth method 昇格、または明示的な rotation 要求のいずれかに限定
  • RFC 7662 Token Introspection:有効なリフレッシュトークンに token_type を付けないのは、リソースサーバがアクセストークンと取り違えないようにするため
  • RFC 8628 Device Authorization Grant:slow_down の段階的な延長は LastPolledAt と原子的に永続化。引き換え時に store.Grant を記録するため、失効と pairwise の /userinfo がトークンに届く。op/devicecodekit が総当たり対策と、grant 配下を連鎖して失効させる Revoke を同梱し、Deps.Grants を渡せば grant レコードも削除する
  • RFC 8693 OAuth 2.0 Token Exchange:actor が subject と異なる場合は act チェーン必須で、subject_token 自身のチェーンを 5 段まで入れ子にして引き継ぐ。発行したトークンは subject_token の grant の配下に置かれ、grant を失効させると一緒に失効する。cnf はリクエストの DPoP / mTLS で再バインド。クライアントの登録 scope を超える scope は invalid_scope で拒否
  • RFC 8707 Resource Indicators:組み込み grant は現在、多くの発行経路を単一 resource 値に絞る
  • RFC 9068 JWT Profile for Access Tokens:§2.1 は RS256 対応を求めており、op.WithSigningAlgorithm(op.AlgRS256) で構築した OP はこれを満たします。また、検証側が jti を要求するのは失効戦略が jti を使う場合だけで、戦略が None なら §2.2 で必須の jti を持たないトークンも受け付けます
  • RFC 9396 Rich Authorization Requests (authorization_details):/auth、/par、/token で検証し、認可コード・リフレッシュチェーン・アクセストークンごとに永続化して、後からの認可で変わらないようにし、JWT アクセストークンと introspection に反映し、discovery で公開
  • RFC 9470 OAuth 2.0 Step Up Authentication Challenge:op.StepUpChallenge が組み込み側 RS の返す WWW-Authenticate challenge を組み立てる
  • RFC 9700 OAuth 2.0 Security Best Current Practice:リソースサーバ / client 側要件は組み込み側の責務
  • RFC 9701 JWT Response for OAuth 2.0 Token Introspection:client の introspection_encrypted_response_alg / _enc メタデータに応じて JWE で wrap
  • RFC 9728 OAuth 2.0 Protected Resource Metadata:/.well-known/oauth-protected-resource で配信し、authorization_servers に issuer を刻む

IETF ドラフト ​

ドラフトステータス場所
OAuth 2.0 Grant Management(draft-ietf-oauth-grant-management)partial(op.WithGrantManagement で有効化)internal/grantmgmtendpoint、op/grant_management.go
Identity Assertion JWT Authorization Grant (ID-JAG)(draft-ietf-oauth-identity-assertion-authz-grant、draft-06)partial(リソース認可サーバ側: jwt-bearer grant による ID-JAG の償還に対応)internal/assertiongrant、internal/customgrant/tokenexchange
OAuth Client ID Metadata Document(draft-ietf-oauth-client-id-metadata-document、draft-02)partial(op.WithClientIDMetadataDocuments で有効化)internal/cimd、op/cimd.go
  • OAuth 2.0 Grant Management(draft-ietf-oauth-grant-management):grant_management_action / grant_id を処理し、query / revoke エンドポイントをマウントし、token 応答に grant_id を載せ、discovery で公開。IETF draft 追跡のため draft 更新で surface が変わり得る
  • Identity Assertion JWT Authorization Grant (ID-JAG)(draft-ietf-oauth-identity-assertion-authz-grant、draft-06):IdP 側: token exchange による ID-JAG の発行に対応。ID-JAG は OP の発行アルゴリズムで署名する。既定の ES256 では、draft が実装必須とする RS256 は満たさず、RS256 しか実装しないリソース AS には拒否される。op.WithSigningAlgorithm(op.AlgRS256) で構築した OP は ID-JAG を RS256 で署名する。experimental。IETF draft 追跡のため draft 更新で surface が変わり得る
  • OAuth Client ID Metadata Document(draft-ietf-oauth-client-id-metadata-document、draft-02):HTTPS URL の client_id を取得したメタデータ文書に解決し、none と private_key_jwt のクライアントが authorization_code と refresh_token を使えます。共有秘密を使う confidential クライアントと mTLS クライアントは非対応で、文書が変わっても既存の grant は失効しません。experimental で明示的な opt-in。IETF draft 追跡のため draft 更新で surface が変わり得る。MCP 認可仕様は draft-00 を引用している

Shared Signals(transmitter) ​

以下はすべて transmitter 側の対応です。他の transmitter からイベントを受け取る機能はありません。有効化は op.WithSharedSignals で行います。詳しくは Shared Signals を参照してください。

仕様ステータス場所 / オプション
OpenID Shared Signals Framework 1.0partial(transmitter メタデータ、stream の作成・取得・更新・置換・削除、stream status、verification、push / poll 配送を実装)internal/ssf、op.WithSharedSignals
OpenID CAEP 1.0partial(session-revoked と credential-change のみ)internal/ssf、op.SessionRevoked、op.CredentialChange
OpenID RISC 1.0partial(account-disabled、account-enabled、account-purged、credential-compromise)internal/ssf、op.AccountDisabled、op.AccountEnabled、op.AccountPurged、op.CredentialCompromise
RFC 8417 Security Event Tokenfull(発行側: typ: secevent+jwt、1 トークン 1 イベント、sub と exp は持たない)internal/ssf
RFC 8935 Push-Based SET Deliveryfull(transmitter 側。再送と SSRF 防御つきの配送)internal/ssf
RFC 8936 Poll-Based SET Deliveryfull(transmitter 側。long poll を含む)internal/ssf
CAEP Interoperability Profile 1.0partial(transmitter の要件は §2.6 を除いて満たす。§2.6 は RS256 署名を求める)internal/ssf
  • OpenID Shared Signals Framework 1.0:add_subject / remove_subject、inactivity_timeout、min_verification_interval は未実装。メタデータは default_subjects: "ALL" を広告し、これは Receiver のクライアントに対する grant を持つすべての subject を指す
  • OpenID RISC 1.0:experimental: 公開されている RISC の本文がまだ draft のため、マイナーリリースで surface が変わり得る
  • CAEP Interoperability Profile 1.0:SET は OP の単一の発行アルゴリズムで署名し、既定の ES256 では §2.6 を満たさず、op.WithSigningAlgorithm(op.AlgRS256) を指定すれば RS256 になる

JOSE 系 ​

RFCステータス場所
RFC 7515 JWSpartial(JWT / JAR / JARM / DPoP / client assertion で使う compact JWS surface)internal/jose
RFC 7516 JWEpartial — 閉じた許可リスト(RSA-OAEP-256 / ECDH-ES{,+A128KW,+A256KW} × A{128,256}GCM)internal/jose、op.WithEncryptionKeyset
RFC 7517 JWKpartial(対応済み非対称鍵種の JWK Set 公開と client JWKS 消費。署名用途の対称 oct 鍵は受理しない)internal/jwks
RFC 7518 JWApartial — 発行は OP ごとに 1 つのアルゴリズムで、既定は ES256、op.WithSigningAlgorithm で RS256internal/jose
RFC 7519 JWTpartial(OIDC / OAuth 拡張で使う signed / encrypted JWT surface。unsecured JWT は拒否)internal/jose
RFC 7638 JWK Thumbprintfull(DPoP cnf.jkt で使用)internal/dpop
RFC 8037 Edwards-curve DSA / EdDSApartial(Ed25519。Ed448 は無効)internal/jose
  • RFC 7515 JWS:general JSON serialization は公開しない
  • RFC 7516 JWE:inbound JWE request_object(JAR / PAR §6.1)、outbound JWE id_token、JWT-shape userinfo、JARM authorization 応答、RFC 9701 introspection 応答を実装済み。RSA1_5 は refused(CVE-2017-11424 padding oracle)。RSA-OAEP-384/512、dir、対称鍵のみの A*KW は v2+ で対応
  • RFC 7518 JWA:検証は RS256、PS256、ES256、EdDSA を受理。HS* と none は refused

FAPI 系 ​

Go の識別子 FAPI2Baseline には旧称の Baseline が残っています。現行の Final 仕様名は FAPI 2.0 Security Profile です。ここで参照する OFCS の結果は、スイートの FAPI 2.0 Final テストプラン(および FAPI-CIBA ID1 プラン)に対する回帰実行であり、認証ではありません。Final 仕様の全要件への適合を示すものでもありません。FAPI2Baseline と FAPI2MessageSigning では、本ライブラリは private_key_jwt の aud として issuer 識別子の文字列だけを受け付け(§5.3.2.1(8))、リフレッシュトークンをローテーションしません(§5.3.2.1(9))。ほかのプロファイルは、より広い aud の集合を受け付け、ローテーションします。

プロファイルステータス切り替え
FAPI 2.0 Security Profilepartial(PAR、PKCE、送信者制約付きトークンを実装。この設定はライブラリ独自の選択として JAR も要求します)op.WithProfile(profile.FAPI2Baseline)
FAPI 2.0 Message Signingpartial(JAR と JARM を実装。Final 仕様では署名機能ごとの適合が可能で、Security Profile の要件も引き継ぎます)op.WithProfile(profile.FAPI2MessageSigning)
FAPI 1.0 Advancedout—(FAPI 2.0 を使用)
FAPI-CIBApartial(ライブラリの設定: poll モード、JAR、DPoP または mTLS、アクセストークンの有効期間の上限 10 分、requested_expiry の上限 600 秒、アクセストークンの失効処理)op.WithProfile(profile.FAPICIBA)
OpenID iGov Highout—
  • FAPI 2.0 Security Profile:上記の注記と OFCS を参照
  • FAPI-CIBA:旧 ID1 プランは mTLS を使い、デモも明示的に選びます。リクエストオブジェクトの経過時間 60 分という上限はライブラリの制約です。OFCS を参照

プロファイル列挙には、FAPI プロファイルではないものがさらに 2 つあります。profile.OAuth21 はプロファイル未宣言時の既定で、OAuth 2.1 / RFC 9700 の姿勢を表し、confidential client も含めたすべての authorization-code request に PKCE を要求します。profile.OIDCCore は OpenID Connect Core 1.0 の形(confidential client では PKCE 任意)を、旧来の RP 向けに宣言するもので、他のプロファイルとは組み合わせられません。ユースケース: セキュリティプロファイルの宣言 を参照。

その他、ライブラリが参照する RFC ​

RFC用途
RFC 1918Back-Channel Logout SSRF 防御のプライベートネットワーク拒否リスト
RFC 2045request object の typ で使う、大文字小文字を区別しないメディアタイプ比較
RFC 2606テスト / 例で使う予約済み example domain
RFC 3986URI パース
RFC 4122UUIDv4 生成
RFC 4226TOTP authenticator が使う HOTP の土台
RFC 4514mTLS subject DN の DN 処理
RFC 4647ロケールバンドルを選ぶときの言語タグ lookup
RFC 4648Base64url エンコーディング
RFC 5280X.509 証明書検証
RFC 5321Email OTP 入力に対する SMTP アドレス長の上限
RFC 6238TOTP authenticator
RFC 6265Cookie 構文
RFC 6711Authentication Context Class Reference 値レジストリ
RFC 6761特殊用途ドメイン名。WithAllowInsecureOutboundForDev が受け付ける開発用 issuer ホスト
RFC 6838取得した文書の media type の suffix(+json)照合
RFC 7230 / 7231 / 7232 / 7235HTTP/1.1(現在は RFC 9110 が後継)
RFC 7239trusted proxy 処理での Forwarded header パース
RFC 7807application/problem+json(一部のエラー経路)
RFC 8017JOSE 経由で参照する RSA-PSS / RSA-OAEP アルゴリズム
RFC 8141PAR request_uri 値の URN 処理
RFC 8176AMR 値レジストリ
RFC 8259JSON
RFC 9110HTTP セマンティクス
RFC 9111HTTP キャッシュ。取得した Client ID Metadata Document の鮮度の寿命
RFC 9325TLS の推奨設定。op.FAPITLSConfig は FAPI の TLS 1.2 暗号スイート一覧と並べて TLS 1.3 を有効に保つ
RFC 9493Shared Signals イベントの iss_sub subject identifier

設計上の対象外 ​

OIDC Core や周辺 OAuth 仕様には登場するものの、本ライブラリでは意図的に実装していない項目があります。隣接リポジトリの test/scenarios/catalog/<feature>.yaml に status: out-of-scope 行として記録され、ほかのテストと同じ場所で棚卸しできるようになっています。

  • response_type は code のみ。 Implicit(id_token、id_token token)、hybrid(code id_token ほか)、response_type=none はいずれも発行しません。RFC 9700 §2.1.2 が implicit grant を非推奨化しており、FAPI 2.0 は code を必須としています。Discovery も response_types_supported: ["code"] だけを広告します。
  • fragment response mode は配信路として実装していません。 code のみの発行では URL fragment に入れるものがないためです。query と form_post は両方とも実装されています(form_post は OIDC Core Form Post Response Mode 1.0 に従って自動送信 HTML フォームを返します)。feature.JARM を有効にすると 4 種の *.jwt バリアントも有効になります。Discovery は既定で response_modes_supported: ["query", "form_post"] を広告し、JARM 有効時には *.jwt モードを追加で広告します。
  • Aggregated / Distributed claim types(OIDC Core §5.6.2)は emit しません。 Normal claim のみを出力します。_claim_names / _claim_sources といったキーはトークンにも UserInfo 応答にも一切登場しません。
  • client_secret_jwt は登録時点で拒否します。 代わりに private_key_jwt を使ってください。HMAC 共有秘密 JWT プロファイルは invalid_client_metadata: token_endpoint_auth_method client_secret_jwt is not supported で拒否されます。
  • JWE alg / enc の許可リストは閉じています。 既定値は RSA-OAEP-256 + ECDH-ES{,+A128KW,+A256KW}(key-wrap)と A{128,256}GCM(content)です。WithSupportedEncryptionAlgs は 狭める だけで、広げることはできません。RSA1_5 は永続的に拒否(CVE-2017-11424)。RSA-OAEP-384 / RSA-OAEP-512、dir、対称鍵のみの A*KW は v2+ で対応します。
  • CIBA の push / ping 配信モードは未実装。 Discovery は backchannel_token_delivery_modes_supported: ["poll"] のみを広告するので、クライアント側からこの 2 モードを交渉することはできません。
  • Custom-grant ハンドラはリフレッシュトークン値を渡せません。 リフレッシュトークンを発行したいハンドラは CustomGrantResponse.IssueRefreshToken を立てます。OP が自分の RefreshTokenStore で資格情報を生成・永続化するため、親子関係、ローテーション、再利用時の連鎖失効、DPoP / mTLS バインディングが保たれます。クライアントが refresh_token grant に登録されていない場合でもアクセストークン応答は成功し、リフレッシュトークンだけが省略され、custom_grant.refresh_dropped が記録されます。

範囲外(意図的) ​

OAuth / OIDC 圏のすべての RFC が OP の責務というわけではありません。以下は意図的に対応していない仕様で、リソースサーバ・クライアント SDK・その他のレイヤが受け持つべき領域です。

仕様対応状況備考
RFC 9421 — HTTP Message Signaturesoutリソースサーバ(API 保護)側の関心事であり、OP の責務ではありません。
  • RFC 9421 — HTTP Message Signatures:OP 側の対応する仕組みは、認可リクエスト署名に JAR (RFC 9101)、認可レスポンス署名に JARM、/token と /userinfo の所持証明に DPoP (RFC 9449) です。RS 側の HTTP 署名は組み込み側で実装してください。

検証方法 ​

この一覧は最新のソース(op/ と internal/)を grep して作成しています。手元で再現できます。

sh
git clone https://github.com/libraz/go-oidc-provider.git
cd go-oidc-provider
grep -rhoE 'RFC [0-9]+' op/ internal/ | sort -u

上の表はこのコマンドの出力に沿っています。ライブラリが実装する規格には個別の行を設け、付随的に参照しているだけのものは「その他、ライブラリが参照する RFC」にまとめました。