Kudos/Huddo Boards Docker automatisch per OAuth Authentifizieren (mit SPNEGO SSO)

Kudos/Huddo Boards Docker automatisch per OAuth Authentifizieren (mit SPNEGO SSO)

Das auf Docker basierte Boarts nutzt OAuth, um Connections-Benutzer zu authentifizieren. Dazu erscheint regelmäßig das Authentifizierungs-Popup:

Hier muss der Nutzer den Zugriff bestätigen, auch wenn er bereits in Connections angemeldet ist. Dies lässt sich nutzerfreundlicher gestalten, in dem man die automatische Autorisierung aktiviert. Dafür muss der Client als privilegiert markiert werden.

Zunächst benötigen wir die Id des OAuth-Clients. Standardmäßig ist das huddoboards, im Zweifel kann man in einer wsadmin-Konsole nachschauen:

execfile('oauthAdmin.py')
OAuthApplicationRegistrationService.browseApplications()

Den hinterlegen wir in connectionsProvider.xml auf dem Deployment-Manager als vertrauenswürdigen Client. Die Datei befindet sich im Unterordner oauth20, beispielsweise /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/CnxCell01/oauth20/connectionsProvider.xml. Anschließend eine vollständige Neusynchronisation durchführen und per wsadmin neu registrieren:

wsadmin>print AdminTask.createOAuthProvider('[-providerName connectionsProvider -fileName /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/CnxCell01/oauth20/connectionsProvider.xml]')
wsadmin>

Man erhält keine Ausgabe. Wichtig: Unbedingt den Pfad im Profil des Deployment-Managers nutzen! Mit dem Pfad im Node funktionierte es in meinem Test nicht, dies hatte in Board folgende Fehlermeldung zur Folge:

Ausnahme für SPNEGO SSO erstellen

Wird SSO per SPNEGO genutzt, sollte die URL zum neuen Boards darin ausgeschlossen werden. Die /oauth2/endpoint Präfixe sind bereits als Ausnahme festgelegt, gegebenfalls prüfen. Wenn Boards im Verzeichnis /boards bereitgestellt wird, folgende Regel unter Global security > SPNEGO web authentication zum Filter hinzufügen:

;request-url!=/boards

So sieht das OAuth SSO aus

Wenn die Sitzung abgelaufen ist, muss sich der Nutzer lediglich noch für den Authentifizierungsprovider entscheiden. Sobald dieser angeklickt wird, „bestätigt“ Connections den Zugriff durch das Vertrauensverhältnis automatisch und das Board wird geladen:

Leave a Reply