2024-09-13 10:12:28 +02:00
|
|
|
resource "random_id" "jellyfin_client_id" {
|
|
|
|
byte_length = 16
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "authentik_provider_oauth2" "jellyfin" {
|
2025-02-19 10:59:18 +00:00
|
|
|
name = "Jellyfin"
|
2024-09-13 10:12:28 +02:00
|
|
|
client_id = random_id.jellyfin_client_id.id
|
|
|
|
|
|
|
|
authorization_flow = data.authentik_flow.default-provider-authorization-implicit-consent.id
|
2025-02-19 10:59:18 +00:00
|
|
|
invalidation_flow = data.authentik_flow.default-invalidation-flow.id
|
|
|
|
allowed_redirect_uris = [
|
|
|
|
{
|
|
|
|
matching_mode = "strict",
|
|
|
|
url = "https://jellyfin.lab.cowley.tech/sso/OID/start/authentik"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
matching_mode = "strict",
|
|
|
|
url = "http://jellyfin:8096/sso/OID/start/authentik"
|
|
|
|
},
|
2024-09-13 10:12:28 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
property_mappings = [
|
|
|
|
data.authentik_property_mapping_provider_scope.scope-email.id,
|
|
|
|
data.authentik_property_mapping_provider_scope.scope-profile.id,
|
|
|
|
data.authentik_property_mapping_provider_scope.scope-openid.id,
|
|
|
|
]
|
|
|
|
lifecycle {
|
|
|
|
ignore_changes = [
|
2025-02-19 10:59:18 +00:00
|
|
|
allowed_redirect_uris,
|
2024-09-13 10:12:28 +02:00
|
|
|
signing_key,
|
|
|
|
authentication_flow,
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
resource "authentik_application" "jellyfin" {
|
|
|
|
name = "Jellyfin"
|
|
|
|
slug = "jellyfin"
|
|
|
|
protocol_provider = authentik_provider_oauth2.jellyfin.id
|
2025-02-19 10:59:18 +00:00
|
|
|
meta_launch_url = "https://jellyfin.lab.cowley.tech/sso/OID/start/authentik"
|
2024-09-13 10:12:28 +02:00
|
|
|
}
|
|
|
|
resource "kubernetes_secret" "jellyfin_oidc" {
|
|
|
|
metadata {
|
2025-02-19 10:59:18 +00:00
|
|
|
name = "jellyfin-oidc"
|
2024-09-13 10:12:28 +02:00
|
|
|
namespace = "jellyfin"
|
|
|
|
}
|
|
|
|
data = {
|
|
|
|
client-secret = authentik_provider_oauth2.jellyfin.client_secret
|
|
|
|
}
|
|
|
|
}
|