问题标签 [openid-dex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - DEX LDAP 连接器令牌签名
我正在玩 DEX 和 openldap。当我在浏览器中取回令牌并使用我生成的公钥将其放入 JWT 调试器时,它不会验证签名。我正在尝试单步调试 DEX 的代码,但调试工具并不能在我的计算机上运行。我已经诉诸于日志语句。我真的找不到在哪里可以观察到令牌的签名,以查看程序是否正在使用我提供的密钥。哪个函数实际签署了令牌,我如何观察它使用什么密钥来签署?
kubernetes - 使用 DEX (LDAP) 进行身份验证时组为空
我一直在尝试使用 DEX for LDAP 对 OIDC 进行身份验证。我已成功进行身份验证,但问题是 LDAP 搜索未返回组。以下是我的 DEX 配置和 LDAP 数据。请帮帮我
截图:登录成功,群组为空
我的 Dex 配置
我的 LDAP 数据
dn: ou=People,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com ou: People objectClass: organizationsUnit
dn: uid=johndoe,ou=People,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com gecos: John Doe uid: johndoe loginShell: /bin/bash mail:john.doe@example.org homeDirectory:/home/jdoe cn:John Doe sn:Doe uidNumber:10002 objectClass:posixAccount objectClass:inetOrgPerson objectClass:top userPassword:bar gidNumber:10002
dn: uid=janedoe,ou=People,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com gecos: Jane Doe uid: janedoe loginShell: /bin/bash mail:jane.doe@example.org homeDirectory:/home/jdoe cn:Jane Doe sn:Doe uidNumber:10001 objectClass:posixAccount objectClass:inetOrgPerson objectClass:top userPassword:foo gidNumber:10001
dn: ou=Groups,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com ou: Groups objectClass: organizationsUnit
dn: cn=admins,ou=Groups,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com cn: admins objectClass: posixGroup objectClass: top gidNumber: 20001 memberUid: janedoe memberUid: johndoe
dn: cn=developers,ou=Groups,dc=ec2-54-185-211-121,dc=us-west-2,dc=compute,dc=amazonaws,dc=com cn: 开发者 objectClass: posixGroup objectClass: top gidNumber: 20002 memberUid: janedoe
kubernetes - 如何访问部署在 Istio 和 Dex 后面的模型微服务?
我使用 Kubeflow (v0.6) 和 Seldon Core 构建了一个部署管道来为 ML 模型提供服务,但是现在部署了模型,我不知道如何通过身份验证。分层并使用服务。
我的 kubernetes 实例在裸机上,设置与此相同:https ://www.kubeflow.org/docs/started/getting-started-k8s/
我能够按照这些说明启动示例应用程序并为 staticClient 发出 IDToken,但是当我将令牌作为“授权:承载”传递时,我被重定向到 dex 登录页面。
(部分)Dex configMap:
当我尝试访问该服务时:
我错过了什么?:(
kubernetes - Mandate Group Search Condition in Dex LDAP Coonector
I am using Dex as our Identity provider and connecting it to LDAP. Below is my ldap config in Dex:
And below is a sample userSearch & groupSearch Result:
When I login to my Prometheus instance which uses the above config, even though my userID is not part of the Group that is being used ie Prometheus, I am still able to login.
Dex logs shows there is no groups associated with my id.
But why is it still allowing me to login? Is there any way I can mandate this setting if group serach returns empty, login should fail?
authentication - 无法让 kubectl 对 dex 和 gangway 进行身份验证
我在 centos7 上运行 kubernetes 1.16.2 的本地实例。我已经安装了 cert-manager、dex 和 gangway 并且显然可以正常工作。我遇到的问题是kubectl。
所以我有dex在它自己的入口上运行,在它的后端使用letsencrypt证书和ldap到我们的本地authn。并且舷梯配置为使用此 dex 实例。
我收集了一个letsencrypt.pem CA
dex,配置了这些额外的 nginx 入口注解,
似乎工作正常:
然后,我通过添加以下 containers.command 行在我的 kubernetes 主节点上编辑我的 kubeapi 清单:
我等待 kubernetes 主 pod 自行重启。一切都恢复正常。我仔细检查了在吊舱/etc/pki/ca-trust/source/anchors/letsencrypt.pem
内是否可以访问。kube-apiserver-k8s
我在没有a 的情况下配置了舷梯,trustedCAPath
然后我继续转到我的舷梯入口,然后我看到了 dex 身份验证页面。我选择 LDAP,输入我的企业帐户详细信息,然后 gangway 继续执行预期的操作:
我尽职尽责地将其粘贴到我的终端中。但是,当我尝试(没有为自己设置任何 RBAC 角色)时,我得到
我也尝试--oidc-ca-file
从 kubeapi 中删除,但我得到了同样的错误。
我也尝试添加
我kubectl config
的凭据 - 但无济于事。
我也试过:
我在 kupeapi 日志中没有看到任何异常,我完全不知道接下来要尝试什么。有什么建议么?
authentication - istio 得到“RBAC:访问被拒绝”,即使服务角色绑定被检查为允许
我一直在为 istio 苦苦挣扎……所以在这里寻求专家的帮助!
背景
我正在尝试使用dex部署我的 kubeflow 应用程序以实现多租户。来自github的manifest文件参考kubeflow官方文档
这是组件/版本信息的列表
- 我在 GKE 上运行 kubernetes 1.15
- Istio 1.1.6 已在 kubeflow 中用于服务方法
- 尝试为 ML 部署 kubeflow 1.0
- 为 authn 部署 dex 1.0
使用清单文件,我成功地在集群上部署了 kubeflow。这就是我所做的。
- 在集群上部署 kubeflow 应用
- 使用 OIDC 服务部署 Dex 启用 authn 到 google Oauth2.0
- 启用 RBAC
- 创建特使过滤器以将标题“kubeflow-userid”附加为登录用户
这是第 3 步和第 4 步的验证检查 RBAC 已启用并为 kubeflow-userid 添加了 envoyfilter
RBAC 问题问题分析
在我完成部署后。我进行了以下功能测试:
- 我可以通过 google oauth 使用我的 google 帐户登录
- 我能够创建自己的个人资料/命名空间
- 我能够创建一个笔记本服务器
- 但是我无法连接到笔记本服务器
RBAC 问题调查
在 kubeflow 上成功创建笔记本服务器并尝试连接笔记本服务器后,我收到“RBAC:访问被拒绝”错误。我设法更新了特使日志级别并获得了下面的日志。
从源代码看来,允许的函数返回 false,因此它给出了“RBAC:拒绝访问”响应。
我对转储的特使进行了搜索,看起来规则应该允许任何以标题键作为我的邮件地址的请求。现在我可以确认我已经从上面的日志中得到了我的标题。
了解用于验证 RBAC authz 的 envoy 配置来自此配置。它通过混合器分发到边车,日志和代码将我引导到 servicerolebinding 的 rbac.istio.io 配置。
我想尝试更新此 ServiceRoleBinding 以验证一些假设,因为我无法调试特使源代码,并且没有足够的日志来显示“允许”方法返回 false 的确切原因。
但是我发现自己无法更新服务角色绑定。每次我完成编辑后,它都会恢复到原来的版本。
我发现有这个 istio-galley validatingAdmissionConfiguration(下面的代码块)可以监控这些 istio rbac 资源。
长话短说
两个多星期以来,我一直在努力解决这个 istio 问题。我敢肯定有很多人在尝试在 k8s 上解决 istio 问题时也有同样的感受。欢迎任何建议!以下是我对问题的理解,如果我错了,请纠正我:
- 日志证据显示 rbac 规则不允许我访问资源
- 我需要更新 rbac 规则
- 规则由mixer根据ServiceRoleBinding分配给envoy容器
- 所以我需要更新 ServiceRoleBinding
- 我无法更新 ServiceRoleBinding,因为验证准入 webhook 或 istio 混合器阻止我这样做
我遇到了以下问题
即使删除了验证 webhook,我也无法更新 ServiceRoleBinding
我试图删除这个验证 webhook 以更新 servicerolebinding。保存编辑后资源立即恢复。验证 webhook 实际上是从 configmap 自动生成的,所以我必须更新它来更新 webhook。
厨房中是否有某种缓存供混频器用于分发配置
我找不到任何相关日志表明 rbac.istio.io 资源受到 istio-system 命名空间中的任何服务的保护/验证。
如何获取 MIXER 的日志
我需要了解哪个组件确切地控制了策略。我设法更新了日志级别,但没有找到任何有用的东西
最重要的是如何调试特使容器
我需要调试特使应用程序以了解为什么它为允许函数返回 false。如果我们不能轻松调试它。是否有一个文档可以让我更新代码以添加更多日志并为 GCR 构建新图像,以便我可以再次运行并根据日志查看幕后发生的情况。
base64 - 如何复制粘贴 Google 的 SSO 证书以连接 dex?
我在 dex 服务器中不断收到以下错误-
failed to initialize server: server: Failed to open connector saml: failed to open connector: failed to create connector saml: parse cert: trailing data:
我正在复制 Google SSO 证书,将其转换为 base64 并粘贴。这是用于使用 google sso 登录配置 argocd。(https://argo-cd.readthedocs.io/en/release-1.8/operator-manual/user-management/google/)我尝试使用\n
和\r\n
不复制证书\n
。还是同样的错误。我正在编辑 argocd cm 文件并添加它。是否有正确的复制格式?
openid-connect - 配置 Vault 以使用 dex oidc 身份验证
我正在尝试配置保险库,以便它可以通过我的本地 dex 部署进行身份验证。我已将 dex 配置为
和 openid 配置文件
我已经配置并工作了舷梯,所以我很确定 dex 方面的一切都很好。我为 Vault 配置 dex 客户端:
我能够卷曲https://vault.mysite.com/ui/vault/auth/oidc/oidc/callback。
然后我尝试使用
但是,它会吐出以下内容:
代码:400。错误:
谁能指出我做错了什么?
kubernetes - microk8s kubeflow仪表板访问-无法与令牌交换授权码:oauth2:无法获取令牌:401未经授权
安装 microk8s 并启用 kubeflow 后,我得到了用户名、密码和 Kubeflow 仪表板的链接。然后我按预期访问仪表板,一切都很好。但是在重新启动我的机器并执行 microk8s start 之后,我无法再进入 kubeflow 仪表板。
所有 pod 都可以正常启动,然后我访问仪表板并获取:
查看 pod/container oidc-gatekeeper-xxxxx / oidc-gatekeeper 的 kubernetes 日志,我有:
对于 pod/容器 dex-auth-5d9bf87db9-rjtm8 / dex-auth:
只有完全删除 microk8s 并在每次我重新启动机器时重新安装,我才能让它再次工作,这显然是不可行的。
任何帮助将不胜感激。