Tutorial: Simples Publishing einer Webanwendung mit OpenID Connect und Google

So kann ein simples Publishing einer Webanwendung mit OpenID Connect und Google (als Authorization Server) aussehen. Das wurde zwar schon dutzendfach beschrieben, aber hier kurz Step-By-Step und so einfach wie möglich gehalten. Das Beispiel hat man in unter einer Stunde komplett durch, verspricht uns Maximilian Leimgruber, der dieses Tutorial erarbeitete.

OpenID Connect baut auf dem OAuth 2.0-Protokoll auf, welches Mechanismen zum Beziehen und Verwenden von Token für den Zugriff auf geschützte Ressourcen verwendet. Es ist primär gedacht für auf Server gehostete Webanwendungen, auf die mit einem Browser zugegriffen wird.

1.) Hintergründe und Links

http://openid.net/connect/
http://wiki.openid.net/w/file/fetch/80030063/OpenID_Connect_Overview_May_5_2014.pdf
https://developers.google.com/identity/protocols/OpenIDConnect
https://www.citrix.com/blogs/2015/09/11/openid-connectoauth-2-0-integration-with-xenapp-through-unified-gateway/

Traffic Flow

2.) Google Developer Account erstellen

– Diesen kann man ein Jahr lang kostenlos nutzen, muss aber seine Kreditkarte hinterlegen.

3. Auf Google im ApiManager einen neuen Account erstellen

– Dazu auf https://console.developers.google.com/apis/credentials gehen, mit Dev Account anmelden und auf “Anmeldedaten erstellen” klicken.

– Unter JS Quellen die URI eingeben und unter Weiterleitungs URIs das gleiche mit dem Pfad /oauth/login

– Das liefert euch die benötigte Client ID und den Client Schlüssel (merken!)

4.) NetScaler-Konfiguration

– Dafür sorgen, dass der NetScaler Google erreichen kann (FW, Routing)!
– Extern erreichbaren Content Switch vServer anlegen (DNS, IP, Zertifikat, FW,…)
– CS Policy anlegen, die auf LB vServer zeigt, der wiederum den Webserver als Service gebunden hat (FW!)
– AAA vServer anlegen (benötigt keine externe IP und kein DNS,…)
– Auf Load Balancer Authentication aktivieren (der Authentication Host kann ein Dummy sein; muss nicht erreichbar sein)
add lb vserver lb_vs_web_red_app01 HTTP 0.0.0.0 0 -persistenceType NONE -cltTimeout 180 -AuthenticationHost auth.test -Authentication ON -authnVsName aaa_vs_oidc_test
– OAuth / OpenID Connect Authentication Policy anlegen und auf vServer binden

– Genauer:
Client ID: Von Google kopiert. Siehe 2.)
Client Secret:. Siehe 2.)
Authorization Endpoint: https://accounts.google.com/o/oauth2/auth?client_id=DEINECLIENTID&response_type=code&scope=openid%20email
Token Endpoint: https://accounts.google.com/o/oauth2/token
ID Token Decryption Endpoint: https://www.googleapis.com/oauth2/v1/tokeninfo

 

5.) Testen

https://app01.workplace.provectus-lab.de/ aufrufen
– Man wird weitergeleitet an Google
– Dort kann man sich mit jedem beliebigen (hier Trashmail Account; nicht der meines Dev) anmelden

– Und schwupps ist man auf der Website! (wenn man kein SSO braucht; ansonsten kann man das oidc Spiel natürlich auch ein zweites Mal spielen; also zwischen webapp und google und den gleichen security Kontext verwenden)

Leave a Reply

Your email address will not be published. Required fields are marked *

 

Unser Verhaltenskodex

Partnerschaft, Zuverlässigkeit, Integrität, Offenheit und Nachhaltigkeit sind zentrale Werte unserer Unternehmenskultur. Als Unternehmen steht es für uns im Vordergrund, im täglichen Geschäftsleben fair und ethisch korrekt zu arbeiten und bestehende Gesetze einzuhalten. Gleiches erwarten wir auch von unseren Kunden, Beratern, Lieferanten und Dienstleistern. Unsere Richtlinien und Prinzipien haben wir aus diesem Grund in unserem Verhaltenskodex festgelegt.

Datenschutzerklärung

