Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[AWS] Login Argocd via Cognito in AWS

Posted on October 2, 2022October 16, 2023 By nim 2 Comments on [AWS] Login Argocd via Cognito in AWS

Mình đã có 1 số bài hướng dẫn login vào UI của spinnaker, kiali bằng Google account.
Nếu công ty bạn sài AWS thì có 1 ứng cử viên sáng giá đó là Cognito.

Việc đầu tiên switch sang UI cũ cho dễ tạo.

Contents

Toggle
  • 1) Creating User Pool in Cognito
    • Don’t Generate client secret
    • Generate client secret
  • 2) Configuring argocd to integrate with cognito.
  • 3) Demo – Login argocd via cognito
    • Sign up on Cognito through UI login
    • Creating User on Cognito
  • Problem
    • After Login via Cognito, Argocd always returns the login page.

1) Creating User Pool in Cognito

new version:

>>>>>>>>>>>>>>>>>

Chúng ta sẽ switch về giao diện cũ của cognito.
Create 1 User pool.
Ở bước này bạn sẽ Lưu ý 1 chút là chúng ta sẽ chọn 3 cái:
email, name, profile (note 1)

Don’t Generate client secret

Nếu bạn không muốn sử dụng clientSecret thì bỏ trống Generate client secret

Generate client secret

https://argocd.nimtechnology.com/api/dex/callback
Ở phần (note 1) chúng ta đã chọn email, name, profile
thì Ở mục App Client Settings chúng ta nên chọn email, openid, profile

Mình có thử chọn email và openid mà không chọn profile thì bị lỗi bên dưới, khi đọc lỗi của
argocd-dex-server
Failed to authenticate: invalid_request: invalid_scope”

Ở đây thì bạn tìm đại 1 tên sub domain và thực hiện check nhé
Chỗ này bạn cần ghi nhờ Pool Id

2) Configuring argocd to integrate with cognito.

Đầu tiên bạn sửa configmap là argocd-cm

issuer: ‘https://cognito-idp.<region_name>.amazonaws.com/<Pool Id>’
clientID: lấy ở App Clients
clientSecret: lấy ở App Clients

Có một vài trường hợp mình đọc thì họ bảo nên để url: ‘https://<domain of argocd>’ thì nó mới work

apiVersion: v1
data:
###add this
  dex.config: |
    logger:
      level: debug
      format: json
    connectors:
    - config:
        issuer: 'https://cognito-idp.us-east-1.amazonaws.com/us-east-1_ROG4Nb6I6'
        clientID: '4mrs14u792jkipmc3XXXXXX'
        clientSecret: '6lvas8knjs07ugu8ciu9u0ca832XXXXXXXfvi6l8g2f3'
      type: oidc
      id: cognito
      name: Cognito
  url: 'https://argocd.nimtechnology.com'
###################################
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/instance: argocd
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
  name: argocd-cm
  namespace: argocd

sau khi config authen giờ config author trong config map: argocd-rbac-cm

Bạn đầu cũng đơn giản thì bạn chỉ cần thêm “policy.default: ‘role:readonly’“
cho các User đăng nhập chỉ có quyên view.
apiVersion: v1
data:
  policy.default: 'role:readonly'
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/instance: argocd
    app.kubernetes.io/name: argocd-rbac-cm
    app.kubernetes.io/part-of: argocd
  name: argocd-rbac-cm
  namespace: argocd

3) Demo – Login argocd via cognito

Giờ bạn thực hiện truy cập vào argocd thông qua web site.

Chữ login via Cognito hình như là do mình đặt name trong config authen là Cognito nên có chữ đó.
Bạn có thể tuy chỉnh nhé

Bạn có thể thấy là domain mà chúng ta login nó giống domain chúng ta đăng ký ở trên

Login này có thể Sign up vì là mình đã cho phép người dùng đăng ký.

Sign up on Cognito through UI login

Bạn điền các thông tin cần thiết
Bạn trợ lại UI cognito phần user and group sẽ thấy là có user đang request sign in
trang thay đang là UNCONFIRMED
Bạn sẽ thực hiện confirm user
Giờ bạn có thể login user đó rồi

Creating User on Cognito

Nếu bạn để username không giống với email sẽ bị lỗi:
Username should be an email. (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID: XXXXX–XXX-XXXX; Proxy: null)

Bạn phải để username và email giống nhau rồi click create user
Đây là user mới được admin tạo.
Nếu bạn login nó sẽ yêu cầu bạn change pass và thêm 1 số thông tin.

Ngoài ra argocd còn tương tác với sso aws:
https://blog.sakamo.dev/post/argocd-aws-sso/

Problem

After Login via Cognito, Argocd always returns the login page.

Sau khi bạn đang có sign up và account của bạn đã được confirmed trên cognito. Bạn thực hiện qua cognito nhưng không thể đi vào home page và chỉ return về màn hình login thì bạn thứ restart các deployment sau: argocd-dex-server nếu không được thì restart argocd-server

ArgoCD, AWS - Amazon Web Service

Post navigation

Previous Post: [Kubernetes] Lesson8: k8s Easy – Service – Service account – ConfigMaps and Secrets
Next Post: [Argocd] Designing Gitops model is implemented by argocd

More Related Articles

[EFS/EKS] Warning: config file does not have retry_nfs_mount_command item in section mount… AWS - Amazon Web Service
[AWS/EKS] EFS CSI Driver – Create Persistent Volume Clain with ReadWriteMany type on EKS AWS - Amazon Web Service
[EKS/IPs] Increase most many IPs as possible on each Node of your EKS. AWS - Amazon Web Service
[AWS] Provision AWS IAM Admin User as EKS Admin AWS - Amazon Web Service
[Terraform] ResourceAlreadyExistsException: The specified log group already exists AWS - Amazon Web Service
[Terraform] – Terraform Beginner – Lesson 2: Working with Terraform. AWS - Amazon Web Service

Comments (2) on “[AWS] Login Argocd via Cognito in AWS”

  1. Cata says:
    November 1, 2022 at 3:32 pm

    Very clear with great insights.
    Thanks!

    Reply
    1. nim says:
      November 1, 2022 at 9:54 pm

      I’m very happy when I see your comment.
      Thank you so much!

      Reply

Leave a Reply to nim Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Azure] The subscription is not registered to use namespace ‘Microsoft.ContainerService’ May 8, 2025
  • [Azure] Insufficient regional vcpu quota left May 8, 2025
  • [WordPress] How to add a Dynamic watermark on WordPress. May 6, 2025
  • [vnet/Azure] VNet provisioning via Terraform. April 28, 2025
  • [tracetcp] How to perform a tracert command using a specific port. April 3, 2025

Archives

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.