---
title: "[メモ]JellyfinでEntraID認証"
id: "6880"
type: "post"
slug: "%e3%83%a1%e3%83%a2jellyfin%e3%81%a7entraid%e8%aa%8d%e8%a8%bc"
published_at: "2024-04-01T11:45:46+00:00"
modified_at: "2024-04-06T03:29:58+00:00"
url: "https://www.okin-jp.net/archives/6880"
markdown_url: "https://www.okin-jp.net/archives/6880.md"
excerpt: "MacのWindowsAppからxrdpにrdp接続するとusキーボードになってしまうので調査 Continue reading"
taxonomy_category:
  - "Server"
taxonomy_post_tag:
  - "EntraID"
  - "Jellyfin"
  - "Jellyfin_Plugin"
  - "SSO"
---

## 概要

メディアサーバーのJellyfinでEntraID(AzureAD)を使ったSSOを設定するメモ

JellyfinはEmbyの派生でWebやDLNAからサーバー上のメディアファイルを閲覧できる。

## jellyfin-plugin-sso

jellyfinでSSO(SAML/OIDC)できるプラグイン

1. Jellyfinを設定する
2. [jellyfin-plugin-sso/README.md at main · 9p4/jellyfin-plugin-sso (github.com)](https://github.com/9p4/jellyfin-plugin-sso/blob/main/README.md#installing) に従ってJellyfin SSO Pluginを入れる
3. PROVIDER_NAMEを決める
  1. 英数字のみ(例: entraid)

4. Azureで認証用アプリの設定をする
  1. [Microsoft Azure](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps) のアプリ登録を行う
  2. アプリケーション (クライアント) ID、ディレクトリ (テナント) IDを控える
  3. 認証->プラットフォームを追加でWebを追加し、リダイレクト先として`https://<your domain>/sso/OID/redirect/PROVIDER_NAME`を追加する
  4. 証明書とシークレット->クライアントシークレットからシークレットを作成し、値を控える
    - ※有効期限は最大24ヶ月なので切れる前に交換する
    - ※別のページに行くと値はマスクされるので控え忘れた場合は作り直す

5. ダッシュボード->プラグイン->SSO-AuthからEntraIDの設定を追加する。
  1. 4で控えた値を埋める
    - Name of OID Provider: PROVIDER_NAME
    - OID Endpoint: https://login.microsoftonline.com/<ディレクトリ (テナント) ID>/v2.0
      - 例: https://login.microsoftonline.com/01234567-89ab-cdef-0123-456789abcdef/v2.0
      - ※Azure上のアプリケーションのエンドポイントリストでOpenID Endpointはテナント共通のhttps://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configurationと記載されているが、今回の場合依存ライブラリの都合でorganizationsをテナントIDに置き換える必要がある

    - OpenID Client ID: アプリケーション (クライアント) ID
    - OID Secret: クライアントシークレットの値

  2. 必要な設定をする
    - Enabled チェックを入れる
    - Enable Authorization by Plugin SSOでのアカウント登録を有効にするときチェックを入れる
      - 7で手動紐付けをやる場合はチェックを入れない

    - (任意) Enable All Folders/Enabled Folders/その他Enable ~ アクセスを与えたい範囲にチェックを入れる
    - (重要) Do Not Validate OpenID Endpoints (Insecure) チェックを入れる
      - ※ チェックを入れないと認証系(login.microsoftonline.com)とユーザー情報エンドポイントのMicrosoft Graph API(graph.microsoft.com)のドメインが違うことでInvalid扱いになり進まない

  3. 入力イメージ [https://www.okin-jp.net/jellyfin_sso_settings](https://www.okin-jp.net/jellyfin_sso_settings)

6. [jellyfin-plugin-sso/README.md at main · 9p4/jellyfin-plugin-sso (github.com)](https://github.com/9p4/jellyfin-plugin-sso/blob/main/README.md#creating-a-login-button-on-the-main-page) に従ってログイン免責事項とカスタムCSSにSSOログインボタンを入力する
  - action=”/sso/OID/start/PROVIDER_NAME” のように相対パスに書き換えると勝手が良いかもしれない

7. (オプション) アカウントを紐付ける
  1. 紐付けるアカウントでログインする
  2. https://<your domain>/SSOViews/linking を開く
  3. +ボタンからSSOアカウントと紐付ける

## 余談

特にはまったのは5.aのOID Endpointと5.bのDo Not Validate OpenID Endpoints (Insecure)  
 当初うまく動かずauthentik経由で認証するように構成していたがエラーログを眺めていたらひらめいたのでチャレンジしたところうまくいった

![おきん(blog)](https://secure.gravatar.com/avatar/90fa8845304183a491e9f3bfa0a6a44e46e25882407e4aa652815d725d55bd8c?s=100&r=g)

[おきん(blog)](https://www.okin-jp.net/archives/author/oops-okin)

[https://mi.okin-jp.net/@okin_p](https://mi.okin-jp.net/@okin_p)
(Misskey)  
 [https://fi.okin-jp.net/@okin_p](https://fi.okin-jp.net/@okin_p)
(Firefish)  
 [https://si.okin-jp.net/@okin_p](https://si.okin-jp.net/@okin_p)
(Mastodon)

[https://fedifile.net/@okin_p/profile/](https://fedifile.net/@okin_p/profile/)
  
 [https://twpf.jp/okin_p](https://twpf.jp/okin_p)
  
 [http://profile.hatena.ne.jp/okin_p/](http://profile.hatena.ne.jp/okin_p/)

名前：おきん  
 やってること：面倒なことをPHPにやらせる、IPv6でなにかする、車で移動する  
 主なガジェット：Google Pixel 4a (5G) ,iPhone XS(ジャンク), iPad mini5, その他

種別：IPv6 Single stack 猫

パソコンやガジェットについて書いていく…予定。

[https://twitter.com/okin_p](https://twitter.com/okin_p)
[https://si.okin-jp.net/@okin_p](https://si.okin-jp.net/@okin_p)

### *関連記事*

### コメントを残す[コメントをキャンセル](/archives/6880#respond)

このサイトはスパムを低減するために Akismet を使っています。[コメントデータの処理方法の詳細はこちらをご覧ください](https://akismet.com/privacy/)
。
