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 AuthenticationTypes: Google, Microsoft, Twitter und Facebook. Für diese Typen entfallen die Parameter „ImplicitFlow” und „Authority”. Ansonsten geben Sie hier eine beliebige Bezeichnung Ihres OpenID-Providers ein.
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.
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.
EmailClaim Geben Sie an aus welchem Claim des OpenID-Providers die E-Mail-Adresse übernommen wird.
RolesClaim Geben Sie an aus welchem Claim des OpenID-Providers die zugeordneten Rollen übernommen 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 wird.
LastName Geben Sie an aus welchem Claim des OpenID-Providers der Nachname übernommen wird.
Department Geben Sie an aus welchem Claim des OpenID-Providers die Abteilung übernommen wird.
LoginClaims
Claim Type Geben Sie den Claim-Typ desjenigen Claims an, den ein Benutzer besitzen muss, um sich an der Anwendung anzumelden.
Value Geben Sie den Wert des Claim-Typs an, den ein Benutzer besitzen muss, um sich an der Anwendung anzumelden.

Überspringen der Anmeldeseite

Benutzer erhalten normalerweise beim Aufruf einer Business App Instanz immer die Anmeldeseite der Business App Instanz und können dort entweder ihre Business App 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 Business App Instanz.

Es ist möglich, die Business App 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 Business App 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 Business App Instanz wird immer die Anmeldeseite angezeigt.

Externe Anmeldung an der Anwendung

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