مواد پر جائیں

SSO کنفیگریشن کا حوالہ

سنگل سائن اَن سے جڑی ہر قابلِ کنفیگریشن چیز، ایک ہی جگہ۔ اقدار global.db کی sso_connections قطاروں میں رہتی ہیں (ڈیزائن ہی سے سرور بھر کے لیے)، اور ترتیبات → سرور → سنگل سائن آن یا sso.* RPC آپریشنز کے ذریعے ترمیم کی جاتی ہیں۔ محفوظ شدہ قطار ہی واحد حقیقت کا ماخذ ہے — CC_SAML_* / CC_OIDC_* ماحول کا کوئی راستہ نہیں (ایسا کنکشن جو دو جگہوں سے آ سکتا ہو، وہ ہے جس سے ترتیبات کی اسکرین اختلاف کر سکتی ہے)۔

فیلڈ کن پر لاگو ڈیفالٹ مطلب
enabled دونوں بند لاگ اِن اِس کنکشن کو استعمال کر سکتے ہیں
idpMetadataXml SAML — IdP کا EntityDescriptor XML (فعال کرنے کے لیے لازمی)
spEntityId SAML <origin>/saml ہماری اینٹٹی ID، جو اوریجن بدلنے پر پن کی جاتی ہے
emailAttribute SAML email ای میل رکھنے والا اٹریبیوٹ؛ ای میل کی شکل والا NameID متبادل ہے
displayNameAttribute SAML displayName ڈسپلے نام کا اٹریبیوٹ
groupsAttribute SAML groups گروپ ناموں کا اٹریبیوٹ
clockSkewSeconds SAML 90 مدتِ کار کی توثیق میں اسکیو کی چھوٹ
allowIdpInitiated SAML بند غیر طلب شدہ Responses قبول کریں (بغیر InResponseTo)
wantResponseSigned SAML بند Response کی جڑ کے دستخط لازمی کریں (ایسرشن کے دستخط ہمیشہ لازمی ہیں)
issuer OIDC — جاری کنندہ کا بنیادی URL (فعال کرنے کے لیے لازمی)
clientId OIDC — پبلک کلائنٹ کی آئی ڈی (فعال کرنے کے لیے لازمی)
clientSecret OIDC — صرف خفیہ کلائنٹس کے لیے؛ 0600 سیکرٹس فائل میں محفوظ، ڈیٹا بیس میں کبھی نہیں — RPC پر صرف لکھنے کے لیے (sso.getConfig بتاتا ہے کہ clientSecretPresent موجود ہے)
groupsClaim OIDC groups گروپ نام رکھنے والا کلیم
defaultRole دونوں member جب کوئی گروپ میپ نہ ہو تو کردار — کبھی owner نہیں
groupRoleMap دونوں {} گروپ → کردار؛ مالک کی میپنگز محفوظ کرتے وقت مسترد کر دی جاتی ہیں
autoMember دونوں آن پہلے لاگ اِن پر صارفین کو ہر ورک اسپیس میں خودکار شامل کریں
allowJit دونوں آن لاگ اِن پر نامعلوم صارفین کو پروویژن کریں

SSO کنکشنز ماحول سے سیڈ نہیں کیے جاتے۔ ایک باقی بچا پروسیس فلیگ براؤزر ہینڈ آف کے بارے میں ہے، کنکشن کی قطار کے نہیں:

ویری ایبل / فلیگ مطلب
--web-client-url / CC_SERVER_WEB_CLIENT_URL وہ اوریجن جہاں SSO کال بیکس براؤزر کو واپس بھیجتے ہیں (اسناد URL فریگمنٹ پر سفر کرتی ہیں)۔ سیٹ نہ ہونے پر ہینڈ آف اسی اوریجن پر رہتا ہے۔

خود جاری کنندہ کا URL لازماً https ہونا چاہیے (http صرف لوپ بیک جاری کنندگان localhost، 127.0.0.1 اور ::1 کے لیے قبول کیا جاتا ہے)۔

