In vielen Webanwendungen bekommen Benutzer häufig die Möglichkeit, anstatt einen neuen User-Account anzulegen, ihren bestehenden Facebook oder Google Account zu verwenden. Insbesondere für Anwender, die häufig verschiedene Internetdienste verwenden, ist diese Authentifizierungsmethode sehr hilfreich. Die Anwender müssen sich nämlich nur noch Login-Daten eines Accounts für die unterschiedlichen Plattformen merken. Viele Anwender sind sowieso automatisch mit dem Start des Rechners per Facebook oder Google angemeldet und es ist daher nicht nötig, erneut das Kennwort einzugeben. Die Anmeldung über Facebook oder Google erhöht daher die Akzeptanz eines Benutzers, einen Internetdienst zu verwenden.
Mit der Oracle APEX Version 18.1 steht diese Authentifizierungsmethode auch in APEX-Anwendungen zur Verfügung. Diese neue Funktionalität wird als Authentifizierungsschema vom Typ Social-Sign-In implementiert. Hiermit ist es möglich, die Benutzer Authentifizierung von APEX über Google, Facebook oder einen beliebigen anderen Anbieter, der den OAuth2-Standard unterstützt, durchzuführen. Das Social-Sign-In ist für solche APEX-Anwendungen sinnvoll, die im Internet zur Verfügung stehen sollen und von einer unbestimmten Anzahl von Anwendern benutzt werden können. Damit wird Oracle APEX als Plattform zur Erstellung von Webanwendungen auf Basis einer Oracle-Datenbank auch für den B2C-Markt immer interessanter.
Um Social-Sign-In für APEX zu nutzen, muss zunächst ein neues Google-Projekt bzw. eine neue Facebook App erstellt werden. Anschließend werden in APEX entsprechende Web Credentials angelegt. Danach wird ein neues Authentication Schema erstellt. Die einzelnen Schritte werden nachfolgend am Beispiel von Google und Facebook beschrieben.
Einrichtung von Social-Sign-In in Oracle APEX für Google
|
Unter console.developers.google.com mit dem eigenen Google Account anmelden und ein neues Projekt erstellen. | |
|
Dem Projekt einen eindeutigen Namen wie zum Beispiel APEX-SocialLogin vergeben. | |
|
In den Zugangsdaten des neuen Projektes im Abschnitt OAuth-Zustimmungsbildschirm unter Name der Anwendung den Namen des Projektes eintragen und die richtige Domain in das Feld Autorisierte Domain eintragen. Dieses Beispiel bezieht sich auf eine APEX-Anwendung unter APEX.oracle.com
Als autorisierte Domain muss dann oracle.com eingegeben werden. |
|
|
Jetzt unter dem Reiter Anmeldedaten neue Anmeldedaten vom Typ OAuth-Client-Id erstellen. | |
|
Den Anwendungstyp auf Webanwendung einstellen, einen beliebigen Namen, zum Beispiel APEXSample eingeben und die autorisierte Weiterleitungs URI eingeben. Bei unserem Beispiel lautet diese | |
|
Nach dem Erstellen der OAuth Zugangsdaten können in APEX die Webcredentials erstellt werden (App Builder > Workspace Utilities > All Workspace Utilities > Web Credentials).
Dazu wird die Client-ID und der Clientschlüssel aus den OAuth Zugangsdaten des Google Projekts benötigt. |
|
|
In den Shared Components der APEX-Anwendung ein neues Authentication Scheme vom Typ Social Sign-In mit dem Authentication Provider Google und den vorher definierten Webcredentials erstellen.
Als Scope profile,email und bei Username Attribute email eintragen. |
Ab jetzt erfolgt die Anwendungsauthentifizierung über Google. Allerdings ist ein Logout nach erfolgreicher Google-Authentifizierung noch nicht möglich. Hierzu muss noch die Logout URL http://accounts.google.com/logout im Bereich Post-Logout URL des Authentication Scheme eingetragen werden. Der Abschnitt Post-Logout URL ist erst nach dem Anlegen des Authentication Scheme sichtbar und muss daher nach der Erstellung des Authentication Scheme konfiguriert werden.
Einrichtung von Social-Sign-In in Oracle APEX für Facebook
Die Einrichtung von Social-Sign-In für Facebook erfolgt ähnlich wie die Einrichtung für Google. Allerdings ist aktuell die Einrichtung für Facebook auf APEX.oracle.com nicht möglich: Ein Bug in Oracle 12.1 verhindert das. Es gibt zwar einige Workarounds, mit denen die Einrichtung möglich ist, diese erfordern aber entweder einen eigenen Server oder zumindest Administratorzugang zum Oracle Server. Beides ist aber für Anwendungen auf APEX.oracle.com nicht möglich.
Nachfolgend wird ungeachtet des Bugs das generelle Vorgehen für die Authentifizierung über Facebook beschrieben.
Analog zur Google-Authentifizierung können jetzt die Webcredentials für Facebook in APEX eingerichtet werden. Als Client-ID wird die Facebook App-ID eingetragen. Als Client Secret wird der App-Geheimcode eingetragen. Beides ist in den Facebook App Einstellungen unter Einstellungen > Allgemeines zu finden.
Als letztes muss noch ein neues Authentication Scheme der APEX-Anwendung hinzugefügt werden.
Als Credential Store sind die Facebook Credentials und als Authentication Provider ist Facebook auszuwählen.
Bei Scope und Username Attribute ist email einzutragen. |
Fazit
Mit der Einführung der Google- und Facebook-Authentifizierung entwickelt sich Oracle APEX immer weiter hin zu einer universell einsetzbaren Plattform, mit der Webanwendungen basierend auf der Oracle Datenbank im B2B- und B2C-Bereich erstellt werden können. Leider stecken diese neuen Funktionen noch etwas in den Kinderschuhen. Die Facebook Authentifizierung ist über die Cloud-Plattform APEX.oracle.com noch nicht nutzbar, und für beide Authentifizierungsfunktionen gibt es noch keine ausführlichen Anleitungen von Oracle selbst. Zur Umsetzung gibt es derzeit nur einige Blogbeiträge wie zum Beispiel Dimitri Gielis oder Adrian Png
Bis diese Funktionen ihren flächendeckenden Einzug in die APEX-Authentifizierung finden, wird es sicherlich noch einige Zeit dauern. Bis dahin bleibt festzuhalten, dass eine Authentifizierung über Google oder Facebook in APEX grundsätzlich möglich, aber sicher nur von experimentierfreudigen Entwicklern umgesetzt wird.