Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions de/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Bei der OpenID Connect Authentifizierung fungiert |Fess| als Relying Party (RP)

.. note::
|Fess| verwendet den Authorization Code Flow. Das ID-Token wird nicht über den Browser, sondern direkt vom Token-Endpunkt über einen Backkanal (Server-zu-Server-Kommunikation) zwischen |Fess| und dem OP abgerufen.
|Fess| dekodiert das ID-Token und entnimmt daraus Claims (z. B. ``email`` und ``groups``), um die Benutzerinformationen zusammenzustellen, führt jedoch keine kryptografische Überprüfung der JWT-Signatur durch.
|Fess| dekodiert das ID-Token und entnimmt daraus Claims (z. B. ``email`` und ``groups``), um die Benutzerinformationen zusammenzustellen, führt jedoch keine kryptografische Überprüfung der JWT-Signatur durch. Ebenso werden die Claims ``iss`` (Aussteller), ``aud`` (Zielgruppe) und ``exp`` (Ablauf) nicht geprüft.
Daher muss die Kommunikation mit dem Token-Endpunkt zwingend über HTTPS erfolgen; stellen Sie sicher, dass der Kommunikationsweg zwischen |Fess| und dem OP vertrauenswürdig ist.

Für die Integration mit rollenbasierter Suche siehe :doc:`security-role`.
Expand Down Expand Up @@ -141,7 +141,7 @@ Konfigurieren Sie die Standardgruppen und -rollen, die OIDC-authentifizierten Be
Benutzer-ID, Gruppen und Rollen werden jeweils wie folgt ermittelt:

- **Benutzer-ID**: Wird aus dem ``email``-Claim des ID-Tokens (JWT) bezogen. Daher muss der Scope in der Praxis ``email`` enthalten (kann der ``email``-Claim nicht abgerufen werden, ist kein ordnungsgemäßer Login möglich).
- **Gruppen**: Werden aus dem ``groups``-Claim des ID-Tokens bezogen. Ist kein ``groups``-Claim vorhanden, wird der Wert von ``oic.default.groups`` verwendet.
- **Gruppen**: Werden aus dem ``groups``-Claim des ID-Tokens bezogen. Ist kein ``groups``-Claim vorhanden, wird der Wert von ``oic.default.groups`` verwendet. Ein leeres ``groups``-Array gilt als vorhanden: ``oic.default.groups`` wird dann nicht verwendet, und der Benutzer wird als Benutzer ohne Gruppen behandelt.
- **Rollen**: Es wird stets der Wert von ``oic.default.roles`` verwendet (ein Mechanismus zur Übernahme von Rollen aus ID-Token-Claims ist nicht vorhanden).

.. note::
Expand All @@ -150,6 +150,9 @@ Benutzer-ID, Gruppen und Rollen werden jeweils wie folgt ermittelt:
Ob übergeordnete Gruppen enthalten sind, hängt daher allein von der Claim-Konfiguration des OP
ab -- anders als bei :doc:`sso-entraid`, wo |Fess| übergeordnete Gruppen über die
Microsoft Graph API auflöst.
Der Claim-Wert wird unverändert zur Suchberechtigung. Ist der OP so konfiguriert, dass er
vollständige Gruppenpfade ausgibt, lauten die Werte etwa ``/uebergeordnet/untergeordnet`` und
passen damit nicht zu Dokumenten, die nur mit dem reinen Gruppennamen versehen sind.

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -291,6 +294,11 @@ In ``app/WEB-INF/classes/log4j2.xml`` können Sie den folgenden Logger hinzufüg

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
Steht dieser Logger auf DEBUG, werden die Claims des ID-Tokens (z. B. ``email`` und ``groups``)
in die Protokolldatei geschrieben. Setzen Sie die Protokollebene nach der Untersuchung zurück
und behandeln Sie die erzeugten Protokolle entsprechend.

Referenz
========

Expand Down
12 changes: 10 additions & 2 deletions en/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ In OpenID Connect authentication, |Fess| operates as a Relying Party (RP) and co

