Benutzer können sich, sofern das konfiguriert wurde, alternativ auch über einen OpenID-Provider an der Anwendung anmelden. Dazu muss der (oder die) OpenID-Provider in der Datei „CustomOpenId.config” im Applikationsverzeichnis des Webservers definiert werden. Zusätzlich muss die Anmeldeoption in den Benutzerzugängen aktiviert werden. Das Abmelden an der Anwendung meldet den Benutzer nicht beim OpenID-Provider ab.

Benutzer können beim ersten Anmelden über einen OpenID-Provider automatisch als Benutzer der Anwendung angelegt werden und bei jedem weiteren Anmelden einige Stammdaten zusätzlich zum Benutzernamen und der E-Mail-Adresse aktualisiert werden. Diese Möglichkeit kann auf bestimmte Claims des OpenID-Providers eingeschränkt werden.

Bei der Anmeldung eines Benutzers über einen OpenID-Provider können bestimmte vorher in der Rollenverwaltung festgelegte Claims als Anwendungsrollen synchronisiert werden.

Konfiguration in der Datei „web.config”

Um die „CustomOpenId.config”-Datei verwenden zu können, sind in der „web.config” folgende Änderungen notwendig:

Im Abschnitt <configSections> muss die folgende Zeile ergänzt werden:

<section name="OpenIdConnectService" type="BA.Core.Identity.OpenId.OpenIdConnectSection" restartOnExternalChanges="true"/>

Direkt im Hauptabschnitt <configuration> muss diese Zeile ergänzt werden:

<OpenIdConnectService configSource="CustomOpenId.config"/>

Konfiguration von OpenID-Providern

Über die Datei „CustomOpenId.config” im Applikationsverzeichnis des Webservers werden ein oder mehrere OpenID-Provider definiert und die Möglichkeit, daß sich Benutzer über OpenID authentifizieren können, aktiviert. Die entsprechenden Einstellungen im Benutzerzugang werden auch nur eingeblendet, wenn hier mindestens ein aktiver OpenID-Provider konfiguriert ist.

Beispiel:

<OpenIdConnectService>
	<OpenIdConnects>
		<add Enabled="true"
			 AuthenticationType="KeyCloak"
			 ButtonCaption="Anmelden mit KeyCloak"
			 ImplicitFlow="false"
			 ClientId="Cloak"
			 ClientSecret="5ba73bc9-8fdc-4d4a-5hc7-b7va6b4a11a21"
			 Authority="https://cloak.server.test:8543/auth/realms/Cloak"
			 UserAutoCreate="true"
			 DefaultSyncUserData="true"
			 DefaultSyncUserRoles="true"
			 UsernameClaim="preferred_username"
			 EmailClaim="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" 
			 RolesClaimType="groups">
			 <Mapping 
			   FirstName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" 
			   LastName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" 
			   Department=""
			/>
			 <LoginClaims>
				<Claim Type="aud" Value="keycloakMHA" />
				<Claim Type="groups" Value="/TestGroup/SubGroup" />
				<Claim Type="groups" Value="/TestGroup" />
			</LoginClaims>		
		</add>
		<add Enabled="true" AuthenticationType="Google" ClientId="731104266636-h1t6hltbj9ghil4lg46dv095fu216hbu.apps.googleusercontent.com" ClientSecret="31oGIVa2GKiyzRpPS2Xvo2vC" />
	</OpenIdConnects>
</OpenIdConnectService>
Parameter Beschreibung
Enabled Über diesen Parameter mit den Optionen „true” und „false” kann ein OpenID-Provider kurzzeitig deaktiviert werden.
AuthenticationType Es gibt die festen Typen: ““Google”, “Twitter” und “Facebook”. Für diese Typen entfallen die Parameter “ImplicitFlow” und ggf. “Authority”. Ansonsten geben Sie hier eine beliebige Bezeichnung Ihres OpenID-Providers ein. Diese muss eindeutig sein.
ButtonCaption Geben Sie den Text an, der auf der Loginseite für diesen OpenID-Provider angezeigt wird. Es werden auch Übersetzungs-GUIDs unterstützt.
ImplicitFlow Geben Sie an, ob für Ihren OpenID-Provider der ImplicitFlow notwendig („true”) oder nicht notwendig ist („false”).
CliendId Geben Sie Ihre ClientID an.
ClientSecret Geben Sie Ihre ClientSecret an.
Authority Geben Sie den Pfad zu Ihren OpenID-Proivider an.
UserAutoCreate Das automatische Anlegen von neuen Benutzern über diesen OpenID-Provider erlauben. Parameter: „true” oder „false”.
DefaultSyncUserData Bei neuen Benutzern wird die Einstellung zum Abgleich der Stammtdaten auf „true” oder „false” gesetzt.
Aktualisiert werden die Felder Email sowie FirstName, LastName und Department, sofern für sie ein Claim-Typ konfiguriert ist. Existiert der konfigurierte Claim-Typ für einen Benutzer nicht, wird das jeweilige Feld geleert. Der Name des Benutzerzugangs (Login) wird niemals aktualisiert.
DefaultSyncUserRoles Bei neuen Benutzern wird die Einstellung zum Abgleich der Claims mit Rollen auf „true” oder „false” gesetzt.
UsernameClaim Aus welchem Claim des OpenID-Providers wird der Benutzername übernommen.
Wenn UserAutoCreate aktiviert ist, ist dieses Feld obligatorisch.
EmailClaim Geben Sie an aus welchem Claim des OpenID-Providers die E-Mail-Adresse übernommen oder aktualisiert wird.
RolesClaimType Geben Sie an aus welchem Claim des OpenID-Providers die zugeordneten Rollen übernommen oder aktualisiert werden.
DontCheckIfServerAlive Die benutzerfreundliche Prüfung, ob der OpenID-Provider verfügbar ist, sollte übersprungen werden. Je nach Provider funktioniert diese Prüfung manchmal nicht, in diesem Fall sollte dieser Parameter auf true gesetzt werden. Standard ist false.
Scopes Ermöglicht das Überschreiben von scopes. Standardwerte sind: openid profile email
Mapping
FirstName Geben Sie an aus welchem Claim des OpenID-Providers der Vorname übernommen oder aktualisiert wird.
LastName Geben Sie an aus welchem Claim des OpenID-Providers der Nachname übernommen oder aktualisiert wird.
Wenn UserAutoCreate aktiviert ist, ist dieses Feld obligatorisch.
Department Geben Sie an aus welchem Claim des OpenID-Providers die Abteilung übernommen oder aktualisiert wird.
LoginClaims Enthält ein oder mehrere Elemente mit Namen <Claim .../>. Jedes davon müssen Benutzer besitzen, um sich an der Anwendung anzumelden.
Type Geben Sie den Claim-Typ des Claims an.
Value Geben Sie den Wert des Claim-Typs an.

