3.9. API リファレンス
3.9.1. コンストラクター リンクのコピーリンクがクリップボードにコピーされました!
アダプターの構築方法としては、設定を直接渡す方法が推奨されます。
new Keycloak({
url: "http://keycloak-server",
realm: "my-realm",
clientId: "my-app"
});
new Keycloak({
url: "http://keycloak-server",
realm: "my-realm",
clientId: "my-app"
});
代わりに、設定が含まれる JSON ファイルへの URL を渡すこともできます。
new Keycloak("http://your-app/adapter-config.json");
new Keycloak("http://your-app/adapter-config.json");
JSON 設定ファイルには、次のフィールドが含まれている必要があります。
{
"auth-server-url": "https://auth.example.com",
"realm": "my-realm",
"resource": "my-app"
}
{
"auth-server-url": "https://auth.example.com",
"realm": "my-realm",
"resource": "my-app"
}
JSON 設定ファイルを使用すると、初期化の前に追加のリクエストがトリガーされるため、パフォーマンス上の理由から推奨されないことに注意してください。
3.9.2. プロパティー リンクのコピーリンクがクリップボードにコピーされました!
- authenticated
-
ユーザーが認証されている場合は
true、そうでない場合はfalseです。 - token
-
サービスへのリクエストで
Authorizationヘッダーで送ることができる base64 エンコードされたトークン。 - tokenParsed
- 解析されたトークンを JavaScript オブジェクトとして実行します。
- subject
- ユーザー id
- idToken
- base64 でエンコードされた ID トークン。
- idTokenParsed
- 解析された id トークンを JavaScript オブジェクトとして実行します。
- realmAccess
- トークンに関連付けられたレルムロール。
- resourceAccess
- トークンに関連付けられたリソースロール。
- refreshToken
- 新しいトークンの取得に使用できる base64 でエンコードされた更新トークン。
- refreshTokenParsed
- JavaScript オブジェクトとして解析された更新トークン。
- timeSkew
- ブラウザー時間と Red Hat build of Keycloak サーバー間の推定時間差 (秒単位)。この値は見積りませんが、トークンの有効期限が切れているかどうかを判断します。
- responseMode
- init で渡されるレスポンスモード (デフォルト値は fragment)。
- flow
- init に渡されるフロー。
- adapter
リダイレクトする方法と、その他のブラウザー関連の機能がライブラリーによって処理される方法をオーバーライドできます。利用可能なオプション:
- "default" - ライブラリーがリダイレクトにブラウザー api を使用します (これがデフォルトです)。
- "cordova" - ライブラリーは、InAppBrowser cordova プラグインを使用して keycloak のログイン/登録ページのロードを試みます (ライブラリーが cordova エコシステムで動作している場合、このオプションが自動的に使用されます)
- "cordova-native" - ライブラリーは、BrowserTabs cordova プラグインを使用して、電話のシステムブラウザーでログインおよび登録ページを開くことを試みます。これには、アプリケーションにリダイレクトするための追加のセットアップが必要です (「Cordova でのハイブリッドアプリケーション」 を参照)。
- "custom" - カスタムアダプターを実装できます (高度な使用ケースのみ)。
- responseType
- ログインリクエストとともに Red Hat build of Keycloak に送信される応答タイプ。これは初期化時に使用されるフロー値に基づいて決定されますが、この値を設定するとオーバーライドできます。
3.9.3. メソッド リンクのコピーリンクがクリップボードにコピーされました!
init(options)
アダプターを初期化するために呼び出されます。
オプションはオブジェクトです。ここでは、以下のようになります。
-
useNonce - 暗号化ナンスを追加して、認証応答がリクエストと一致することを確認します (デフォルトは
true)。 -
onLoad - 読み込み時に実行するアクションを指定します。サポートされている値は、
login-requiredまたはcheck-ssoです。 - redirectUri - ログインまたはログアウト後にリダイレクトするデフォルトの URI を指定します。これは現在、'cordova-native' および 'default' のアダプターでサポートされています。
- silentCheckSsoRedirectUri - onLoad が 'check-sso' に設定されている場合に、サイレント認証チェックのリダイレクト URI を設定します。
-
silentCheckSsoFallback: サイレント
check-ssoがブラウザーでサポートされない場合に、通常のcheck-ssoへのフォールバックを有効にします (デフォルトはtrue)。 - token - トークンに初期値を設定します。
- refreshToken - 更新トークンの初期値を設定します。
- idToken - id トークンに初期値を設定します (トークンまたは refreshToken とともにのみ)。
-
scope - デフォルトのスコープパラメーターを Red Hat build of Keycloak ログインエンドポイントに設定します。スコープのスペースで区切られたリストを使用します。これらは通常、特定のクライアントで定義された クライアントスコープ を参照します。スコープの
openidは、アダプターによって常にスコープのリストに追加されることに注意してください。たとえば、スコープオプションのaddress phoneを入力すると、Red Hat build of Keycloak へのリクエストにはスコープパラメーターscope=openid address phoneが含まれます。login()オプションでスコープを明示的に指定すると、ここで指定したデフォルトのスコープが上書きされることに注意してください。 - timeSkew - ローカルタイムと Red Hat build of Keycloak サーバー間のスキュー用に初期値を設定します (トークンと refreshToken の場合のみ)。
-
checkLoginIframe - ログイン状態の監視を有効にするかどうかを設定します (デフォルト値は
true)。 - checkLoginIframeInterval - ログイン状態を確認する間隔を設定します (デフォルトは 5 秒です)。
-
responseMode - ログインリクエスト時に Red Hat build of Keycloak サーバーに送信される OpenID Connect レスポンスモードを設定します。有効な値は
queryまたはfragmentです。デフォルト値はfragmentで、認証に成功した後、OpenID Connect パラメーターを URL フラグメントに追加した JavaScript アプリケーションに Red Hat build of Keycloak がリダイレクトすることを意味します。これは一般的には、より安全で、queryを介して推奨されています。 -
flow - OpenID Connect フローを設定します。有効な値は、
standard、implicit、またはhybridです。 -
enableLogging - Keycloak からコンソールへのログメッセージを有効にします (デフォルトは
falseです)。 pkceMethod - 使用する Proof Key Code Exchange (PKCE) 方式。この値を設定すると、PKCE メカニズムが有効になります。利用可能なオプション:
- "S256" - SHA256 ベースの PKCE 方式 (デフォルト)。
- false - PKCE は無効です。
- messageReceiveTimeout: Keycloak サーバーからのメッセージ応答を待つタイムアウトをミリ秒単位で設定します。これは、たとえば、サードパーティーの Cookie チェック中に、メッセージを待機するときに使用されます。デフォルト値は 10000 です。
- locale - onLoad が 'login-required' の場合、OIDC 1.0 仕様のセクション 3.1.2.1 に従って 'ui_locales' クエリーパラメーターを設定します。
初期化の完了時に解決する promise を返します。
login(options)
ログインフォームにリダイレクトし、Promise を返します。
options は任意のオブジェクトです。ここでは、以下のようになります。
- redirectUri - ログイン後にリダイレクトする URI を指定します。
-
prompt - Red Hat build of Keycloak サーバー側でログインフローを若干カスタマイズできるようにします。たとえば、値が
loginの場合にログイン画面を表示するように強制します。または、クライアントにConsent Requiredがある場合に、consent値の同意画面を強制的に表示します。最後に、値noneを使用して、ログイン画面がユーザーに対して表示されないようにすることができます。これは、ユーザーが以前にすでに認証されている場合に SSO をチェックするのに便利です (これは、上で説明した値check-ssoを使用したonLoadチェックに関連しています)。 -
maxAge - ユーザーがすでに認証されている場合にのみ使用します。ユーザーの認証が発生した時点の最大時間を指定します。ユーザーが
maxAgeよりも長い期間認証されている場合、SSO は無視されるため、再認証が必要になります。 - loginHint - ログインフォームの username/email フィールドを事前に入力するのに使用されます。
-
scope -
initで設定されたスコープを、この特定ログインの別の値でオーバーライドします。 - idpHint - Red Hat build of Keycloak に対して、ログインページの表示を省略し、代わりに指定されたアイデンティティープロバイダーに自動的にリダイレクトするように指示するために使用されます。詳細は、アイデンティティープロバイダーのドキュメント を参照してください。
-
acr -
acrクレームに関する情報が含まれます。これは、claimsパラメーター内で Red Hat build of Keycloak サーバーに送信されます。一般的な用途は、段階的な認証です。使用例:{ values: ["silver", "gold"], essential: true }詳細は、OpenID Connect 仕様と ステップアップ認証のドキュメント を参照してください。 -
acrValues - 認証コンテキストクラス参照を参照し、クライアントが必要なアシュアランスレベル要件 (認証メカニズムなど) を宣言できるようにする
acr_valuesパラメーターを生成します。Section 4. acr_values request values and level of assurance in OpenID Connect MODRNA Authentication Profile 1.0 を参照してください。 -
action - 値が
registerの場合、ユーザーは登録ページにリダイレクトされます。詳細は、クライアントから要求される登録 セクションを参照してください。値がUPDATE_PASSWORDまたはサポートされている別の必須アクションの場合、ユーザーはパスワードのリセットページまたはその他の必須アクションページにリダイレクトされます。ただし、ユーザーが認証されていない場合は、ユーザーはログインページへ移動され、認証後にリダイレクトされます。詳細は、アプリケーション起点のアクション セクションを参照してください。 - locale - OIDC 1.0 仕様のセクション 3.1.2.1 に従って 'ui_locales' クエリーパラメーターを設定します。
-
cordovaOptions - Cordova in-app-browser (該当する場合) に渡される引数を指定します。
hiddenオプションおよびlocationオプションは、これらの引数の影響を受けません。利用可能なすべてのオプションは https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-inappbrowser/ で定義されています。使用例:{ zoom: "no", hardwareback: "yes" };
createLoginUrl(options)
ログインフォームへの URL を含む Promise を返します。
options は任意のオブジェクトで、関数 login と同じオプションをサポートします。
logout(options)
ログアウトにリダイレクトされます。
オプションはオブジェクトです。ここでは、以下のようになります。
- redirectUri - ログアウト後にリダイレクトする URI を指定します。
createLogoutUrl(options)
ユーザーをログアウトするための URL を返します。
オプションはオブジェクトです。ここでは、以下のようになります。
- redirectUri - ログアウト後にリダイレクトする URI を指定します。
register(options)
登録フォームにリダイレクトされます。オプション action = 'register' を使用したログインのショートカット
オプションは login メソッドと同じですが、'action' は 'register' に設定されます。
createRegisterUrl(options)
登録ページへの URL を含む Promise を返します。オプション action = 'register' を持つ createLoginUrl のショートカット
オプションは createLoginUrl メソッドと同じですが、'action' は 'register' に設定されます。
accountManagement()
アカウントコンソールにリダイレクトします。
createAccountUrl(options)
アカウントコンソールへの URL を返します。
オプションはオブジェクトです。ここでは、以下のようになります。
- redirectUri: アプリケーションにリダイレクトする際にリダイレクトする URI を指定します。
hasRealmRole(role)
トークンに指定のレルムロールがある場合は true を返します。
hasResourceRole(role, resource)
トークンにリソースの指定されたロールがある場合に true を返します (指定の clientId が使用されていない場合、リソースは任意です)。
loadUserProfile()
ユーザープロファイルを読み込みます。
プロファイルで解決する promise を返します。
以下に例を示します。
isTokenExpired(minValidity)
トークンの有効期限が切れる前にトークンが minValidity 秒未満の場合は true を返します (minValidity は任意であり、指定されていない場合は 0 が使用されます)。
updateToken(minValidity)
トークンが minValidity 秒以内に期限切れになると (minValidity は任意で、指定されていない場合は 5 が使用されます)、トークンが更新されます。-1 が minValidity として渡された場合、トークンは強制的に更新されます。セッションステータスが iframe が有効になっている場合は、セッションステータスもチェックされます。
トークンが更新されているかどうかを示すブール値で解決する promise を返します。
以下に例を示します。
clearToken()
トークンを含む認証状態を消去します。これは、トークンの更新が失敗した場合など、セッションの期限が切れたことをアプリケーションが検出する場合に役立ちます。
これを呼び出すと、onAuthLogout コールバックリスナーが呼び出されます。
3.9.4. コールバックイベント リンクのコピーリンクがクリップボードにコピーされました!
アダプターは、特定のイベントの callback リスナーの設定をサポートします。これらは init() メソッドを呼び出す前に設定する必要があることに注意してください。
以下に例を示します。
keycloak.onAuthSuccess = () => console.log('Authenticated!');
keycloak.onAuthSuccess = () => console.log('Authenticated!');
利用可能なイベントは以下のとおりです。
- onReady(authenticated) - アダプターが初期化されると呼び出されます。
- onAuthSuccess - ユーザーが正常に認証されると呼び出しされます。
- onAuthError - 認証中にエラーが発生した場合に呼び出しされます。
- onAuthRefreshSuccess - トークンの更新時に呼び出しされます。
- onAuthRefreshError - トークンの更新中にエラーが発生した場合に呼び出します。
- onAuthLogout - ユーザーがログアウトした場合に呼び出されます (セッションステータス iframe が有効になっている場合、または Cordova モードの場合にのみ呼び出されます)。
- onTokenExpired - アクセストークンの期限が切れたときに呼び出しされます。更新トークンが利用可能な場合、トークンは updateToken で更新できます。利用できない場合 (つまり暗黙的なフローの場合) は、ログイン画面にリダイレクトして新しいアクセストークンを取得できます。