.. note::
|Fess| uses the Authorization Code Flow. The ID Token is obtained directly from the token endpoint via a back-channel (server-to-server communication) between |Fess| and the OP, without passing through the browser.
|Fess| decodes the ID Token and extracts claims (such as ``email`` and ``groups``) to construct user information, but does NOT cryptographically verify the JWT signature.
|Fess| decodes the ID Token and extracts claims (such as ``email`` and ``groups``) to construct user information, but does NOT cryptographically verify the JWT signature. It also does not validate the ``iss`` (issuer), ``aud`` (audience) or ``exp`` (expiry) claims.
For this reason, ensure that all communication with the token endpoint uses HTTPS and that the communication path between |Fess| and the OP is trusted.

For integration with role-based search, see :doc:`security-role`.
Expand Down Expand Up @@ -141,14 +141,17 @@ Configure the default groups and roles to assign to users authenticated via OIDC
The user ID, groups, and roles are determined as follows:

- **User ID**: Obtained from the ``email`` claim of the ID Token (JWT). For this reason, the ``email`` scope is effectively required (if the ``email`` claim cannot be obtained, login will not work correctly).
- **Groups**: Obtained from the ``groups`` claim of the ID Token. If the ``groups`` claim is not present, the value of ``oic.default.groups`` is used.
- **Groups**: Obtained from the ``groups`` claim of the ID Token. If the ``groups`` claim is not present, the value of ``oic.default.groups`` is used. An empty ``groups`` array counts as present, so ``oic.default.groups`` is not used and the user is treated as having no groups.
- **Roles**: Always taken from the value of ``oic.default.roles`` (there is no mechanism to obtain roles from ID Token claims).

.. note::
|Fess| uses the values of the ``groups`` claim as they are; it performs no directory lookup and
does not expand nested (transitive) groups. Whether parent groups appear is therefore decided
entirely by the OP's claim configuration -- unlike :doc:`sso-entraid`, where |Fess| resolves
parent groups through the Microsoft Graph API.
The claim value becomes the search permission verbatim. A provider configured to emit full group
paths therefore sends values such as ``/parent/child``, and those do not match documents tagged
with the plain group name.

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -289,6 +292,11 @@ In ``app/WEB-INF/classes/log4j2.xml``, add the following logger to change the lo

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
With this logger at DEBUG, the claims of the ID Token (such as ``email`` and ``groups``) are
written to the log file. Restore the log level once the investigation is over, and handle the
log output accordingly.

Reference
=========

Expand Down
12 changes: 10 additions & 2 deletions es/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ En la autenticación OpenID Connect, |Fess| opera como Relying Party (RP) y cola

.. note::
|Fess| utiliza el flujo de código de autorización (Authorization Code Flow). El ID Token se obtiene directamente desde el endpoint de token a través de un canal de retaguardia (comunicación servidor a servidor) entre |Fess| y el OP, sin pasar por el navegador.
|Fess| decodifica el ID Token y extrae los claims (como ``email`` y ``groups``) para construir la información del usuario, pero no realiza la verificación criptográfica de la firma JWT.
|Fess| decodifica el ID Token y extrae los claims (como ``email`` y ``groups``) para construir la información del usuario, pero no realiza la verificación criptográfica de la firma JWT. Tampoco valida los claims ``iss`` (emisor), ``aud`` (audiencia) ni ``exp`` (expiración).
Por este motivo, la comunicación con el endpoint de token debe realizarse siempre mediante HTTPS, y asegúrese de que la ruta de comunicación entre |Fess| y el OP sea de confianza.

Para la integración con búsqueda basada en roles, consulte :doc:`security-role`.
Expand Down Expand Up @@ -141,14 +141,17 @@ Configure los grupos y roles por defecto que se asignarán a los usuarios autent
El ID de usuario, los grupos y los roles se determinan de la siguiente manera:

