ستاسو د LDAP سرور سره Kubernetes وصل کولو او د کاروونکو او ډلو واردات تنظیم کولو لپاره د کیکلوک کارولو څرنګوالي په اړه یو کوچنی ښوونیز. دا به تاسو ته اجازه درکړي چې د خپلو کاروونکو لپاره RBAC تنظیم کړئ او د کوبرنیټس ډشبورډ او نورو غوښتنلیکونو خوندي کولو لپاره auth-proxy وکاروئ چې نه پوهیږي چې څنګه ځان ته اجازه ورکړي.
Keycloak نصب
راځئ فرض کړئ چې تاسو دمخه د LDAP سرور لرئ. دا کیدی شي فعال لارښود، FreeIPA، OpenLDAP یا هر څه وي. که تاسو د LDAP سرور نلرئ ، نو په اصولو کې تاسو کولی شئ په مستقیم ډول د کیکلوک انٹرفیس کې کارونکي رامینځته کړئ ، یا د عامه ODc چمتو کونکي (ګوګل ، ګیتوب ، ګیتلاب) وکاروئ ، پایله به نږدې ورته وي.
له هرڅه دمخه ، راځئ چې پخپله کیکلوک نصب کړو ، نصب کول په جلا توګه ترسره کیدی شي ، یا مستقیم د کبرنیټس کلستر ته ، د یوې قاعدې په توګه ، که تاسو د کوبرنیټس ډیری کلسترونه ولرئ ، نو دا به په جلا توګه نصب کول اسانه وي. له بلې خوا، تاسو کولی شئ تل وکاروئ
د کیکلوک ډیټا ذخیره کولو لپاره ، تاسو به ډیټابیس ته اړتیا ولرئ. ډیفالټ دی h2
(ټول معلومات په محلي توګه زیرمه شوي)، مګر دا د کارولو امکان هم لري postgres
, mysql
او یا mariadb
.
که تاسو لاهم پریکړه وکړئ چې کیکلوک په جلا توګه نصب کړئ، تاسو کولی شئ نور تفصيلي لارښوونې په کې ومومئ
د فدراسیون تشکیل
لومړی، راځئ چې یوه نوې سیمه جوړه کړو. سیمه زموږ د غوښتنلیک ځای دی. هر غوښتنلیک کولی شي د مختلف کاروونکو او اختیار تنظیماتو سره خپله ساحه ولري. د ماسټر اصلیت پخپله د کیکلوک لخوا کارول کیږي او د بل څه لپاره یې کارول غلط دي.
ټیله کول سیمه اضافه کړئ
انتخاب
ارزښت
نوم
kubernetes
نوم څرګند کړه
Kubernetes
د HTML ښودلو نوم
<img src="https://kubernetes.io/images/nav_logo.svg" width="400" >
Kubernetes په ډیفالټ ډول ګوري چې ایا د کارونکي بریښنالیک تایید شوی یا نه. څرنګه چې موږ خپل LDAP سرور کاروو، دا چک به تل بیرته راستانه شي false
. راځئ چې په Kubernetes کې د دې ترتیب استازیتوب غیر فعال کړو:
د پیرودونکي ساحه -> enamel -> نقشه کونکي -> بریښنالیک تایید شوی (ړنګول)
اوس راځئ چې فدراسیون جوړ کړو، د دې لپاره موږ ته ځو:
د کارونکي فدراسیون -> چمتو کونکی اضافه کړئ… -> ldap
دلته د FreeIPA لپاره یو مثال ترتیب دی:
انتخاب
ارزښت
د کنسول ښودلو نوم
freeipa.example.org
پلورونکي
Red Hat Directory Server
د UUID LDAP خاصیت
ipauniqueid
د پیوستون URL
ldaps://freeipa.example.org
کارن DN
cn=users,cn=accounts,dc=example,dc=org
DN تړل
uid=keycloak-svc,cn=users,cn=accounts,dc=example,dc=org
بانډ اعتبار
<password>
د کربروس تصدیق ته اجازه ورکړئ:
on
کربروس سیمه:
EXAMPLE.ORG
د سرور پرنسپل:
HTTP/[email protected]
کلیدي ټب:
/etc/krb5.keytab
کارن keycloak-svc
باید مخکې له مخکې زموږ په LDAP سرور کې جوړ شي.
د فعال لارښود په حالت کې، په ساده ډول غوره کړئ پلورونکی: فعاله لارښود او اړین ترتیبات به په اتوماتيک ډول په فورمه کې داخل شي.
ټیله کول Save
اوس راځئ چې پرمخ لاړ شو:
د کارونکي فدراسیون -> freeipa.example.org -> نقشه کونکي -> اول نوم
انتخاب
ارزښت
د Ldap ځانګړتیاوې
givenName
اوس د ګروپ نقشه کول فعال کړئ:
د کارونکي فدراسیون -> freeipa.example.org -> نقشه کونکي -> جوړول
انتخاب
ارزښت
نوم
groups
د نقشې ډول
group-ldap-mapper
د LDAP ګروپونه DN
cn=groups,cn=accounts,dc=example,dc=org
د کارن ګروپ د ترلاسه کولو ستراتیژي
GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE
دا د فدراسیون تنظیم بشپړوي، راځئ چې د پیرودونکي تنظیم کولو ته لاړ شو.
د پیرودونکي تنظیم کول
راځئ یو نوی پیرودونکی جوړ کړو (یو اپلیکیشن چې کاروونکي به د کیکلوک څخه ترلاسه کړي). مخکې شه:
مشتريان -> جوړول
انتخاب
ارزښت
د پیرودونکي پیژند
kubernetes
د لاسرسي ډول
confidenrial
د روټ URL
http://kubernetes.example.org/
د اعتبار وړ ریډیریټ URIs
http://kubernetes.example.org/*
د اډمین URL
http://kubernetes.example.org/
موږ به د ګروپونو لپاره یوه ساحه هم جوړه کړو:
د پیرودونکي ساحه -> جوړول
انتخاب
ارزښت
کېنډۍ
No template
نوم
groups
بشپړ ګروپ لاره
false
او د دوی لپاره نقشه جوړه کړئ:
د پیرودونکي ساحه -> ډلو -> نقشه کونکي -> جوړول
انتخاب
ارزښت
نوم
groups
د نقشې ډول
Group membership
د ټکن ادعا نوم
groups
اوس موږ اړتیا لرو چې زموږ د مراجعینو په ساحه کې د ګروپ نقشه فعاله کړو:
مشتريان -> کبرنیټس -> د پیرودونکي ساحه -> د ډیفالټ پیرودونکي ساحې
موږ غوره کوو ډلو в د مراجعینو شتون شتون لريټک غوره شوی اضافه کړئ
اوس راځئ چې زموږ د غوښتنلیک تصدیق تنظیم کړو، لاړ شئ:
مشتريان -> کبرنیټس
انتخاب
ارزښت
اجازه ورکول فعال شوي
ON
راځئ چې فشار راوړو ساتل او دا د پیرودونکي تنظیم بشپړوي، اوس په ټب کې
مشتريان -> کبرنیټس -> اعتبارونه
تاسو ترلاسه کولی شئ پټې کوم چې موږ به وروسته وکاروو.
د Kubernetes ترتیب کول
د OIDC واک لپاره د کبرنیټس تنظیم کول خورا کوچني دي او یو څه خورا پیچلي ندي. ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ د خپل OIDC سرور CA سند دننه کړئ /etc/kubernetes/pki/oidc-ca.pem
او د کیوب اپیسرور لپاره اړین اختیارونه اضافه کړئ.
د دې کولو لپاره، تازه کړئ /etc/kubernetes/manifests/kube-apiserver.yaml
په خپلو ټولو بادارانو:
...
spec:
containers:
- command:
- kube-apiserver
...
- --oidc-ca-file=/etc/kubernetes/pki/oidc-ca.pem
- --oidc-client-id=kubernetes
- --oidc-groups-claim=groups
- --oidc-issuer-url=https://keycloak.example.org/auth/realms/kubernetes
- --oidc-username-claim=email
...
او په کلستر کې د kubeadm تشکیل هم تازه کړئ ترڅو د تازه کولو پرمهال دا تنظیمات له لاسه ورنکړي:
kubectl edit -n kube-system configmaps kubeadm-config
...
data:
ClusterConfiguration: |
apiServer:
extraArgs:
oidc-ca-file: /etc/kubernetes/pki/oidc-ca.pem
oidc-client-id: kubernetes
oidc-groups-claim: groups
oidc-issuer-url: https://keycloak.example.org/auth/realms/kubernetes
oidc-username-claim: email
...
دا د Kubernetes ترتیب بشپړوي. تاسو کولی شئ دا مرحلې په خپلو ټولو Kubernetes کلسترونو کې تکرار کړئ.
ابتدايي واک ورکول
د دې ګامونو وروسته، تاسو به دمخه د OIDC اجازه ترتیب سره د Kubernetes کلستر ولرئ. یوازینی ټکی دا دی چې ستاسو کاروونکي لا تر اوسه د مراجعینو ترتیب نه لري، او همدارنګه د دوی خپل kubeconfig. د دې ستونزې د حل لپاره، تاسو اړتیا لرئ چې د بریالیتوب واک وروسته کاروونکو ته د kubeconfig اتوماتیک صادرول تنظیم کړئ.
د دې کولو لپاره ، تاسو کولی شئ ځانګړي ویب غوښتنلیکونه وکاروئ چې تاسو ته اجازه درکوي د کارونکي تصدیق کړئ او بیا بشپړ شوی کیوب کنفګ ډاونلوډ کړئ. یو له خورا اسانه دی
د Kuberos تنظیم کولو لپاره، دا کافی دی چې د kubeconfig لپاره ټیمپلیټ تشریح کړئ او د لاندې پیرامیټونو سره یې چل کړئ:
kuberos https://keycloak.example.org/auth/realms/kubernetes kubernetes /cfg/secret /cfg/template
د نورو جزیاتو لپاره وګورئ
دا هم د کارولو امکان لري
پایله کیوب کنفګ په سایټ کې چیک کیدی شي users[].user.auth-provider.config.id-token
له خپل kubeconfig څخه په سایټ کې فارم ته لاړ شئ او سمدلاسه لیږد ترلاسه کړئ.
د RBAC ترتیب
کله چې د RBAC تنظیم کول، تاسو کولی شئ دواړه کارن نوم ته مراجعه وکړئ (فیلډ name
په jwt ټوکن کې) او د کاروونکو یوې ډلې لپاره (فیلډ groups
په jwt نښه کې). دلته د یوې ډلې لپاره د اجازې تنظیم کولو یوه بیلګه ده kubernetes-default-namespace-admins
:
kubernetes-default-namespace-admins.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: default-admins
namespace: default
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubernetes-default-namespace-admins
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: default-admins
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: kubernetes-default-namespace-admins
د RBAC لپاره نور مثالونه موندل کیدی شي
د مستند پراکسي تنظیم کول
په زړه پوری پروژه ده
dashboard-proxy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: kubernetes-dashboard-proxy
spec:
replicas: 1
template:
metadata:
labels:
app: kubernetes-dashboard-proxy
spec:
containers:
- args:
- --listen=0.0.0.0:80
- --discovery-url=https://keycloak.example.org/auth/realms/kubernetes
- --client-id=kubernetes
- --client-secret=<your-client-secret-here>
- --redirection-url=https://kubernetes-dashboard.example.org
- --enable-refresh-tokens=true
- --encryption-key=ooTh6Chei1eefooyovai5ohwienuquoh
- --upstream-url=https://kubernetes-dashboard.kube-system
- --resources=uri=/*
image: keycloak/keycloak-gatekeeper
name: kubernetes-dashboard-proxy
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /oauth/health
port: 80
initialDelaySeconds: 3
timeoutSeconds: 2
readinessProbe:
httpGet:
path: /oauth/health
port: 80
initialDelaySeconds: 3
timeoutSeconds: 2
---
apiVersion: v1
kind: Service
metadata:
name: kubernetes-dashboard-proxy
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: kubernetes-dashboard-proxy
type: ClusterIP
سرچینه: www.habr.com