موفرو المصادقة الخارجيون

يمكن تعريف عدة مزودي مصادقة خارجيين باستخدام أقسام [provider.x]:

[provider.1]
type = oidc
                            # Provider type, currently only oidc is available
name = OIDC Example
                            # Display name
issuer = example
                            # issuer of the tokens. Can be "google", "microsoft"
                            # or an arbitrary string for custom identity
                            # providers
icon = url('data:image/svg+xml;base64,...')
                            # Optional display icon. Can be either a remote or
                            # a data URL. If omitted, a default icon is used
                            # based on type and provider.
metadata_url = https://example.com/auth/realms/<realm>
                            # URL to get OIDC metadata from. Can be obtained
                            # from the provider.
                            # It usually contains a realm or tenant id.
client_id = <client-id>
                            # OIDC client secret. Can be obtained from the
                            # provider. Some providers call this "app id".
client_secret = <client-secret->
                            # OIDC client secret. Can be obtained from the
                            # provider. Some providers call this "secret value".
hidden = false
                            # it is possible to hide an authentication provider
                            # on the SKOOR Auth start page. This can be useful
                            # if e.g. normal users authenticate against a public
                            # provider and support employees against an internal
                            # one.
default_group = <group-name>
                            # if a default group is specified, all users
                            # authenticating against this provider will be
                            # automatically added to this group. This can be
                            # useful if the provider does not provide group information
                            # or if all users should be added to a specific group.

Microsoft Azure AD OpenID Connect

إدخال مزود المصادقة SKOOR

[provider.1]
type = oidc
name = Azure AD Example
issuer = microsoft
metadata_url = https://login.microsoftonline.com/<tenant-id>/v2.0
client_id = <app-id>
client_secret = <secret-value>

يتم تعيين الرمز تلقائيًا بناءً على اسم الجهة المصدرة.

الإعدادات المطلوبة في Azure AD

معرف مجموعة Azure لمطابقة المجموعة البعيدة في SKOOR:

للسماح للمستخدمين بتسجيل الدخول والحصول على الدور الصحيح المخصص لهم، يجب تكوين هذه المعرفات.
في المثال أدناه، سيحصل جميع المستخدمين في مجموعة Azure AD التي تحمل المعرف c2b2***** على دور المسؤول بعد تسجيل الدخول:

تسجيل التطبيق

في Azure Active Directory، قم بتسجيل تطبيق جديد، واختر أنواع الحسابات المدعومة بناءً على إعداد AD الخاص بك (مستأجر واحد أو متعدد).
كعنوان URI لإعادة التوجيه، قم بتكوين ما يلي، اعتمادًا على الخدمات التي قام الخادم الخاص بك بتنشيطها. يمكن أيضًا تعديل هذا لاحقًا.

محرك Skoor / لوحة معلومات Skoor

https://<FQDN>/skoor-auth/oidc/code

عارض لوحة معلومات Skoor

https://FQDN/skoor-dashboard-viewer-auth/oidc/code

معرف المستأجر ومعرف العميل

بمجرد حفظ تسجيل التطبيق، افتح علامة التبويب "نظرة عامة" للتطبيق الذي تم إنشاؤه وقم بتدوين المعرفين اللذين ستكون هناك حاجة إليهما لاحقًا للتكوين. وهما يُسميان:

  • معرف التطبيق (العميل)

  • معرف الدليل (المستأجر)

الشهادات والأسرار

بعد ذلك، انتقل إلى "الشهادات والأسرار" وأضف سر عميل. حدد اسمًا لهذا السر واختر تاريخ انتهاء الصلاحية. بمجرد الحفظ، ستتمكن من رؤية معرّف السر وقيمته. ستكون قيمة السر مطلوبة لاحقًا لتكوين خدمة Skoor Auth.

الرمز المميز

انتقل إلى تكوين الرمز المميز وحدد «إضافة مطالبة المجموعات». في تكوين المطالبة، حدد «مجموعات الأمان» وحدد خاصية الرمز المميز «ID» إلى «sAMAccountName».

أذونات واجهة برمجة التطبيقات

هذه الخطوة اختيارية. لتمكين المزيد من التفاصيل حول تكوين المستخدم في Skoor، مثل صورة الملف الشخصي، يحتاج التطبيق إلى إذن لقراءة الملف الشخصي الكامل للمستخدم.
لذلك، يمكنك تنفيذ الخطوات التالية في علامة التبويب "أذونات واجهة برمجة التطبيقات":

  • إضافة إذن

  • حدد Microsoft Graph

  • أذونات مفوضة

  • ابحث عن User.Read أو قم بالتمرير إلى قسم "user" وحدد "User.Read" ثم انقر على "إضافة إذن"

  • بالعودة إلى النظرة العامة، قم بتأكيد الإذن عن طريق تحديد «منح موافقة المسؤول»

Keycloak

إدخال مزود المصادقة SKOOR