اینڈ پوائنٹ تصدیق مقصد
GET /saml/login?relay=… کوئی نہیں (redirect) SP سے شروع ہونے والا لاگ اِن شروع کریں؛ relay=desktop ایپ کو ہینڈ آف کرتا ہے، relay=web-popup منتظر کنیکٹ ٹیب کو postMessages کرتا ہے (جو اپنا client_origin قرار دیتا ہے، اور یہ صرف اُس وقت مانا جاتا ہے جب اوریجن کی اجازت فہرست اُس پر بھروسا کرے)
POST /saml/acs کوئی نہیں (IdP POST) ایسرشن کنزیومر — توثیق کرتا ہے، پروویژن کرتا ہے، جاری کرتا ہے
GET /saml/metadata کوئی نہیں ہمارا SP EntityDescriptor
GET /oidc/login?relay=… / GET /oidc/callback کوئی نہیں OIDC کا راؤنڈ ٹرپ؛ relay=desktop ایپ کو ہینڈ آف کرتا ہے، relay=web-popup منتظر کنیکٹ ٹیب کو (وہی client_origin رواج)
GET /auth/providers کوئی نہیں، CORS * کنیکٹ اسکرین کی پروب: پیش کردہ SSO کنکشنز (id/kind/label) + pairingEnabled
/scim/v2/Users… Bearer (SCIM ٹوکن) Users کے لیے create/get/list+filter/PUT/PATCH/DELETE
/scim/v2/Groups Bearer صرف پڑھنے کے لیے؛ گروپ پش ڈیزائن ہی سے 501 جواب دیتا ہے
/scim/v2/ServiceProviderConfig Bearer اہلیت کی دستاویز

تمام sso.* آپریشنز سرور کے دائرے میں ہیں اور سرور مالک تک محدود ہیں (اِس انسٹال کا آپریٹر، ServerAuthority.serverOwner)۔ کسی ورک اسپیس کا مالک ہونا کافی نہیں؛ پیئرنگ اکیلی انہیں کبھی نہیں دیتی۔

آپریشن مقصد
sso.getConfig کسی ایک قسم کے لیے محفوظ شدہ کنکشن
sso.saveConfig توثیق کریں، محفوظ کریں اور لائیو لاگو کریں
sso.status فعال/کنفیگر شدہ فلیگز، SCIM ٹوکن کی موجودگی، کینونیکل اوریجن
sso.testConnection براؤزر راؤنڈ ٹرپ کے بغیر کنکشن جانچیں (SAML: میٹا ڈیٹا پارس + AuthnRequest بلڈ؛ OIDC: جاری کنندہ discovery)، اسکرین پر موجود غیر محفوظ اقدار کے اختیاری استعمال کے ساتھ
sso.spMetadata کسی اوریجن کے لیے SP EntityDescriptor جاری کریں
sso.setPairingEnabled دستی پیئرنگ کی اجازت دیں/روکیں (دعوتی کوڈز، پیئرنگ کیز)؛ جب کوئی کام کرنے والا SSO کنکشن موجود نہ ہو تو اِسے بند کرنے سے انکار لاک آؤٹ سے بچاتا ہے
sso.sessionPolicy انسٹال کی ڈیوائس اسناد کی زیادہ سے زیادہ عمر اور آئیڈل ٹائم آؤٹ پڑھیں (منٹ میں؛ 0 = سیٹ نہیں)
sso.setSessionPolicy وہ حدود سیٹ کریں؛ ڈیوائس چیک پر لاگو ہوتی ہیں، کلائنٹس کو بتائی نہیں جاتیں
sso.scimRegenerateToken SCIM bearer ٹوکن بنائیں + واپس دیں (ایک بار)

cc_saml_verify_response کی ناکامیاں ایک مستحکم کوڈ لے کر آتی ہیں:

کوڈ مطلب
signature دستخط غائب/ناقابلِ بھروسا/چھیڑے گئے، یا کوئی ممنوع الگورتھم/ٹرانسفارم
expired NotBefore/NotOnOrAfter سے باہر (اسکیو سے زیادہ)
audience مخاطب کی پابندی ہمارا نام نہیں لیتی
destination ریسپانس کی منزل ہمارا ACS نہیں
request_match InResponseTo کسی زیر التواء درخواست سے مماثل نہیں، یا غیر طلب شدہ جب کہ ممنوع ہو
issuer جاری کنندہ کنفیگر شدہ IdP نہیں
recipient سبجیکٹ کی تصدیق کا وصول کنندہ ہمارا ACS نہیں
malformed XML/اسکیما سطح کی ناکامی
status IdP کا بتایا ہوا status، Success نہیں تھا
invalid / internal کوئی بھی اور / seam کی ناکامی
  • sso_connections (global.db) — فی قسم ایک قطار، ڈیزائن ہی سے ورک اسپیسوں کے پار۔
  • users.sso_subject + users.sso_issuer — فراہم کنندہ سبجیکٹ کا پن، جو (issuer, subject) کے حساب سے پارشل انڈیکس کے ذریعے یکتا ہے۔
  • users.deactivated_at — SCIM ڈی ایکٹیویشن کا اسٹیمپ۔
  • SCIM bearer ٹوکن اور OIDC کلائنٹ سیکرٹ 0600 سیکرٹس فائل میں رہتے ہیں، ڈیٹا بیس میں کبھی نہیں۔