前言
這篇文章主要是紀錄在使用 jellyfin-plugin-sso 時踩到的小雷,不是完整的教學文章
環境
- Keycloak
- Jellyfin
使用的是 OIDC 方式。
雷
Role Claims
由於在文件中有提到:
roles: array of strings. This validates the SAML response against the Role attribute. If a user has any of these roles, then the user is authenticated. Leave blank to disable role checking.
所以我有設定 Roles 限制。
使用的是 KeyCloak 的 Client Role (Clients->[YOUR_OID]->Roles)
不過插件卻怎樣都抓不到這個 Token 裡面應該有提供的 Roles 列表(在 roleClaim
設定 Path)。
看了半小時才發現,他檢查的是 ID Token 而不是 Access Token。
因此需要在 KeyCloak 中加一個 Mapper (Clients->[YOUR_OID]->Mappers)
- Client ID: 選好
- Multivalued: ON
- Token Claim Name: 跟
roleClaim
一樣就可以了,我用的是jellyfin_roles
- Claim JSON Type: String
- Add to ID token: ON
- Add to access token: OFF
- Add to userinfo: OFF
這樣 Jellyfin 應該就抓得到 Roles 了。