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
    • Helm Chart
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log & Monitor
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[AWS] Login Argocd via Cognito in AWS

Posted on October 2, 2022October 26, 2022 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

  • 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

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

[AWS] What’s serverless? This is Lambda. AWS - Amazon Web Service
[ElastiCache] Provisioning Redis on AWS so quickly by terraform AWS - Amazon Web Service
[EKS] Checking your EKS cluster that is working efficiently. AWS - Amazon Web Service
[AWS] Solutions Architect Professional: Lesson 2 – Security AWS - Amazon Web Service
[AWS] Create EKS Cluster and EKS Node Groups in Public and Private Subnets AWS - Amazon Web Service
[Github-Action] Let’s use GitHub Action to build and push the docker image to the docker hub. 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 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

  • [Prometheus/Grafana] Install Prometheus and Grafana on ubuntu. March 27, 2023
  • [Kong Gateway] WebSocket connection failed March 26, 2023
  • [Nextcloud] Can’t download files to have a size bigger than 2Gi on NextCloud – RaspBerry March 24, 2023
  • [Datadog] Using DataDog to monitor all services on kubernetes March 19, 2023
  • [Metrics Server] Failed to make webhook authorizer request: the server could not find the requested resource March 17, 2023

Archives

  • 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
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • Golang
    • Jquery & JavaScript
    • Laravel
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
    • Longhorn – Storage
    • MetalLB
    • Vault
    • VictoriaMetrics
  • Log & Monitor
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2023 NimTechnology.