- **ID de usuario**: se obtiene del claim ``email`` del ID Token (JWT). Por este motivo, en la práctica es necesario incluir ``email`` en el scope (si no se puede obtener el claim ``email``, el inicio de sesión no funcionará correctamente).
- **Grupos**: se obtienen del claim ``groups`` del ID Token. Si el claim ``groups`` no existe, se utiliza el valor de ``oic.default.groups``.
- **Grupos**: se obtienen del claim ``groups`` del ID Token. Si el claim ``groups`` no existe, se utiliza el valor de ``oic.default.groups``. Un array ``groups`` vacío se considera presente, por lo que no se utiliza ``oic.default.groups`` y el usuario se trata como si no tuviera grupos.
- **Roles**: siempre se utiliza el valor de ``oic.default.roles`` (no existe mecanismo para obtener roles desde los claims del ID Token).

.. note::
|Fess| utiliza directamente los valores del claim ``groups``: no realiza ninguna consulta al
directorio ni expande los grupos anidados (transitivos). Por lo tanto, que aparezcan los grupos
padre depende únicamente de la configuración de claims del OP, a diferencia de
:doc:`sso-entraid`, donde |Fess| resuelve los grupos padre mediante la API de Microsoft Graph.
El valor del claim se convierte literalmente en el permiso de búsqueda. Si el OP está configurado
para emitir rutas de grupo completas, envía valores como ``/padre/hijo``, que no coinciden con los
documentos etiquetados solo con el nombre del grupo.

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -290,6 +293,11 @@ En ``app/WEB-INF/classes/log4j2.xml``, puede agregar el siguiente logger para ca

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
Con este logger en DEBUG, los claims del ID Token (como ``email`` y ``groups``) se escriben en el
archivo de log. Restaure el nivel de log cuando termine la investigación y trate la salida del log
en consecuencia.

Referencia
==========

Expand Down
12 changes: 10 additions & 2 deletions fr/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Dans l'authentification OpenID Connect, |Fess| fonctionne comme une Relying Part

.. note::
|Fess| utilise le flux de code d'autorisation (Authorization Code Flow). L'ID Token est obtenu directement depuis le endpoint de token via un canal arrière (communication serveur à serveur) entre |Fess| et l'OP, sans passer par le navigateur.
|Fess| décode l'ID Token pour extraire les claims (``email``, ``groups``, etc.) et constituer les informations utilisateur, mais ne procède pas à la vérification cryptographique de la signature JWT.
|Fess| décode l'ID Token pour extraire les claims (``email``, ``groups``, etc.) et constituer les informations utilisateur, mais ne procède pas à la vérification cryptographique de la signature JWT. Il ne valide pas non plus les claims ``iss`` (émetteur), ``aud`` (audience) ni ``exp`` (expiration).
Pour cette raison, la communication avec le endpoint de token doit impérativement se faire en HTTPS, et veillez à ce que le chemin de communication entre |Fess| et l'OP soit de confiance.

Pour l'intégration avec la recherche basée sur les rôles, voir :doc:`security-role`.
Expand Down Expand Up @@ -141,7 +141,7 @@ Configurez les groupes et rôles par défaut à attribuer aux utilisateurs authe
L'identifiant utilisateur, les groupes et les rôles sont déterminés comme suit :

