All Products
Search
Document Center

Alibaba Cloud Service Mesh:Integrasikan Alibaba Cloud IDaaS dengan ASM untuk single sign-on

Last Updated:Jun 22, 2026

Panduan ini menjelaskan cara menyiapkan single sign-on (SSO) untuk aplikasi dalam instans Alibaba Cloud Service Mesh (ASM).

Prasyarat

Informasi latar belakang

Banyak aplikasi memerlukan kontrol akses dan hanya memberikan akses kepada pengguna yang telah terotentikasi. Seiring kompleksitas sistem meningkat, single sign-on (SSO) menjadi solusi efektif yang memungkinkan pengguna masuk ke beberapa sistem hanya dengan satu akun. Layanan Otorisasi Kustom di ASM memungkinkan Anda menerapkan SSO untuk aplikasi mesh tanpa perubahan kode.

Menggunakan ASM untuk menerapkan SSO dapat mengurangi biaya refaktoring dan operasi serta pemeliharaan (O&M) aplikasi. Panduan ini menggunakan instans Alibaba Cloud IDaaS sebagai penyedia identitas (IdP) untuk mengaktifkan SSO bagi layanan dalam mesh. Alih-alih menyematkan logika autentikasi dan otorisasi ke dalam aplikasi, Anda dapat mengonfigurasi ASM untuk menggunakan layanan otorisasi kustom yang terintegrasi dengan Alibaba Cloud IDaaS atau penyedia identitas (IdP) lain yang kompatibel dengan OpenID Connect (OIDC) guna menangani alur otorisasi dan login. Setelah pengguna berhasil terotentikasi, permintaan beserta informasi identitas pengguna diteruskan ke aplikasi, yang kemudian dapat menjalankan logika bisnis berdasarkan identitas tersebut.

Konsep

Konsep

Deskripsi

IdP

Penyedia identitas (IdP) adalah layanan yang membuat, memelihara, dan mengelola identitas pengguna serta menyediakan layanan autentikasi. Misalnya, ketika Anda menggunakan akun Google untuk masuk ke aplikasi pihak ketiga, Google bertindak sebagai IdP.

OIDC

OpenID Connect (OIDC) adalah protokol autentikasi yang dibangun di atas kerangka OAuth 2.0. Untuk informasi selengkapnya, lihat OpenID Connect.

Scope

Dalam OIDC, scope menentukan atribut pengguna (seperti email dan informasi profil) yang boleh diakses oleh aplikasi. Selama proses autentikasi, IdP dapat meminta pengguna memberikan izin agar aplikasi mengakses scope tertentu dari data penggunanya.

Langkah 1: Buat instans IDaaS dan pengguna uji coba

  1. Masuk ke Konsol EIAM dan buat instans Alibaba Cloud IDaaS.

    Catatan

    Instans Alibaba Cloud IDaaS berfungsi sebagai sistem akun mandiri. Membuat instans sama dengan membuat sistem manajemen identitas independen.

  2. Di halaman EIAM, klik nama instans Alibaba Cloud IDaaS.

  3. Di panel navigasi sebelah kiri, pilih Account > Accounts and Orgs.

  4. Di halaman Account, klik tab Account, lalu klik Create User.

  5. Di panel Create User, masukkan informasi pengguna dan klik OK.

Langkah 2: Tambahkan dan konfigurasikan aplikasi OIDC

Aplikasi dalam instans Alibaba Cloud IDaaS Anda berfungsi sebagai antarmuka. Instans IDaaS dapat mengekspos antarmuka ini dengan berbagai cara untuk mengaktifkan SSO. Panduan ini menggunakan aplikasi OIDC untuk mendemonstrasikan prosesnya.

  1. Di panel navigasi sebelah kiri Konsol EIAM, klik Application Management.

  2. Di halaman Application Management, klik Add Application.

  3. Di halaman Add Application, klik tab Standard Protocols. Di kartu OIDC, klik Add Application.

  4. Di kotak dialog Add Application-OIDC, masukkan Application Name dan klik Add.

  5. Di halaman detail OIDC Application, pilih Sign-In > SSO.

  6. Di tab konfigurasi SSO, atur Redirect URIs. Klik Show Advanced Settings, pilih informasi pengguna yang ingin diperoleh di bagian scopes, lalu klik Save.

    Di panel navigasi sebelah kiri, klik Applications. Pilih aplikasi target Anda, klik tab Sign-in, lalu buka subtab SSO. scopes yang tersedia meliputi openid, email, phone, dan profile.

    Catatan

    Dalam contoh ini, Redirect URI diatur ke http://{IP_address_of_the_ingress_gateway}/oauth2/callback. Ganti {IP_address_of_the_ingress_gateway} dengan alamat IP aktual gerbang masuk Anda.

  7. Di halaman detail OIDC Application, pilih Sign-In > Authorize, lalu klik Authorize.

  8. Di kotak dialog Authorize, berikan izin kepada pengguna yang telah Anda buat di Langkah 1, lalu klik Confirm.

