Externe Authentifizierungsanbieter
Mehrere externe Authentifizierungsanbieter können mit [provider.x]-Abschnitten definiert werden:
[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.
Microsoft Azure AD OpenID Connect
SKOOR Auth Provider Eintrag
[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>
Das Symbol wird automatisch basierend auf dem Namen des Ausstellers gesetzt.
Erforderliche Einstellungen in Azure AD
Azure-Gruppen-ID muss mit der SKOOR-Remote-Gruppe übereinstimmen:
Damit sich Benutzer anmelden können und die richtige Rolle zugewiesen bekommen, müssen diese IDs konfiguriert werden.
Im untenstehenden Beispiel haben alle Benutzer in der Azure AD Gruppe mit der ID c2b2***** nach der Anmeldung die Rolle des Administrators:
App-Registrierung
In Ihrem Azure Active Directory registrieren Sie eine neue Anwendung, wählen Sie unterstützte Kontotypen basierend auf Ihrem AD Setup (Single- oder Multi-Tenant).
Als Redirect URI konfigurieren Sie folgendes, je nachdem, welche Dienste Ihr Server aktiviert hat. Dies kann auch später noch bearbeitet werden.
Skoor Engine / Skoor Dashboard | https://<FQDN>/skoor-auth/oidc/code |
Skoor Dashboard Viewer | https://FQDN/skoor-dashboard-viewer-auth/oidc/code |
Mieter-ID und Kunden-ID
Sobald die Anwendungsregistrierung gespeichert ist, öffnen Sie die Übersichtsregisterkarte der erstellten Anwendung und notieren Sie sich die beiden IDs, die später für die Konfiguration benötigt werden. Diese lauten:
Anwendungs- (Mandanten-) ID
Verzeichnis (Mandant) ID
Zertifikate & Geheimnisse
Gehen Sie nun zu Zertifikate & Geheimnisse und fügen Sie ein Client-Geheimnis hinzu. Legen Sie einen Namen für dieses Geheimnis fest und wählen Sie ein Ablaufdatum. Nach dem Speichern können Sie die Geheimnummer und den Wert des Geheimnisses sehen. Der Wert des Geheimnisses wird später für die Konfiguration des Skoor Auth-Dienstes benötigt.
Token
Gehe zur Token-Konfiguration und wähle "Gruppenanspruch hinzufügen". In der Claim-Konfiguration wähle "Sicherheitsgruppen" und wähle die Token-Eigenschaft Typ "ID" auf "sAMAccountName".
API-Erlaubnis
Dieser Schritt ist optional. Um weitere Details der Benutzerkonfiguration in Skoor zu aktivieren, z. B. das Profilbild, benötigt die Anwendung die Erlaubnis, das vollständige Benutzerprofil zu lesen.
Dazu kannst du die folgenden Schritte auf der Registerkarte "API-Berechtigungen" durchführen:
Berechtigung hinzufügen
Microsoft Graph auswählen
Delegierte Berechtigungen
Suchen Sie nach User.Read oder scrollen Sie im Abschnitt 'user' und wählen Sie 'User.Read' und klicken Sie auf 'add permission'
Zurück in der Übersicht bestätigen Sie die Berechtigung durch Auswahl von 'Grant admin consent'.
Keycloak
SKOOR Auth Provider Eintrag
[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>
Da wir einen benutzerdefinierten Aussteller haben, müssen wir ein Symbol angeben, das neben dem Namen angezeigt wird. Wir können das Symbol mit einer Daten-URL bereitstellen.
Erforderliche Einstellungen in Keycloak
Das Folgende ist eine Mindestkonfiguration, um einen OIDC mit Keycloak zum Laufen zu bringen. Dies kann verwendet werden, wenn Sie noch keinen OIDC-kompatiblen Authentifizierungsanbieter haben und Ihre Benutzer gegen ein internes aktives Verzeichnis authentifizieren wollen.
Realm-Einstellungen
Wenn Sie noch keinen Realm konfiguriert haben, müssen Sie einen hinzufügen. Ein guter Name für den Realm könnte der Name Ihres Unternehmens sein. Dieser Name ist der Wert, den Sie als <realm> in Ihren Anbietereintrag einfügen müssen.
Es könnte eine gute Idee sein, die Option Remember Me auf der Registerkarte Login zu aktivieren.
Kunden
Sie müssen eine Client-Konfiguration für SKOOR hinzufügen.
DieClient-ID muss als <client_id> in die Providerkonfiguration eingefügt werden.
DasClient-Protokoll muss openid-connect sein.
Access Type muss vertraulich sein
DerStandardfluss muss aktiviert sein.
Redirect URLs sollten auf die folgenden Werte gesetzt werden:
Skoor Engine / Skoor Dashboards | https://<FQDN>/skoor-auth/oidc/code |
Skoor Dashboard Viewer |
Das Client-Geheimnis, das für die <client_secret>-Anbieterkonfiguration benötigt wird, können Sie auf der Registerkarte Credentials abrufen.
Client-Bereiche
Um Gruppeninformationen für einen Benutzer zu erhalten, muss ein zusätzlicher Mapper namens groups zum Profilbereich hinzugefügt werden.
Benutzervereinigung
Um sich gegen ein aktives Verzeichnis authentifizieren zu können, muss ein LDAP-Anbieter hinzugefügt werden.
Diese Einstellungen hängen stark von Ihrer AD-Konfiguration ab
Ein sehr wichtiger Schritt ist das Hinzufügen eines Mappers vom Typ group-ldap-mapper.
Kerberos
Wenn Kerberos SSO benötigt wird, kann dies im Menü Authentifizierung aktiviert werden