OpenID Connect (OIDC), OAuth 2.0 üzerine inşa edilmiş bir kimlik doğrulama ve yetkilendirme protokolüdür ve öncelikle tek oturum açma (SSO) uygulamak için kullanılır. Bir ASM güvenlik ilkesinde OIDC SSO yapılandırarak Alibaba Cloud IDaaS veya diğer OIDC uyumlu kimlik sağlayıcıları (IdP) aracılığıyla kullanıcıların birden çok uygulamaya erişmek için yalnızca bir kez oturum açmasını sağlayabilirsiniz. Bu yaklaşım, uygulamaların kendisinde değişiklik yapmayı gerektirmez; bu sayede uygulama güvenliği artırılır ve geliştirme ile yönetim süreçleri basitleştirilir.
Ön koşullar
Bir giriş ağ geçidi dağıtmış ve adresini edinmiş olmanız gerekir.
-
Aşağıdaki yolların erişilebilir olduğundan emin olmak için bir ağ geçidi kuralı ve sanal hizmet oluşturmuş olmanız gerekir. Daha fazla bilgi için Istio kaynaklarını kullanarak sürümler arasında trafiği yönlendirme konusundaki 1-3. adımlara bakın.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.js -
Bir kimlik sağlayıcı (IdP) yapılandırmış olmanız gerekir. Talimatlar için 1. Adım ve 2. Adım bölümlerine bakın: Hizmet kafesindeki uygulamalar için SSO'yu etkinleştirmek üzere ASM'yi Alibaba Cloud IDaaS ile entegre etme.
IdP yapılandırıldıktan sonra, Adım5 içindeki yapılandırma için gerekli olan aşağıdaki bilgilere sahip olursunuz.
redirect uri: http://${GATEWAY_ADDRESS}/oauth2/callback issuer: https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id: app_ml5tzapsl7zmfo53wb3nwk**** client secret: CSCfHeZ1nyvfMWyKHtE8ZRdif7j89dv9CvmJLurtGC****
Yordam
Bu konuda örnek olarak Alibaba Cloud IDaaS'tan bir IdP kullanılmaktadır. Kendi yönetiminizdeki bir OIDC hizmeti kullanıyorsanız bkz. Hizmet kafesindeki uygulamalar için SSO'yu etkinleştirmek üzere ASM'yi Keycloak ile entegre etme.
ASM konsolu üzerinde oturum açın. Sol taraftaki gezinme bölmesinde seçeneklerini seçin.
Mesh Management sayfasında ASM örneğinin adını tıklayın. Sol taraftaki gezinme bölmesinde seçeneklerini seçin.
ASMSecurityPolicy sayfasında Create öğesini tıklayın.
Create ASMSecurityPolicy iletişim kutusunda OIDC Single Sign-On seçeneğini tıklayın ve ardından OK düğmesini tıklayın.
-
OIDC Config sihirbazında parametreleri yapılandırın ve Next düğmesini tıklayın.
Aşağıdaki tabloda bu örnek için kullanılan parametreler açıklanmaktadır.
Parameter
Description
ASMSecurityPolicyName
Adı test-oidc olarak ayarlayın.
Redirect addressUse ingressgateway IP address veya Customized Domain seçeneklerinden birini seçebilirsiniz. Bu örnekte Use ingressgateway IP address seçeneğini belirleyin ve ardından http ile ingressgateway öğelerini seçin.
Callback Address
Yönlendirme URI'si.
OIDC Issuer URL
OIDC sağlayıcısını tanımlayan ve doğrulayan URL.
Client ID
IdP tarafından sağlanan istemci kimliği.
Client Secret
IdP tarafından sağlanan istemci gizli anahtarı.
Cookie Secret
Güvenli çerezler için bir tohum değeridir. Base64 kodlaması desteklenir.
Cookie Expire
Çerezin geçerlilik süresi. 0 değeri, çerezin hiçbir zaman sona ermeyeceğini belirtir.
Cookie refresh interval
Çerezin yenilenme aralığı. 0 değeri yenilemeyi devre dışı bırakır.
ScopesAlınacak kapsamları belirtin. Belirtilen kapsamlar yayıncı tarafından desteklenmelidir.
Kapsamlar hakkında daha fazla bilgi için bkz. Hizmet kafesindeki uygulamalar için SSO'yu etkinleştirmek üzere ASM'yi Alibaba Cloud IDaaS ile entegre etme.
Bu örnekte Cookie expiration değerini
3600saniye, Cookie refresh interval değerini600saniye olarak ayarlayın ve Scopes için openid ile phone seçeneklerini seçin. -
Workload and Match Rules sihirbazında Add Workload Group düğmesini tıklayın. New Workload Group iletişim kutusunda parametreleri yapılandırın, OK düğmesini tıklayın ve ardından Submit düğmesini tıklayın.
Aşağıdaki tabloda bu örnek için kullanılan parametreler açıklanmaktadır.
Parameter
Description
Workload Group Name
Adı test-policy olarak ayarlayın.
Workload List
Varsayılan olarak, önceki adımda Redirect address için yapılandırılan ağ geçidi seçilir ve değiştirilemez. Farklı bir iş yükü seçmek için OIDC Config sihirbazına geri dönün ve Redirect address bilgilerini değiştirin.
NotOIDC Config sihirbazında Redirect address için Customized Domain seçeneğini seçtiyseniz aşağıdaki adımları uygulayın:
-
New Workload Group iletişim kutusunda Add Workload düğmesini tıklayın ve Gateway Scope seçeneğini belirleyin.
-
Select workloads bölümünde hedef iş yükünü seçin,
simgesini tıklayarak onu selected alanına taşıyın ve ardından OK düğmesini tıklayın.
Match Rule List
Match Mode için iki seçenek bulunur:
-
Auth If Matched: Belirtilen kurallarla eşleşen istekler için kimlik doğrulama gerektirir.
-
Bypass Auth If Matched: Kurallarla eşleşen isteklere kimlik doğrulama olmadan erişilebilir.
Bu örnekte Match Mode değerini Auth If Matched olarak, Match Mode değerini ise Custom Matching Rules olarak ayarlayın. Ardından, /static ve /api ile başlayan yollar için OIDC kimlik doğrulaması gerektiren kurallar eklemek amacıyla Add Match Rule düğmesini tıklayın.
-
Kural 1: Path seçeneğini etkinleştirin ve değeri /static/* olarak ayarlayın.
-
Kural 2: Path seçeneğini etkinleştirin ve değeri /api/* olarak ayarlayın.
İlke oluşturulduktan sonra, Complete adımında ASM güvenlik ilkesinin başarıyla oluşturulduğu bilgisi görüntülenir. Oluşturulan kaynakları görüntülemek için View YAML düğmesini tıklayabilir veya yeni güvenlik ilkesini görüntülemek üzere Complete düğmesini tıklayarak ASMSecurityPolicy sayfasına dönebilirsiniz.
-
-
OIDC SSO yapılandırmasını doğrulayın.
-
Bir web tarayıcısında aşağıdaki URL'lere sırayla erişin.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.jsAşağıdaki sonuçlar, OIDC SSO yapılandırmasının çalıştığını doğrular:
/productpageile başlayan yollara yapılan isteklere kimlik doğrulama olmadan erişilebilir. BookInfo örnek uygulamasının ürün sayfasına eriştiğinizde The Comedy of Errors adlı kitabın özeti görüntülenir./apive/staticile başlayan yollara yapılan istekler kimlik doğrulama gerektirir. Bu yollara erişirken Alibaba Cloud IDaaS oturum açma sayfasına yönlendirilirsiniz. Kimlik doğrulaması yapmak için Account, phone, or email ve Password metin kutularına kimlik bilgilerinizi girin ve ardından Log On düğmesini tıklayın.
-
OIDC SSO yapılandırmasını değiştirin.
ASMSecurityPolicy sayfasında hedef OIDC güvenlik ilkesini bulun ve Operator sütununda edit seçeneğini tıklayın.
OIDC Config sihirbazında Next düğmesini tıklayın.
-
Workload and Match Rules sihirbazında hedef iş yükü grubunu bulun ve Operator sütununda edit seçeneğini tıklayın. Yapılandırmaları değiştirin, OK düğmesini tıklayın ve ardından Submit düğmesini tıklayın.
Aşağıdaki tabloda bu örnek için kullanılan parametreler açıklanmaktadır.
Parameter
Description
Match Mode
Bypass Auth If Matched seçeneğini belirleyin.
Matching Rules
Aşağıdaki kuralları yapılandırmak için Add Match Rule düğmesini tıklayın. Bu yapılandırma, /productpage ve /static ile başlayan yollara yapılan isteklerin OIDC kimlik doğrulamasını atlamasını sağlar.
-
Kural 1: Path seçeneğini etkinleştirin ve değeri /productpage olarak ayarlayın.
-
Kural 2: Path seçeneğini etkinleştirin ve değeri /static/* olarak ayarlayın.
-
-
Değişiklikleri doğrulamak için tarayıcınızda yeni bir gizli pencere açın ve aşağıdaki URL'lere erişin.
http://${GATEWAY_ADDRESS}/productpage http://${GATEWAY_ADDRESS}/api/v1/products/1 http://${GATEWAY_ADDRESS}/static/jquery.min.jsAşağıdaki sonuçlar, değiştirilen yapılandırmanın çalıştığını doğrular.
/productpageve/staticile başlayan yollara yapılan isteklere kimlik doğrulama olmadan erişilebilir./apiile başlayan yollara yapılan istekler kimlik doğrulama gerektirir.
-
İlgili belgeler
API erişimi, anahtar döndürme, IDaaS'ın farklı OIDC modlarını desteklemesi ve IDaaS ile uygulama tarafındaki yapılandırmalar gibi OIDC uygulama ayarları hakkında daha fazla bilgi için bkz. Temel yapılandırmalar, Tek oturum açma için genel talimatlar, OIDC SSO yapılandırmaları ve OIDC id_token uzantı değeri belirtimleri.
IDaaS SSO ile bir uygulamada oturum açtıktan sonra, ana IDaaS oturumunu sonlandırmak için uygulamadan genel bir oturum kapatma işlemi başlatabilirsiniz. Bu işleme Tek Oturum Kapatma (SLO) denir. Daha fazla bilgi için bkz. Tek Oturum Kapatma (SLO).