Verantwortliche Stelle im Sinne der Datenschutzgesetze ist:

  • Provectus Technologies GmbH
  • Leopoldstr. 250b, 80807 München, Deutschland
  • info@provectus.de
  • +49 (89) 7104092 0

Erfassung allgemeiner Informationen

Wenn Sie auf unsere Webseite zugreifen, werden automatisch Informationen allgemeiner Natur erfasst. Diese Informationen (Server-Logfiles) beinhalten etwa die Art des Webbrowsers, das verwendete Betriebssystem, den Domainnamen Ihres Internet Service Providers und Ähnliches. Hierbei handelt es sich ausschließlich um Informationen, welche keine Rückschlüsse auf Ihre Person zulassen. Diese Informationen sind technisch notwendig, um von Ihnen angeforderte Inhalte von Webseiten korrekt auszuliefern und fallen bei Nutzung des Internets zwingend an. Anonyme Informationen dieser Art werden von uns statistisch ausgewertet, um unseren Internetauftritt und die dahinter stehende Technik zu optimieren.

Um die Sicherheit Ihrer Daten bei der Übertragung zu schützen, verwenden wir dem aktuellen Stand der Technik entsprechende Verschlüsselungsverfahren (z. B. SSL) über HTTPS.

Kommentarfunktion

Wenn Nutzer Kommentare im Blog hinterlassen, werden neben diesen Angaben auch der Zeitpunkt ihrer Erstellung und der zuvor durch den Webseitenbesucher gewählte Nutzername gespeichert. Dies dient unserer Sicherheit, da wir für widerrechtliche Inhalte auf unserer Webseite belangt werden können, auch wenn diese durch Benutzer erstellt wurden.

Kontaktformular

Treten Sie per E-Mail oder Kontaktformular mit uns in Kontakt, werden die von Ihnen gemachten Angaben zum Zwecke der Bearbeitung der Anfrage sowie für mögliche Anschlussfragen gespeichert.

Verwendung von Google Analytics

Diese Webseite benutzt Google Analytics, einen Webanalysedienst der Google Inc. („Google“). Google Analytics verwendet sog. „Cookies“, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Webseite durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Aufgrund der Aktivierung der IP-Anonymisierung auf diesen Webseiten, wird Ihre IP-Adresse von Google jedoch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum zuvor gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt. Im Auftrag des Betreibers dieser Webseite wird Google diese Informationen benutzen, um Ihre Nutzung der Webseite auszuwerten, um Reports über die Webseitenaktivitäten zusammenzustellen und um weitere mit der Webseitennutzung und der Internetnutzung verbundene Dienstleistungen gegenüber dem Webseitenbetreiber zu erbringen. Die im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Webseite vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Webseite bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter dem folgenden Link verfügbare Browser-Plugin herunterladen und installieren:

Link: Browser Add On zur Deaktivierung von Google Analytics

Zusätzlich oder als Alternative zum Browser-Add-On können Sie das Tracking durch Google Analytics auf unseren Seiten unterbinden, indem Sie diesen Link anklicken. Dabei wird ein Opt-Out-Cookie auf Ihrem Gerät installiert. Damit wird die Erfassung durch Google Analytics für diese Website und für diesen Browser zukünftig verhindert, so lange der Cookie in Ihrem Browser installiert bleibt.

Social Plugins

Auf unseren Webseiten werden Social Plugins der unten aufgeführten Anbieter eingesetzt. Die Plugins können Sie daran erkennen, dass sie mit dem entsprechenden Logo gekennzeichnet sind.

Über diese Plugins werden unter Umständen Informationen, zu denen auch personenbezogene Daten gehören können, an den Dienstebetreiber gesendet und ggf. von diesem genutzt. Wir verhindern die unbewusste und ungewollte Erfassung und Übertragung von Daten an den Diensteanbieter durch eine 2-Klick-Lösung. Um ein gewünschtes Social Plugin zu aktivieren, muss dieses erst durch Klick auf den entsprechenden Schalter aktiviert werden. Erst durch diese Aktivierung des Plugins wird auch die Erfassung von Informationen und deren Übertragung an den Diensteanbieter ausgelöst. Wir erfassen selbst keine personenbezogenen Daten mittels der Social Plugins oder über deren Nutzung.

