Keycloak
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
Keycloak は組み込みの汎用 OAuth2 プロバイダーを通じて動作します。Keycloak 用の新しいネイティブプロバイダーは不要です。Keycloak クライアントを OpenID Connect クライアントとして設定し、 provider: 'oauth2' を安定した providerId、例えば keycloak.
Keycloak クライアント設定
セクション「Keycloak クライアント設定」Keycloak のレルムで、Capacitor アプリで使用されるクライアントを作成または開きます:
- 認可 code フローを使用します。
- アプリ設定で PKCE を有効にしてください。
- アプリで使用されるすべてのリダイレクト URI を登録します。例えば
myapp://oauth/keycloakモバイル用と、本番環境の Web 用 HTTPS コールバック URL。 - スコープとして以下を使用します:
openid profile email. 追加offline_accessrealmとclientがrefresh tokenを発行するように設定されている場合に限ります。
正確なissuer URLはデプロイ環境によって異なります。現在のKeycloakデプロイでは、一般的にrealmのメタデータを次に公開しています: https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationただし、デプロイによっては追加のベースパスが含まれる場合があります。realmのOpenID Endpoint Configurationに表示されるissuer URLを使用してください。
OIDC discoveryの例
「OIDC discoveryの例」というタイトルのセクション推奨: issuerUrl これにより、プラグインはrealmのメタデータからauthorization、token、logoutエンドポイントを検出できます:
import { SocialLogin } from '@capgo/capacitor-social-login';
const keycloakIssuer = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakIssuer}/protocol/openid-connect/userinfo`, }, },});
const result = await SocialLogin.login({ provider: 'oauth2', options: { providerId: 'keycloak', },});
console.log(result.result.idToken);console.log(result.result.accessToken?.token);console.log(result.result.resourceData);refresh tokenを使う場合は、次をリクエストしてください: offline_access Keycloakのrealmとclientがこのアプリに対してrefresh tokenを許可している場合のみです:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});エンドポイントの手動フォールバック
「手動エンドポイントフォールバック」セクションOIDCディスカバリがブロックされている場合や、デプロイがアプリにメタデータを公開していない場合は、エンドポイントを直接設定してください。ベースURLは、Keycloakのデプロイが公開しているとおりに正確に指定してください:
const keycloakRealmUrl = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', authorizationBaseUrl: `${keycloakRealmUrl}/protocol/openid-connect/auth`, accessTokenEndpoint: `${keycloakRealmUrl}/protocol/openid-connect/token`, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakRealmUrl}/protocol/openid-connect/userinfo`, logoutUrl: `${keycloakRealmUrl}/protocol/openid-connect/logout`, }, },});Auth Connect との互換性
「Auth Connectの互換性」セクションKeycloakはAuth ConnectのプリセットプロバイダーIDには含まれていません。すでに SocialLoginAuthConnectを使用している場合でも、汎用の oauth2 プロバイダーを初期化して、次でログインできます: provider: 'oauth2' と providerId: 'keycloak'.
詳細については、 Keycloak OpenID Connect エンドポイントリファレンス ディスカバリおよびエンドポイントパスの確認用。
関連ドキュメント
「関連ドキュメント」セクションKeycloakからの次のステップ
「Keycloakからの次のステップ」というセクション使用している場合 Keycloak 認証とアカウントフローを計画するには、これを次と連携させてください @capgo/capacitor-social-login の使用 「@capgo/capacitor-social-login の使用」のネイティブ機能のために、 @capgo/capacitor-social-login @capgo/capacitor-social-login の実装の詳細については、 @capgo/capacitor-passkey @capgo/capacitor-passkey の実装詳細については、 @capgo/capacitor-native-biometric @capgo/capacitor-native-biometric の実装の詳細、および 2要素認証 二要素認証の実装の詳細については。