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

يمكن تعريف موفري مصادقة خارجيين متعددين باستخدام أقسام [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.

مايكروسوفت Azure AD OpenID Connect

إدخال موفر مصادقة SKOOR Auth Provider

[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 Group التي تحمل المعرف c2b2***** على دور المسؤول بعد تسجيل الدخول:

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

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

محرك سكور / لوحة تحكم سكور

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

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

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

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

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

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

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

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

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

الرمز المميز

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

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

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

  • إضافة إذن

  • حدد Microsoft Graph

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

  • ابحث عن User.Read أو قم بالتمرير في قسم 'المستخدم' وحدد '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 لإعادة التوجيه على القيم التالية:

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

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

عارض لوحة معلومات سكور

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

سر العميل المطلوب لتكوين موفر <client_secret> يمكنك الحصول عليه من علامة التبويب بيانات الاعتماد.

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

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

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

من أجل التمكن من المصادقة ضد دليل نشط، يجب إضافة موفر LDAP.

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

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

كيربيروس

إذا كانت هناك حاجة إلى Kerberos SSO، فيمكن تنشيط ذلك في قائمة المصادقة