oauth2-proxy helm kubernetes:错误:无法初始化OAuth2代理:无效的提供程序验证程序选项:缺少所需设置:发布者URL

pxq42qpu  于 2023-10-15  发布在  Kubernetes
关注(0)|答案(1)|浏览(202)

我在我的Kubernetes集群上运行了oauth2-proxy,我通过ArtifactHUB > Helm > OAuth2 Proxy chart使用Helm进行了部署。我刚刚将oauth2-proxy从v7.1.3升级到v7.4.0,其图表从4.2.2升级到6.16.1,并开始看到以下错误:
[main.go:60] ERROR: Failed to initialise OAuth2 Proxy: error intiailising provider: could not create provider data: error building OIDC ProviderVerifier: invalid provider verifier options: missing required setting: issuer-url

问题是什么。怎么修?

在使用Azure AD配置时,使用默认值的oauth2-proxy v7.4.0会出现此错误。它应该工作没有任何错误作为所需的行为。

dfuffjeb

dfuffjeb1#

我从文档中引用了OAuth2 Proxy > Azure Auth Provider,通过在默认值文件中的config下添加azure_tenantoidc_issuer_url来使其工作,如下所示:
使用前:

# Oauth client configuration specifics
config:
  configFile: |-
    email_domains = [ "*" ]
    upstreams = [ "file:///dev/null" ]
    http_address = "0.0.0.0:4180"
    provider = "azure"

之后:

# Oauth client configuration specifics
config:
  configFile: |-
    email_domains = [ "*" ]
    upstreams = [ "file:///dev/null" ]
    http_address = "0.0.0.0:4180"
    provider = "azure"
    azure_tenant = "${azure_tenant_id}"
    oidc_issuer_url = "https://sts.windows.net/${azure_tenant_id}/"

如果在此更改后仍然失败,并出现以下错误:
Error redeeming code during OAuth2 callback: unable to get email and/or groups claims from token: unable to get claims from token: could not initialise claim extractor: failed to parse ID Token: oidc: malformed jwt, expected 3 parts got 1
然后将默认值文件中config下的oidc_issuer_url设置为V2 Azure Auth端点,如下所示:

oidc_issuer_url = "https://login.microsoftonline.com/${azure_tenant_id}/v2.0"

注意:将Azure Auth提供程序与nginx和cookie会话存储一起使用时,您可能会发现cookie太大,无法正确传递。在nginx中增加proxy_buffer_size或实现redis会话存储应该可以解决这个问题。

  • 注意:${azure_tenant_id}将替换为实际的Azure应用租户ID,您可以在此处找到:Azure Active Directory(AD)>应用程序注册>所有应用程序> [APP NAME]>概述> Essentials > Directory (tenant) ID其中[APP NAME]是为oauth2-proxy注册的应用程序的名称。*

相关问题