Web ユーザーの OIDC ベース SSO を構成する

ブラウザークライアントのシングルサインオン (SSO) オプションは、PKCE による Open ID Connect (OIDC) 認可コードフローを使用することで利用できます。

Domino の OIDC ログイン SSO 機能により、ブラウザークライアントは、OIDC プロバイダーで認証されることで Domino Web サーバーにアクセスできます。この形式の SSO は、Web サーバーの基本 SAML 認証と同様の役割を果たします。Domino 12.0.2 では、この機能を使用して Notes ID ボールトに対して認証を行い ID ファイルを取得することはできません。そのため、この機能は Web 統合ログイン、Notes 統合ログイン、または Nomad 統合ログインの代わりとして機能しません。信頼する OIDC プロバイダーに対して認証を行った後、ユーザーの Web ブラウザーは、その Domino サーバーへの後続の HTTP 要求の認証に使用されるセッション Cookie を受け取ります。

手順

  1. HTTP ベアラー認証を有効にする」で説明されているように、1 つ以上のインターネットサイトに対して HTTP ベアラー認証を構成します。
    注: OIDC ログインをサポートするには、インターネットサイトを HTTP ベアラー認証対応にする必要があります。
  2. 信頼する OIDC プロバイダーを構成する」に示されているように、それらの 1 つ以上のインターネットサイトに対して信頼する OIDC プロバイダーを構成します。
  3. インターネットサイト文書の [Domino Web Engine] タブでセッション認証を有効にします。

    単一の ID プロバイダーをサポートするようにすべての Web サーバーを構成できる環境では、SAML IdP または OIDC プロバイダーを使用して各サーバーに対してエンドユーザーを認証し、LTPA トークンなどのマルチサーバー SSO Cookie を使用する代わりに、それらの各バックエンドサーバーで単一サーバーセッション Cookie を使用することにより、セキュリティを向上させることができます。OIDC SSO と SAML SSO は同時には使用できません。

  4. OIDC プロバイダーで、このインターネットサイト用の新しい OIDC/OAuth 2.0 クライアントを構成します。Domino を「機密クライアント」として構成すること、認可コードフローのみを有効にすること、および S256 による PKCE を必須とすることをお勧めします。myserver.example.com で listen する Domino サーバーのリダイレクト URI は、https://myserver.example.com/names.nsf?OIDCLogin という形式になります。idpcat.nsf の OIDC プロバイダー文書でそれらのすべてのインターネットサイトを選択し、OIDC プロバイダーでそれらのホスト名ごとにリダイレクト URI を構成することで、複数のインターネットサイトで OIDC ログインを有効にできます。

    KeyCloak 構成の例については、「Domino の OIDC プロバイダーとしての KeyCloak 構成の例」を参照してください。

    1. OIDC_LOGIN_CLIENT_ID notes.ini で、OIDC プロバイダーで構成される client_id を設定します。
    2. OIDC_LOGIN_CLIENT_SECRET notes.ini で、OIDC プロバイダーで構成される client_secret を設定します。
      注: 特定の Domino サーバーに対する OIDC ログインのために、1 つの OIDC プロバイダーおよび関連する client_id と client_secret を構成できます。
  5. OIDC_LOGIN_ENABLE_REDIRECT=1 を設定して、非認証ユーザーを Domino サーバー上のエンドポイントから /names.nsf?OIDCLogin エンドポイントへのリダイレクトとして、認証後の元のターゲット URI への復帰を有効にします。

その他の構成設定

デフォルトでは、OIDC 認証状態を維持するために使用される Cookie の存続時間は EAP5 で 2 分です。このデフォルトは、OIDC_LOGIN_COOKIE_DURATION_SEC notes.ini を 30 秒から 900 秒の間の値に設定することで変更できます。これにより、エンドユーザーが OIDC プロバイダーで認証を行う時間を短くしあり長くすることができます。

HTTP ベアラー認証の資料で説明されている notes.ini 変数に加えて、2 つの notes.ini 変数を使用して、サーバーコンソールで追加のトレースを有効にできます。

  • DEBUG_OIDCLogin=(0,1,2,3,4)
  • DEBUG_OIDC_LOGIN_REDIRECT=(0,1)

制限事項、既知の問題、および注意事項

  • 現在のセキュリティのベストプラクティスに従い、OIDC ログイン SSO には PKCE を使用した認可コードフローのみを使用できます。
  • Domino は常に「scope=openid email」を要求します。
  • PKCE S256 および nonce は常に使用され、無効にすることはできません。
  • 受信される id_token は、OIDC.Core に表記されている要件に準拠している必要があります。ただし、「email」クレームが見つからない場合、Domino は「upn」クレームをチェックするためにフェールオーバーするという例外があります。
  • 複数の Domino サーバーに要求を分散させる Web プロキシーに、セッションアフィニティーを構成する必要があります。これにより、1 つの OIDC ログイン試行が 2 つの Domino サーバーに分散されないようにします。
  • Domino が標準以外の HTTPS ポートを listen している場合、OIDC ログインは機能しません。
  • サポートされるクライアント認証方式は、「client_secret_basic」と「none」のみです。
  • client_id と client_secret は notes.ini を介して Domino サーバー全体に対して構成されるため、1 つの Domino サーバーへの OIDC ログインに使用できる OIDC プロバイダーは 1 つのみです。
  • OIDC ログインの統計は、HTTP ベアラー認証の統計と組み合わせることができます。
  • OIDC ログインは、Windows サーバーと Linux サーバーでのみサポートされます。