ohm-s
(Omar)
13 سبتمبر 2021، 12:29م
1
مرحباً
أقوم بدمج نظام تسجيل الدخول الموحد (SSO) الخاص بـ Discourse، ولكنني أواجه مشكلة حيث يحصل المستخدم الذي يتم إنشاؤه على صلاحيات المسؤول رغم أن حمولة SSO تشير صراحةً إلى أنه لا ينبغي أن يحصل عليها.
أستخدم أحدث إصدار تجريبي: 2.8.0.beta6 [ f3273bd43e ]
إليك مثال:
رابط SSO:
https://community.bloom.pm/session/sso_login?sso=ZXh0ZXJuYWxfaWQ9NjEzZjJmMzMzNWZkODc4NWU4Mjk4Y2JhJm5vbmNlPThiNzdjM2JlMDBmMThkMjYwMDhkYjkxOWQxODA4MzAyJmVtYWlsPW9tYXIlMkJtZW1iZXI0JTQwYmxvb20ucG0mdXNlcm5hbWU9bWVtYmVyNCZuYW1lPW1lbWJlcjQmYWRtaW49ZmFsc2UmbW9kZXJhdG9yPWZhbHNlJnN1cHByZXNzX3dlbGNvbWVfbWVzc2FnZT10cnVl&sig=fcb3e5d3d4b8c39078753cb495f4c3781dcca1f022851a2bdff2015e7fa489b1
عند فك تشفير حمولة SSO نحصل على:
external_id=613f2f3335fd8785e8298cba&nonce=8b77c3be00f18d26008db919d1808302&email=omar%2Bmember4%40bloom.pm&username=member4&name=member4&admin=false&moderator=false&suppress_welcome_message=true
ومع ذلك، تم إنشاء العضو member4 بصلاحيات المسؤول.
IAmGav
(Gavin Perch)
13 سبتمبر 2021، 12:33م
2
هل عنوان البريد الإلكتروني لـ member4 موجود في ملف الإعدادات تحت developer؟
DISCOURSE_DEVELOPER_EMAILS
أي عنوان بريد إلكتروني مدرج هناك سيصبح تلقائيًا مسؤولًا.
إعجابَين (2)
ohm-s
(Omar)
13 سبتمبر 2021، 1:08م
3
لقد جربت للتو omar+member9@306.dev وهو نطاق مختلف تمامًا وليس مدرجًا في DISCOURSE_DEVELOPER_EMAILS، لكن المشكلة لا تزال قائمة، حيث حصل المستخدم على صلاحيات المسؤول.
مفتاح API الذي أستخدمه لتوقيع SSO يخص حساب المسؤول، هل يؤثر ذلك على شيء ما؟
michaeld
(Michael - Communiteq)
13 سبتمبر 2021، 8:30م
4
هذا لا يبدو صحيحًا؟ هل يمكنك شرح ما تفعله؟
إعجاب واحد (1)
ohm-s
(Omar)
14 سبتمبر 2021، 9:07ص
5
لقد قمت للتو بدمج SSO في موقع Discourse موجود، وأواجه هذا السلوك.
يعمل الموقع باستخدام Docker (مستودع discourse_docker).
لقد سجلت الدخول إلى الحاوية ووصلت إلى قاعدة بيانات PostgreSQL، وتظهر علامة المستخدم كمسؤول (admin) كـ false في قاعدة البيانات، لذا لا يتم تحديثها بواسطة طريقة “make_developer_admin”.
ما الذي قد يكون موجودًا أيضًا؟
ohm-s
(Omar)
14 سبتمبر 2021، 9:11ص
6
أنا أيضًا أستخدم هذه الإضافات
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/angusmcleod/discourse-events.git
- git clone https://github.com/gdpelican/babble.git
- git clone https://github.com/davidtaylorhq/discourse-whos-online.git
- git clone https://github.com/discourse/discourse-checklist.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/BeXcellent/discourse-allowiframe.git
IAmGav
(Gavin Perch)
14 سبتمبر 2021، 9:35ص
7
قد ترغب في تمكين التصحيح لاستكشاف الأخطاء وإصلاحها
لمساعدة في تصحيح DiscourseConnect ، يمكنك تمكين إعداد الموقع verbose_discourse_connect_logging. عند تمكين هذا الإعداد، ستظهر تشخيصات غنية في YOURSITE.com/logs. تأكد من مربع التنبيهات في أسفل YOURSITE.com/logs.
مرجع: Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso)
ohm-s
(Omar)
14 سبتمبر 2021، 11:28ص
8
المستخدم ليس مسؤولاً، ولكن هناك مشكلة أعمق، لقد أضفت بعض السجلات
يبدو أن هناك خطأً في التصفية باستخدام واجهة برمجة تطبيقات ActiveRecord، لقد سجلت الاستعلامات ولا أرى معرف المستخدم في مرشح WHERE، لذا يبدو أنها تسحب بيانات الإشعارات على مستوى النظام.
أعتقد أن نفس الشيء يحدث مع المنتديات/المواضيع، حيث يتجاهل بطريقة ما مرشح معرف المستخدم ويسترجع كل شيء.
كيف يمكنني إصلاح هذا؟
ohm-s
(Omar)
14 سبتمبر 2021، 11:28ص
9
نشر عنصر وسائط ثانٍ (بما أنني جديد)
ohm-s
(Omar)
14 سبتمبر 2021، 11:29ص
10
نشر عنصر وسائط ثالث - السجلات
ohm-s
(Omar)
14 سبتمبر 2021، 12:20م
11
يبدو أن user.notifications لا يضيف التصفية. لقد أضفت شرط where يدويًا في الكود، وقد تم حل المشكلة في عرض إشعارات النافذة المنبثقة، لكن صفحة التفاصيل تستخدم مسار كود مختلف، لذا لا تزال تعرض كل شيء. ما هو الحل الحقيقي؟
ohm-s
(Omar)
14 سبتمبر 2021، 12:31م
12
نسخة rails: 6.1.4.1
bundle exec gem list --local
*** الجواهر المحلية ***
actionmailer (6.1.4.1)
actionpack (6.1.4.1)
actionview (6.1.4.1)
actionview_precompiler (0.2.3)
active_model_serializers (0.8.4)
activejob (6.1.4.1)
activemodel (6.1.4.1)
activerecord (6.1.4.1)
activesupport (6.1.4.1)
addressable (2.8.0)
aws-eventstream (1.2.0)
aws-partitions (1.432.0)
aws-sdk-core (3.112.1)
aws-sdk-kms (1.44.0)
aws-sdk-s3 (1.96.1)
aws-sdk-sns (1.38.0)
aws-sigv4 (1.2.3)
barber (0.12.2)
bootsnap (1.8.1)
builder (3.2.4)
bundler (2.2.26)
byebug (11.1.3)
cbor (0.5.9.6)
chunky_png (1.4.0)
coderay (1.1.3)
colored2 (3.1.2)
concurrent-ruby (1.1.9)
connection_pool (2.2.5)
cose (1.2.0)
cppjieba_rb (0.3.3)
crass (1.0.6)
css_parser (1.10.0)
diffy (3.4.0)
discourse-ember-rails (0.18.6)
discourse-ember-source (3.12.2.3)
discourse-fonts (0.0.9)
ecma-re-validator (0.3.0)
email_reply_trimmer (0.1.13)
ember-data-source (3.0.2)
ember-handlebars-template (0.8.0)
ember-source (2.18.2)
erubi (1.10.0)
excon (0.85.0)
execjs (2.8.1)
exifr (1.3.9)
faraday (1.7.2)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
fast_blank (1.0.1)
fast_xs (0.8.0)
fastimage (2.2.5)
ffi (1.15.4)
fspath (3.1.2)
gc_tracer (1.5.1)
globalid (0.5.2)
guess_html_encoding (0.0.11)
hana (1.3.7)
hashie (4.1.0)
highline (2.0.3)
hkdf (0.3.0)
htmlentities (4.3.4)
http_accept_language (2.1.1)
i18n (1.8.10)
image_optim (0.30.0)
image_size (2.1.2)
in_threads (1.5.4)
jmespath (1.4.0)
jquery-rails (4.4.0)
json (2.5.1)
json_schemer (0.2.18)
jwt (2.2.3)
kgio (2.11.4)
libv8-node (15.14.0.1 x86_64-linux)
lograge (0.11.2)
logstash-event (1.2.02)
logstash-logger (0.26.1)
logster (2.9.7)
loofah (2.12.0)
lru_redux (1.1.0)
lz4-ruby (0.3.3)
mail (2.8.0.edge)
maxminddb (0.1.22)
memory_profiler (1.0.0)
message_bus (3.3.6)
method_source (1.0.0)
mini_mime (1.1.1)
mini_racer (0.4.0)
mini_scheduler (0.13.0)
mini_sql (1.1.3)
mini_suffix (0.3.2)
minitest (5.14.4)
msgpack (1.4.2)
multi_json (1.15.0)
multi_xml (0.6.0)
multipart-post (2.1.1)
mustache (1.1.1)
nio4r (2.5.8)
nokogiri (1.12.4 x86_64-linux)
oauth (0.5.6)
oauth2 (1.4.7)
oj (3.13.2)
omniauth (1.9.1)
omniauth-facebook (8.0.0)
omniauth-github (1.4.0)
omniauth-google-oauth2 (0.8.2)
omniauth-oauth (1.2.0)
omniauth-oauth2 (1.7.1)
omniauth-twitter (1.4.0)
openssl (2.2.0)
openssl-signature_algorithm (1.1.1)
optimist (3.0.1)
pg (1.2.3)
progress (3.6.0)
pry (0.13.1)
pry-byebug (3.9.0)
pry-rails (0.3.9)
public_suffix (4.0.6)
puma (5.4.0)
r2 (0.2.7)
racc (1.5.2)
rack (2.2.3)
rack-mini-profiler (2.3.3)
rack-protection (2.1.0)
rack-test (1.1.0)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.4.2)
rails_failover (0.7.3)
rails_multisite (3.1.0)
railties (6.1.4.1)
raindrops (0.19.2)
rake (13.0.6)
rbtrace (0.4.14)
rchardet (1.8.0)
redis (4.4.0)
redis-namespace (1.8.1)
regexp_parser (2.1.1)
request_store (1.5.0)
rinku (2.0.6)
rotp (6.2.0)
rqrcode (2.1.0)
rqrcode_core (1.2.0)
rtlit (0.0.5)
ruby-readability (0.7.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
sanitize (6.0.0)
sassc (2.0.1)
sassc-rails (2.1.2)
seed-fu (2.3.9)
sidekiq (6.2.2)
sprockets (3.7.2)
sprockets-rails (3.2.2)
sshkey (2.0.0)
stackprof (0.2.17)
thor (1.1.0)
tilt (2.0.10)
tzinfo (2.0.4)
uglifier (4.2.0)
unf (0.1.4)
unf_ext (0.0.7.7)
unicorn (6.0.0)
uri_template (0.7.0)
webpush (1.1.0)
xorcist (1.1.2)
zeitwerk (2.4.2)
ohm-s
(Omar)
16 سبتمبر 2021، 11:11ص
13
لقد قمت بإنشاء حاوية Docker جديدة من الصفر ونقلت الملفات/البيانات، وقد حلّ ذلك المشكلة
إعادة بناء الحاوية الموجودة لم تُجدِ نفعًا
#مُغلق
إعجاب واحد (1)