Anmeldung über Microsoft Entra ID (früher Azure AD)

  1. Für die Anmeldung über ein Microsoft-Konto muss zunächst eine Anwendung mit Client-ID für die Gedys CXM Instanz innerhalb des Mandanten (Tenant) angelegt werden. Es wird empfohlen, den Typ “Mobile and desktop applications” zu verwenden.
  2. Dort ist als Redirect-URL https://<Servername>/<BusinessAppInstanz>/signin-oidc einzutragen.
  3. Es wird empfohlen, der Anwendung eine oder mehrere Gruppen zuzuordnen und bei der Anwendung in Entra die Option “Groups assigned to the application” zu setzen.
    Dies ist auf jeden Fall notwendig, wenn Benutzer automatisch beim ersten Login in Gedys CXM angelegt werden sollen, da sonst alle Benutzer des Mandanten automatisch Zugang haben.
  4. Neben ClientID benötigt man für bei Microsoft zusätzlich die TenantID. Diese wird als Teil der Anmelde-URL eingetragen. Dazu muss der Parameter Authority wie im Beispiel unten gesetzt werden.
  5. Gruppen haben in Microsoft Entra ID immer nur eine GUID zur Identifikation. Wenn Berechtigungen synchronisiert werden sollen, müssen passende Open-ID-Rollen mit dieser GUID als “Claims-Wert” in der Anwendung angelegt werden, um diesen sprechende Namen zu geben.
<add Enabled="true" AuthenticationType="Microsoft" ButtonCaption="Entra ID" Authority="https://login.microsoftonline.com/<Tennant-ID>/v2.0"
 ClientId="<Client-ID>" DontCheckIfServerAlive="true" UsernameClaim="preferred_username" EmailClaim="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" RolesClaimType="groups" ImplicitFlow="false" >
  <Mapping LastName="name" />
  <LoginClaims>
    <Claim Type="group" Value="<Group-GUID für BA Berechtigte>" />
  </LoginClaims>
</add>

Überspringen der Anmeldeseite

Benutzer erhalten normalerweise beim Aufruf einer Gedys CXM Instanz immer die Anmeldeseite der Gedys CXM Instanz und können dort entweder ihre Gedys CXM Anmeldedaten verwenden oder aber einen von möglicherweise mehreren OpenID-Providern auswählen. In diesem Fall erfolgt dann entweder die Authentifizierung am OpenID-Provider oder, falls diese schon zuvor erfolgt ist, der direkte Zugang zur Gedys CXM Instanz.

Es ist möglich, die Gedys CXM Anmeldeseite zu übersrpringen und über eine spezielle URL direkt einen OpenID-Provider auszuwählen. Speziell wenn davon auszugehen ist, dass die Benutzer vor Aufruf von Gedys CXM bereits beim OpenID-Provider authentifiziert sind, kann dies ein wünschenswertes Verhalten sein.

Die URL sieht folgendermaßen aus:

[URL zu BA Instanz]/Account/OpenIDLogin?AuthenticationType=keycloak

Der Parameter „AuthenticationType”, um einen konfigurierten OpenID-Provider direkt auszuwählen, ist optional. Wenn er nicht angegeben wird und nur ein OpenID-Provider vorhanden ist, dann wird dieser verwendet. Sind mehrere vorhanden, wird die normale Anmeldeseite angezeigt.

Nach dem Abmelden an der Gedys CXM Instanz wird immer die Anmeldeseite angezeigt.

Externe Anmeldung an der Anwendung

Die Anmeldung an der Anwendung über externe Werkzeuge wie BusinessMail4Outlook oder Gedys Mobile über einen OpenID-Provider wird nicht unterstützt.