如何复制粘贴 Google 的 SSO 证书以连接 dex?

How to copy paste Google's SSO certificate for connecting with 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 文件并添加它。有正确的复制格式吗?

1:转到 https://www.base64encode.org/ 并将您的原始证书粘贴到那里进行编码。原文完整格式为:

-----BEGIN CERTIFICATE-----
MIIDdDDDD
XXXXXX
VVVVVVV
-----END CERTIFICATE-----

将编码后的结果字符串首尾相连,注意不要有多余的字符。

2:编辑配置映射并确保 yaml 格式正确:

#kubectl -n argocd 编辑 cm argocd-cm

这是一个有效的示例配置:

---
#in argocd-cm
data:
  url: https://argocd.int.domain.com
  dex.config: |
    logger:
      level: debug
      format: json
    connectors:
    - type: saml
      id: saml
      name: saml
      config:
        ssoURL: https://accounts.google.com/o/saml2/idp?idpid=XXXXXXXX
        entityIssuer: https://argocd.int.domain.com/api/dex/callback
        redirectURI: https://argocd.int.domain.com/api/dex/callback
        ssoIssuer: https://accounts.google.com/o/saml2/idp?idpid=XXXXXXXXX
        caData: |
          LS0tLS1CRUdJTiBXXXXXXXXXXThe long BASE64EncodedString
        usernameAttr: name
        emailAttr: email
#etcetc
---

希望这能解决您的问题。

注意:在 configmap 中格式化字符可能会引入 yaml 解析错误,因此请确保您在保存编辑后打开 configmap 时看不到 /n 等。

应该 考虑重新启动 argocd-dex-server 和 argocd-server 部署,并确认新 pods 中的日志是干净的。

[taproot@ip-10-10-15-500 ~]# kubectl -n argocd rollout restart deployment argocd-dex-server
deployment.apps/argocd-dex-server restarted
[taproot@ip-10-10-15-500 ~]# kubectl -n argocd rollout restart deployment argocd-server
deployment.apps/argocd-server restarted

我必须执行上述重新启动以消除 UI 上的显着错误,这些错误如下所示:

“无法加载数据:grpc:客户端连接正在关闭”

参考:https://argoproj.github.io/argo-cd/operator-manual/user-management/google/