- **Identifiant utilisateur** : extrait du claim ``email`` de l'ID Token (JWT). Pour cette raison, le scope doit en pratique inclure ``email`` (si le claim ``email`` ne peut pas être obtenu, la connexion ne s'effectuera pas correctement).
- **Groupes** : extraits du claim ``groups`` de l'ID Token. Si le claim ``groups`` est absent, la valeur de ``oic.default.groups`` est utilisée.
- **Groupes** : extraits du claim ``groups`` de l'ID Token. Si le claim ``groups`` est absent, la valeur de ``oic.default.groups`` est utilisée. Un tableau ``groups`` vide est considéré comme présent : ``oic.default.groups`` n'est alors pas utilisé et l'utilisateur est traité comme n'ayant aucun groupe.
- **Rôles** : la valeur de ``oic.default.roles`` est toujours utilisée (il n'existe pas de mécanisme permettant d'extraire les rôles depuis les claims de l'ID Token).

.. note::
Expand All @@ -150,6 +150,9 @@ L'identifiant utilisateur, les groupes et les rôles sont déterminés comme sui
La présence des groupes parents dépend donc uniquement de la configuration des claims de l'OP,
contrairement à :doc:`sso-entraid`, où |Fess| résout les groupes parents en utilisant l'API
Microsoft Graph.
La valeur du claim devient telle quelle la permission de recherche. Si l'OP est configuré pour
émettre les chemins de groupe complets, il envoie des valeurs comme ``/parent/enfant``, qui ne
correspondent pas aux documents étiquetés avec le seul nom du groupe.

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -291,6 +294,11 @@ Dans ``app/WEB-INF/classes/log4j2.xml``, vous pouvez ajouter le logger suivant p

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
Avec ce logger en DEBUG, les claims de l'ID Token (``email``, ``groups``, etc.) sont écrits dans
le fichier de log. Rétablissez le niveau de log une fois l'investigation terminée et traitez la
sortie de log en conséquence.

Référence
=========

Expand Down
10 changes: 8 additions & 2 deletions ja/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ OpenID Connect認証では、|Fess| がRelying Party(RP)として動作し

.. note::
|Fess| は認可コードフロー(Authorization Code Flow)を使用します。ID Tokenは、ブラウザを経由せず、|Fess| とOPの間のバックチャネル(サーバー間通信)でトークンエンドポイントから直接取得されます。
|Fess| はID Tokenをデコードしてクレーム(``email`` や ``groups`` など)を取り出してユーザー情報を構成しますが、JWT署名の暗号的な検証は行いません。
|Fess| はID Tokenをデコードしてクレーム(``email`` や ``groups`` など)を取り出してユーザー情報を構成しますが、JWT署名の暗号的な検証は行いません。\ ``iss``\ (発行者)、\ ``aud``\ (対象クライアント)、\ ``exp``\ (有効期限)の各クレームも検証しません。
このため、トークンエンドポイントとの通信は必ずHTTPSで行い、|Fess| とOPの間の通信経路が信頼できることを確認してください。

ロールベース検索との連携については、:doc:`security-role` を参照してください。
Expand Down Expand Up @@ -141,14 +141,16 @@ OIDCで認証されたユーザーに割り当てるデフォルトのグルー
ユーザーID・グループ・ロールは、それぞれ以下のように決定されます。

- **ユーザーID**: ID Token(JWT)の ``email`` クレームから取得されます。このため、スコープには実質的に ``email`` を含める必要があります(``email`` クレームが取得できない場合、ログインは正しく行われません)。
- **グループ**: ID Tokenの ``groups`` クレームから取得されます。\ ``groups`` クレームが存在しない場合は ``oic.default.groups`` の値が使用されます。
- **グループ**: ID Tokenの ``groups`` クレームから取得されます。\ ``groups`` クレームが存在しない場合は ``oic.default.groups`` の値が使用されます。\ ``groups`` クレームが空の配列で送られてきた場合は「存在する」とみなされるため、\ ``oic.default.groups`` は使用されず、グループなしとして扱われます。
- **ロール**: 常に ``oic.default.roles`` の値が使用されます(ID Tokenのクレームからロールを取得する仕組みはありません)。

.. note::
|Fess| は ``groups`` クレームの値をそのまま使用し、ディレクトリへの問い合わせや
ネストされたグループ(親グループ)の展開は行いません。
親グループが含まれるかどうかは、OP側のクレーム設定だけで決まります。
Microsoft Graph APIで親グループを解決する :doc:`sso-entraid` とは動作が異なります。
クレームの値はそのまま検索権限になります。OP側でグループのフルパスを出力する設定にしている場合は
``/親グループ/子グループ`` のような値がそのまま権限名になり、グループ名だけを付与した文書とは一致しません。

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -288,6 +290,10 @@ OPの設定画面またはDiscoveryエンドポイントから以下の情報を

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
このロガーをDEBUGにすると、ID Tokenのクレーム(\ ``email`` や ``groups`` など)がログファイルに出力されます。
調査が終わったらログレベルを元に戻し、出力されたログの取り扱いに注意してください。

参考情報
========

Expand Down
10 changes: 8 additions & 2 deletions ko/15.8/config/sso-oidc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ OpenID Connect 인증에서는 |Fess| 가 Relying Party(RP)로 동작하며,

.. note::
|Fess| 는 인가 코드 플로우(Authorization Code Flow)를 사용합니다. ID Token은 브라우저를 경유하지 않고, |Fess| 와 OP 간의 백채널(서버 간 통신)을 통해 토큰 엔드포인트에서 직접 취득됩니다.
|Fess| 는 ID Token을 디코딩하여 클레임(``email`` 이나 ``groups`` 등)을 추출하고 사용자 정보를 구성하지만, JWT 서명의 암호적 검증은 수행하지 않습니다.
|Fess| 는 ID Token을 디코딩하여 클레임(``email`` 이나 ``groups`` 등)을 추출하고 사용자 정보를 구성하지만, JWT 서명의 암호적 검증은 수행하지 않습니다. ``iss``\ (발행자), ``aud``\ (대상 클라이언트), ``exp``\ (만료) 클레임도 검증하지 않습니다.
이 때문에 토큰 엔드포인트와의 통신은 반드시 HTTPS로 수행하고, |Fess| 와 OP 간의 통신 경로가 신뢰할 수 있는지 확인하십시오.

역할 기반 검색과의 연동에 대해서는 :doc:`security-role` 을 참조하십시오.
Expand Down Expand Up @@ -141,13 +141,15 @@ OIDC로 인증된 사용자에게 할당할 기본 그룹·역할을 설정합
사용자 ID·그룹·역할은 각각 다음과 같이 결정됩니다.

- **사용자 ID**: ID Token(JWT)의 ``email`` 클레임에서 취득됩니다. 이 때문에 스코프에는 실질적으로 ``email`` 을 포함해야 합니다(``email`` 클레임을 취득할 수 없는 경우 로그인이 올바르게 이루어지지 않습니다).
- **그룹**: ID Token의 ``groups`` 클레임에서 취득됩니다. ``groups`` 클레임이 존재하지 않는 경우 ``oic.default.groups`` 의 값이 사용됩니다.
- **그룹**: ID Token의 ``groups`` 클레임에서 취득됩니다. ``groups`` 클레임이 존재하지 않는 경우 ``oic.default.groups`` 의 값이 사용됩니다. ``groups`` 클레임이 빈 배열로 전달된 경우에는 존재하는 것으로 간주되므로 ``oic.default.groups`` 가 사용되지 않으며, 그룹이 없는 것으로 처리됩니다.
- **역할**: 항상 ``oic.default.roles`` 의 값이 사용됩니다(ID Token의 클레임에서 역할을 취득하는 구조는 없습니다).

.. note::
|Fess| 는 ``groups`` 클레임의 값을 그대로 사용하며, 디렉토리 조회나 중첩 그룹(상위 그룹)의
확장은 수행하지 않습니다. 상위 그룹이 포함되는지 여부는 OP 측의 클레임 설정에 따라서만
결정됩니다. Microsoft Graph API로 상위 그룹을 해결하는 :doc:`sso-entraid` 의 동작과는 다릅니다.
클레임의 값은 그대로 검색 권한이 됩니다. OP 측에서 그룹의 전체 경로를 출력하도록 설정한 경우
``/상위그룹/하위그룹`` 과 같은 값이 그대로 권한 이름이 되며, 그룹 이름만 부여한 문서와는 일치하지 않습니다.

.. list-table::
:header-rows: 1
Expand Down Expand Up @@ -287,6 +289,10 @@ OP의 설정 화면 또는 Discovery 엔드포인트에서 다음 정보를 취

<Logger name="org.codelibs.fess.sso.oic" level="DEBUG"/>

.. warning::
이 로거를 DEBUG로 설정하면 ID Token의 클레임(``email`` 이나 ``groups`` 등)이 로그 파일에 출력됩니다.
조사가 끝나면 로그 레벨을 원래대로 되돌리고, 출력된 로그의 취급에 주의하십시오.

참고 정보
=========

Expand Down
Loading
Loading