Setelah mengonfigurasi aplikasi OIDC, catat Issuer, client_id, dan client_secret. Informasi ini akan Anda perlukan untuk mengonfigurasi SSO di ASM.

  • Issuer: Dalam aplikasi OIDC Anda, nilai ini dapat diperoleh dari Sign-In > SSO > Application Settings. Issuer: Peroleh nilai ini dari bagian Application Configuration Information di bagian bawah halaman Login Access > Single Sign-On dalam aplikasi OIDC Anda. Bidang ini digunakan untuk memverifikasi sumber penerbitan token dan juga merupakan baseUrl untuk URL endpoint.

  • client_id dan client_secret: Di halaman detail aplikasi OIDC, temukan nilai-nilai ini di bagian General.

Langkah 3: Deploy dan ekspos aplikasi uji coba

Panduan ini menggunakan aplikasi httpbin untuk pengujian. Aplikasi ini membantu memeriksa detail permintaan, sehingga mempermudah verifikasi informasi yang diperoleh dari IdP setelah login berhasil.

  1. Gunakan YAML berikut untuk melakukan deploy aplikasi httpbin ke namespace default kluster ACK Anda.

    Konten YAML

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: httpbin
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: httpbin
      labels:
        app: httpbin
        service: httpbin
    spec:
      ports:
      - name: http
        port: 8000
        targetPort: 80
      selector:
        app: httpbin
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: httpbin
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: httpbin
          version: v1
      template:
        metadata:
          labels:
            app: httpbin
            version: v1
        spec:
          serviceAccountName: httpbin
          containers:
          - image: docker.io/kennethreitz/httpbin
            imagePullPolicy: IfNotPresent
            name: httpbin
            ports:
            - containerPort: 80
  2. Gunakan YAML berikut untuk mengonfigurasi resource Gateway untuk instans ASM Anda. Untuk informasi selengkapnya, lihat Kelola gateway Istio.

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: ingressgateway
      namespace: istio-system
    spec:
      selector:
        app: istio-ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 80
            protocol: HTTP
  3. Gunakan YAML berikut untuk menerapkan layanan virtual ke instans ASM Anda. Untuk informasi selengkapnya, lihat Kelola layanan virtual.

    Layanan virtual ini mendefinisikan rute default ke aplikasi httpbin.

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: ingressgateway-vs
      namespace: istio-system
    spec:
      gateways:
        - ingressgateway
      hosts:
        - '*'
      http:
        - name: default
          route:
            - destination:
                host: httpbin.default.svc.cluster.local
                port:
                  number: 8000
  4. Setelah mengonfigurasi Gateway dan layanan virtual, Anda dapat mengakses layanan httpbin dengan menjalankan perintah curl -I http://{IP_address_of_the_ingress_gateway}:80.

    Contoh output:

    curl -I http://{IP_address_of_the_ingress_gateway}:80
    HTTP/1.1 200 OK
    server: istio-envoy
    date: Fri, 19 Aug 2022 07:39:58 GMT
    content-type: text/html; charset=utf-8
    content-length: 9593
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 3

Langkah 4: Aktifkan otorisasi kustom dan konfigurasikan OIDC SSO

  1. Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih Mesh Security Center > Custom Authorization Service. Di halaman yang muncul, klik Define Custom Authorization Service.

  3. Di halaman Define External Authorization Service, klik tab OIDC Authz and Authn Service, konfigurasi parameter, lalu klik Create.

    Catatan

    Gunakan informasi aplikasi OIDC yang Anda peroleh di Langkah 2. Anda dapat menggunakan alamat IP gerbang masuk sebagai Redirect URI untuk login. Untuk informasi selengkapnya tentang cookie secret, lihat Generating a Cookie Secret.

  4. Gunakan KubeConfig kluster bidang data untuk menjalankan perintah berikut guna memperoleh nama domain layanan otorisasi eksternal OIDC.

    kubectl get svc -n istio-system|grep oauth2proxy|awk -F' ' '{print $1}'
  5. Gunakan YAML berikut untuk membuat layanan virtual yang menerima permintaan autentikasi dari gerbang masuk.

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: oauth2-vs
      namespace: istio-system
    spec:
      gateways:
        - ingressgateway
      hosts:
        - '*'
      http:
        - match:
            - uri:
                prefix: /oauth2
          name: oauth2
          route:
            - destination:
                host: # Nama domain layanan otorisasi eksternal yang diperoleh pada langkah sebelumnya.
                port:
                  number: 4180
    Penting

    Untuk mencegah konflik, jangan buat layanan virtual lain yang mencocokkan awalan path /oauth2.