Wir haben keinen Einfluss darauf, welche Daten ein aktiviertes Plugin erfasst und wie diese durch den Anbieter verwendet werden. Derzeit muss davon ausgegangen werden, dass eine direkte Verbindung zu den Diensten des Anbieters ausgebaut wird sowie mindestens die IP-Adresse und gerätebezogene Informationen erfasst und genutzt werden. Ebenfalls besteht die Möglichkeit, dass die Diensteanbieter versuchen, Cookies auf dem verwendeten Rechner zu speichern. Welche konkreten Daten hierbei erfasst und wie diese genutzt werden, entnehmen Sie bitte den Datenschutzhinweisen des jeweiligen Diensteanbieters. Hinweis: Falls Sie zeitgleich bei Facebook angemeldet sind, kann Facebook Sie als Besucher einer bestimmten Seite identifizieren.

Wir haben auf unserer Website die Social-Media-Buttons folgender Unternehmen eingebunden:

  • Facebook Inc. (1601 S. California Ave - Palo Alto - CA 94304 - USA)
  • Twitter Inc. (795 Folsom St. - Suite 600 - San Francisco - CA 94107 - USA)
  • XING AG (Gänsemarkt 43 - 20354 Hamburg - Deutschland)
  • LinkedIn Corporation (2029 Stierlin Court - Mountain View - CA 94043 - USA)

Cookies

Wie viele andere Webseiten verwenden wir auch so genannte "Cookies". Cookies sind kleine Textdateien, die von einem Webseitenserver auf Ihre Festplatte übertragen werden. Hierdurch erhalten wir automatisch bestimmte Daten wie z. B. IP-Adresse, verwendeter Browser, Betriebssystem über Ihren Computer und Ihre Verbindung zum Internet.

Cookies können nicht verwendet werden, um Programme zu starten oder Viren auf einen Computer zu übertragen. Anhand der in Cookies enthaltenen Informationen können wir Ihnen die Navigation erleichtern und die korrekte Anzeige unserer Webseiten ermöglichen.

In keinem Fall werden die von uns erfassten Daten an Dritte weitergegeben oder ohne Ihre Einwilligung eine Verknüpfung mit personenbezogenen Daten hergestellt.

Natürlich können Sie unsere Website grundsätzlich auch ohne Cookies betrachten. Internet-Browser sind regelmäßig so eingestellt, dass sie Cookies akzeptieren. Sie können die Verwendung von Cookies jederzeit über die Einstellungen Ihres Browsers deaktivieren. Bitte verwenden Sie die Hilfefunktionen Ihres Internetbrowsers, um zu erfahren, wie Sie diese Einstellungen ändern können. Bitte beachten Sie, dass einzelne Funktionen unserer Website möglicherweise nicht funktionieren, wenn Sie die Verwendung von Cookies deaktiviert haben.

Ihre Rechte auf Auskunft, Berichtigung, Sperre, Löschung und Widerspruch

Sie haben das Recht, jederzeit Auskunft über Ihre bei uns gespeicherten personenbezogenen Daten zu erhalten. Ebenso haben Sie das Recht auf Berichtigung, Sperrung oder, abgesehen von der vorgeschriebenen Datenspeicherung zur Geschäftsabwicklung, Löschung Ihrer personenbezogenen Daten. Bitte wenden Sie sich dazu an unseren Datenschutzbeauftragten. Die Kontaktdaten finden Sie ganz unten.

Damit eine Sperre von Daten jederzeit berücksichtigt werden kann, müssen diese Daten zu Kontrollzwecken in einer Sperrdatei vorgehalten werden. Sie können auch die Löschung der Daten verlangen, soweit keine gesetzliche Archivierungsverpflichtung besteht. Soweit eine solche Verpflichtung besteht, sperren wir Ihre Daten auf Wunsch.

Sie können Änderungen oder den Widerruf einer Einwilligung durch entsprechende Mitteilung an uns mit Wirkung für die Zukunft vornehmen.

Änderung unserer Datenschutzbestimmungen

Wir behalten uns vor, diese Datenschutzerklärung gelegentlich anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen in der Datenschutzerklärung umzusetzen, z. B. bei der Einführung neuer Services. Für Ihren erneuten Besuch gilt dann die neue Datenschutzerklärung.

Fragen an den Datenschutzbeauftragten

Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine E-Mail oder wenden Sie sich direkt an unseren Datenschutzbeauftragten:

  • Vincent Nguyen
  • activeMind AG
  • Potsdamer Str. 3, 80802 München, Deutschland
  • datenschutz@provectus.de