Claude-skill-registry authorization-endpoint
認可エンドポイント(Authorization Endpoint)機能の開発・修正を行う際に使用。Authorization Request処理、同意フロー、Authorization Code生成実装時に役立つ。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/authorization-endpoint" ~/.claude/skills/majiayu000-claude-skill-registry-authorization-endpoint && rm -rf "$T"
manifest:
skills/data/authorization-endpoint/SKILL.mdsource content
認可エンドポイント(Authorization Endpoint)開発ガイド
ドキュメント
- 認可フロー実装ガイドdocumentation/docs/content_06_developer-guide/03-application-plane/02-authorization-flow.md
- 認可概念documentation/docs/content_03_concepts/03-authentication-authorization/concept-04-authorization.md
機能概要
認可エンドポイントは、OAuth 2.0/OpenID Connectの認可リクエストを処理する層。
- Authorization Request処理: リクエスト検証、保存
- 同意フロー: ユーザー同意の取得
- Authorization Code生成: 認可コード発行
- Response Type別処理: code, token, id_token, hybrid
- 動的scopeフィルタリング: 認証方式・ACRベース
モジュール構成
libs/ ├── idp-server-core/ # 認可コア │ └── .../oauth/ │ ├── handler/ │ │ ├── OAuthRequestHandler.java # リクエスト処理 │ │ └── OAuthAuthorizeHandler.java # 認可処理 │ ├── request/ │ │ ├── AuthorizationRequest.java │ │ └── AuthorizationRequestIdentifier.java │ ├── response/ │ │ ├── AuthorizationResponse.java │ │ ├── AuthorizationResponseCreator.java │ │ └── AuthorizationResponseCreators.java │ ├── validator/ │ │ └── OAuthAuthorizeRequestValidator.java │ └── repository/ │ └── AuthorizationRequestRepository.java │ ├── idp-server-core/grant_management/ # Grant管理 │ ├── grant/ │ │ ├── AuthorizationCodeGrant.java │ │ └── AuthorizationCodeGrantCreator.java │ └── AuthorizationGrantedRepository.java │ └── idp-server-control-plane/ # 管理API └── .../management/authorization/
OAuthAuthorizeHandler
idp-server-core/oauth/handler/OAuthAuthorizeHandler.java 内の実際の実装:
public class OAuthAuthorizeHandler { AuthorizationResponseCreators creators; AuthorizationRequestRepository authorizationRequestRepository; AuthorizationCodeGrantRepository authorizationCodeGrantRepository; OAuthTokenCommandRepository oAuthTokenCommandRepository; AuthorizationServerConfigurationQueryRepository authorizationServerConfigurationQueryRepository; ClientConfigurationQueryRepository clientConfigurationQueryRepository; AuthorizationGrantedRepository authorizationGrantedRepository; public AuthorizationResponse handle(OAuthAuthorizeRequest request) { Tenant tenant = request.tenant(); AuthorizationRequestIdentifier authorizationRequestIdentifier = request.toIdentifier(); User user = request.user(); Authentication authentication = request.authentication(); CustomProperties customProperties = request.toCustomProperties(); DeniedScopes deniedScopes = request.toDeniedScopes(); // リクエスト検証 OAuthAuthorizeRequestValidator validator = new OAuthAuthorizeRequestValidator( authorizationRequestIdentifier, user, authentication, customProperties ); validator.validate(); // AuthorizationRequest取得 AuthorizationRequest authorizationRequest = authorizationRequestRepository.get( tenant, authorizationRequestIdentifier ); // Response生成(Response Type別) // AuthorizationResponseCreatorsが適切なCreatorを選択 // ... } }
注意: AuthorizationResponseCreatorsが、Response Type(code, token, id_token, hybrid)に応じた適切なCreatorを選択します。
Authorization Code Grant生成
idp-server-core/grant_management/grant/ 内:
public class AuthorizationCodeGrantCreator { public AuthorizationCodeGrant create( AuthorizationGrant authorizationGrant, AuthorizationRequest authorizationRequest ) { // Authorization Code生成 // AuthorizationGrantとAuthorizationRequestを紐付け } }
Response Type別処理
| Response Type | Creator | 説明 |
|---|---|---|
| AuthorizationResponseCodeCreator | Authorization Code Flow |
| AuthorizationResponseTokenCreator | Implicit Flow (非推奨) |
| AuthorizationResponseIdTokenCreator | Implicit Flow |
| Hybrid Flow Creator | Hybrid Flow |
| Hybrid Flow Creator | Hybrid Flow |
| Hybrid Flow Creator | Hybrid Flow |
E2Eテスト
e2e/src/tests/ ├── spec/ │ ├── oidc_core_3_1_code.test.js # Authorization Code Flow │ ├── oidc_core_3_2_implicit.test.js # Implicit Flow │ ├── oidc_core_3_3_hybrid.test.js # Hybrid Flow │ └── rfc6749_4_1_code.test.js # OAuth 2.0 Authorization Code │ └── scenario/application/ └── scenario-02-sso-oidc.test.js # SSO認可シナリオ
コマンド
# ビルド ./gradlew :libs:idp-server-core:compileJava # テスト cd e2e && npm test -- spec/oidc_core_3_1_code.test.js cd e2e && npm test -- spec/oidc_core_3_3_hybrid.test.js
トラブルシューティング
Authorization Request検証失敗
- redirect_uriがクライアント登録済みURIと一致するか確認
- scopeが有効か確認
- Response Typeがクライアント設定と一致するか確認
Authorization Code生成失敗
- AuthorizationGrantが正しく生成されているか確認
- ユーザー認証が完了しているか確認
同意画面が表示されない
- Grant管理の設定を確認
- 既存Grantが存在する場合は同意スキップ