مرحباً بالجميع،
كنت أحاول تحديث تعيينات المجموعة تلقائيًا إذا تغيرت على جانب IDP. للأسف، يعمل هذا فقط إذا قام المستخدم بتسجيل الخروج ثم الدخول مرة أخرى، حيث يتم نقل التأكيدات فقط أثناء تسجيل الدخول حسب فهمي.
الهدف:
ما أود تحقيقه هو أن تأخذ Discourse (أو المكون الإضافي discourse-saml) في الاعتبار خيار “مدة صلاحية التأكيد” (Assertion Lifespan) وتعيد تقييم التأكيدات حسب الحاجة/التكوين من قبل IDP.
الإعداد:
إعداداتي هي كما يلي وهي تعمل حاليًا.
أنا أستخدم Keycloak كـ IDP المتصل بـ LDAP الذي يسحب منه تعيينات المجموعة.
تعمل Discourse بالإعدادات التالية:
DISCOURSE_SAML_TARGET_URL: https://auth.example.com/realms/example/protocol/saml
DISCOURSE_SAML_SYNC_GROUPS: true
DISCOURSE_SAML_GROUPS_FULLSYNC: true
DISCOURSE_SAML_GROUPS_LDAP_LEAFCN: true
تمت المحاولة بالفعل:
لقد حاولت بالفعل تغيير المجموعات وتسجيل خروج المستخدم وتسجيل دخوله مرة أخرى. هذا يعمل يدويًا بالنتيجة المرجوة.
ومع ذلك، فإن تشغيل خيار “مدة صلاحية التأكيد” (Assertion Lifespan) في Keycloak (انظر أدناه) لا يبدو أنه يغير تعيين المجموعة للمستخدم بعد إضافة/إزالة المجموعة للمستخدم في Keycloak/Ldap.
لقد كررت هذا عدة مرات وانتظرت نصف ساعة في كل مرة قمت فيها بتغيير تعيين المجموعة للمستخدم.
الوقت الوحيد الذي تم فيه تطبيق تغيير المجموعة الجديد كان عندما قام المستخدم بتسجيل الخروج وتسجيل الدخول مرة أخرى بالفعل.
تخمين:
أفترض أن المكون الإضافي discourse-saml (GitHub - discourse/discourse-saml: Support for SAML in Discourse) لا يعيد التحقق من التأكيد بعد تسجيل دخول المستخدم.
هل سيكون من الممكن تنفيذ هذه الميزة للمكون الإضافي saml؟
شكراً جزيلاً
باو لي