Langkah 5: Buat kebijakan otorisasi

  1. Di halaman detail instans ASM, pilih Mesh Security Center > AuthorizationPolicy di panel navigasi sebelah kiri. Di halaman yang muncul, klik Create from YAML.

  2. Di halaman Create, pilih Namespaces dan Scenario Template. Masukkan YAML berikut, lalu klik Create.

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: oidc
      namespace: istio-system
    spec:
      action: CUSTOM
      provider:
        name: httpextauth-oidc  # Nama layanan otorisasi kustom yang dibuat pada langkah sebelumnya.
      rules:
        - {}
      selector:
        matchLabels:
          istio: ingressgateway
    Catatan

    Kebijakan otorisasi ini berlaku untuk semua permintaan yang dikirim ke gerbang masuk.

Langkah 6: Verifikasi hasil

  1. Di browser web, buka http://{IP_address_of_the_ingress_gateway}:80.

    Halaman login OAuth2 Proxy muncul, berisi tombol Sign in with OpenID Connect. Hal ini menunjukkan bahwa OAuth2 Proxy telah berhasil dideploy dan terintegrasi dengan OpenID Connect, serta SSO aktif.

  2. Klik Sign in with OpenID Connect.

    Hasil yang diharapkan: Halaman login Alibaba Cloud IDaaS muncul. Halaman tersebut berisi bidang input untuk Account name, mobile number, or email dan Password, serta tombol Log On. Ini mengonfirmasi bahwa konfigurasi OIDC SSO berfungsi.

  3. Di halaman login Alibaba Cloud IDaaS, masukkan kredensial pengguna uji coba yang Anda buat di Langkah 1 dan klik Log On.

    Hasil yang diharapkan: Setelah berhasil login, halaman dokumentasi API Swagger httpbin.org untuk versi 0.9.2 muncul. Halaman tersebut menampilkan deskripsi layanan, "A simple HTTP Request & Response Service," dan mencantumkan grup API seperti HTTP Methods, Auth, Status codes, dan Request inspection. Ini mengonfirmasi bahwa konfigurasi SSO Alibaba Cloud IDaaS valid.

  4. Klik Request inspection, lalu pilih /headers > Try it out > Execute.

    Hasil yang diharapkan: Setelah menjalankan permintaan, server mengembalikan kode status 200 OK. Badan respons mencakup bidang Authorization yang berisi Bearer JWT, yang menunjukkan bahwa otorisasi JWT berfungsi.

    {
      "headers": {
        "Accept": "application/json",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Authorization": "Bearer eyJraWQiOiJLRVkxM3d0ekhLSmdEbkFmd1lQR0RqemM5RFUzTkwSNXd1S0wiLC3hbGciOiJSUzI1NiJ9.eyJzdWIiOiJlc2VyVyX29xemw3Z3FQb2lrb2xtNG9xY29mMndlcGhtIiwinRpi-joiand0X2FhYWFkYXZ2aG12Y2JpdDRnbDVsNGNudDR5d2FwZDI3cnFkd2Z0eDI3cnFkZTByc2FtcnFkd2Z0ZDI3cnFkZTByc2FtIixxx.xxxb51hcGktY24taGFuZ3pobxxx.xxxMuY29xxx.3yiL2xxx.Fx3R1bjI1b3NkbG16Nmd0cWZxM2oycHpwZWZx-L2FwcF9tbDV0emFwc2w3em1mbzUzd2xxx.xxxaGFzaCI6IkUxcm9oRnlpR2FZYmJnTS.xxxtudHZpIiwiYXRf-IrODYgMTg2IDkxNzEgMjQ5MS.xxx.xxx.BanFbeM28p\nYp-aiEymtvy-QC-6VjohuSSi.xxx\nE9c3RTMntC66D7fxTGME2x.xxx.Et\nrwPRUTM-2AF74y2NVFtpNdkxbLenyz1duwTpeGANmgLGxxxJrZvKyNxBjAV6TZjGrUVVNICbU1_sg",
        "...": "..."
      }
    }
  5. Salin JWT dari token Bearer pada langkah sebelumnya dan uraikan dengan debugger JWT.

    Untuk informasi selengkapnya, lihat JWT.io.

    Hasil yang diharapkan: JWT yang diurai menunjukkan bahwa alg dalam HEADER adalah RS256. PAYLOAD berisi klaim standar ID Token OIDC, seperti sub, jti, iss (yang merupakan endpoint OIDC instans EIAM Anda), iat, nbf, exp, aud, at_hash, c_hash, email, email_verified, phone_number, phone_number_verified, name, preferred_username, dan updated_at. Ini mengonfirmasi bahwa JWT berisi informasi pengguna dari Alibaba Cloud IDaaS dan ASM telah berhasil memvalidasinya.