[provider.2]
type = oidc
name = SKOOR Keycloak
issuer = skoor
icon = url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmlld0JveD0iMCAwIDI1LjAwMDAwMSAyNSIKICAgaGVpZ2h0PSIyNSIKICAgd2lkdGg9IjI1IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICBpZD0ic3ZnMiIKICAgdmVyc2lvbj0iMS4xIgogICBzb2RpcG9kaTpkb2NuYW1lPSJza29vci1jaXJjbGUuc3ZnIgogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjUgKDIwNjBlYzFmOWYsIDIwMjAtMDQtMDgpIj48c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICAgIGJvcmRlcm9wYWNpdHk9IjEiCiAgICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgICBncmlkdG9sZXJhbmNlPSIxMCIKICAgICBndWlkZXRvbGVyYW5jZT0iMTAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAxNiIKICAgICBpZD0ibmFtZWR2aWV3MTMiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjIyLjIyNjk2NyIKICAgICBpbmtzY2FwZTpjeD0iOC4yODU2MDM4IgogICAgIGlua3NjYXBlOmN5PSIxMy42MjkyMjYiCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjAiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnMiIKICAgICBmaXQtbWFyZ2luLXRvcD0iMCIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjAiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMCIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMCIgLz48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNiIgLz48cGF0aAogICAgIGlkPSJwYXRoMjQiCiAgICAgc3R5bGU9ImZpbGw6I2UyMDA3YTtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4wMjg2ODc3NSIKICAgICBkPSJtIDYuMDkzODUyMiwxMi4xNzc1MjUgYyAwLDMuODgzNDYgMi44Njc5MTM1LDYuNzIwOTY2IDYuMzYyMzY2OCw2LjcyMDk2NiAzLjQ5NTAyOSwwIDYuMzYyOTQ1LC0yLjgzNzUwNiA2LjM2Mjk0NSwtNi43MjA5NjYgMCwtMy4xMDYyOTU2IC0yLjg2NzkxNiwtNS45NDM4MDA1IC02LjM2Mjk0NSwtNS45NDM4MDA1IC0zLjQ5NDQ1MzMsMCAtNi4zNjIzNjY4LDIuODM3NTA0OSAtNi4zNjIzNjY4LDUuOTQzODAwNSB6IE0gMjQuOTEyNDQxLDEyLjE0Nzk4IGMgMCw3LjI4ODY5NiAtNS4yMjcxOTUsMTIuNDI2NjcyIC0xMi40NTYyMjIsMTIuNDI2NjcyIEMgNS4yMjc0ODE1LDI0LjU3NDY0OSAwLDE5LjQzNjY3MiAwLDEyLjE0Nzk3NyAwLDUuMzM3NTE5MyA1Ljk3NDIyNDMsMC41NTc4NTM0NSAxMi40NTYyMTksMC41NTc4NTM0NSBjIDYuNDgyMjg0LDAgMTIuNDU2MjIyLDQuNzc5NjY1ODUgMTIuNDU2MjIyLDExLjU5MDEyMzU1IgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIC8+PC9zdmc+')
metadata_url = https://<keycloak-server-address>/auth/realms/<realm>
client_id = <client-id>
client_secret = <client-secret>

نظرًا لوجود مُصدر مخصص، يتعين علينا توفير رمز لعرضه بجوار الاسم. يمكننا توفير الرمز باستخدام عنوان URL للبيانات.

الإعدادات المطلوبة في Keycloak

فيما يلي التكوين الأدنى لتشغيل OIDC مع Keycloak. يمكن استخدام هذا إذا لم يكن لديك بالفعل مزود مصادقة متوافق مع OIDC وترغب في مصادقة مستخدميك مقابل دليل نشط داخلي.

إعدادات المجال

إذا لم يكن لديك مجال مُهيأ بالفعل، فيجب عليك إضافة واحد. قد يكون اسم شركتك اسمًا جيدًا للمجال. هذا الاسم هو القيمة التي تحتاج إلى إدخالها كـ <realm> في إدخال مزود الخدمة الخاص بك.

قد يكون من الجيد تمكين خيار «تذكرني» في علامة التبويب «تسجيل الدخول».


العملاء

يجب عليك إضافة تكوين عميل لـ SKOOR.

يجب إدخال معرّف العميل كـ <client_id> في إعدادات مزود الخدمة الخاص بك.

يجب أن يكون بروتوكول العميل هو openid-connect.

يجب أن يكون "نوع الوصول" سريًا

يجب تمكين التدفق القياسي.

يجب تعيين عناوين URL لإعادة التوجيه على القيم التالية:

محرك Skoor / لوحات معلومات Skoor

https://<FQDN>/skoor-auth/oidc/code

عارض لوحة معلومات Skoor

https://FQDN/skoor-dashboard-viewer-auth/oidc/code

يمكنك الحصول على السر الخاص بالعميل المطلوب لتكوين مزود <client_secret> من علامة التبويب "بيانات الاعتماد".

نطاقات العميل

للحصول على معلومات المجموعة الخاصة بمستخدم ما، يجب إضافة مُعَيِّن إضافي يُسمى groups إلى نطاق الملف الشخصي.

اتحاد المستخدمين

لتمكين المصادقة عبر Active Directory، يجب إضافة موفر LDAP.

تعتمد هذه الإعدادات بشكل كبير على تكوين Active Directory الخاص بك

إحدى الخطوات المهمة جدًا هي إضافة مُعيّن من النوع group-ldap-mapper.

Kerberos

إذا كانت هناك حاجة إلى تسجيل الدخول الأحادي (SSO) عبر كيربيروس، فيمكن تفعيل هذه الميزة من قائمة «المصادقة»