2.3.2. 使用法

Keycloak クラスをインスタンス化します。
Keycloak クラスは、アプリケーションとの設定および統合の中心的な場所を提供します。最も単純な作成には引数は含まれません。
    var session = require('express-session');
    var Keycloak = require('keycloak-connect');

    var memoryStore = new session.MemoryStore();
    var keycloak = new Keycloak({ store: memoryStore });

デフォルトでは、これはアプリケーションの主な実行ファイルとともに keycloak.json という名前のファイルを見つけ、keycloak 固有の設定を初期化します (公開鍵、レルム名、さまざまな URL)。keycloak.json ファイルは Red Hat Single Sign-On 管理コンソールから取得されます。

この方法を使用したインスタンス化により、妥当なデフォルトがすべて使用されます。または、keycloak.json ファイルの代わりに、設定オブジェクトを指定することもできます。

    let kcConfig = {
        clientId: 'myclient',
        bearerOnly: true,
        serverUrl: 'http://localhost:8080/auth',
        realm: 'myrealm',
        realmPublicKey: 'MIIBIjANB...'
    };

    let keycloak = new Keycloak({ store: memoryStore }, kcConfig);

アプリケーションは、以下を使用して、ユーザーを優先しているアイデンティティープロバイダーにリダイレクトすることもできます。

    let keycloak = new Keycloak({ store: memoryStore, idpHint: myIdP }, kcConfig);
Web セッションストアの設定
Web セッションを使用して認証のサーバー側の状態を管理する場合は、少なくとも store パラメーターで Keycloak(…​) を初期化し、express-session が使用している実際のセッションストアを渡します。
    var session = require('express-session');
    var memoryStore = new session.MemoryStore();

    var keycloak = new Keycloak({ store: memoryStore });
カスタムスコープの値の指定
デフォルトでは、スコープ値の openid はクエリーパラメーターとして Red Hat Single Sign-On のログイン URL に渡されますが、さらにカスタム値を追加することができます。
    var keycloak = new Keycloak({ scope: 'offline_access' });