Jira 5.2 Seraph SSO Login hinter Reverseproxy

8

Seit ein paar Tagen versuche ich SSO für Jira 5.2 zu aktivieren und habe herausgefunden, dass die Hilfeseite von Jira veraltet ist.

Jedes Beispiel verwendet eine alte Version von Atlassian-Seraph (Jira 5.2 verwendet 2.6.0).

Ziel: Ich möchte automatisch in Jira eingeloggt werden, wenn ich mich in Webseal (Reverse Proxy) eingeloggt habe.

Hintergrund:

  • Jira ist hinter einem Reverse Proxy (siehe Bild).
  • Dieser Proxy authentifiziert den Benutzer und hält die Sitzung ab.
  • Wenn ich eingeloggt bin, möchte ich auch in Jira eingeloggt sein
  • Die einzige Information ist der Benutzername

Frage:

Wie schreibe ich ein benutzerdefiniertes Login-Modul, das den Benutzernamen von http_header liest und den Benutzer authentifiziert?

Links:

Tobias Sarnow 29.04.2013, 07:44
quelle

2 Antworten

11

Am Ende habe ich es selbst herausgefunden:

  1. Sie benötigen einen benutzerdefinierten Authentifikator

    %Vor%
  2. Fügen Sie der seraph-config.xml den MyCustomAuthenticator hinzu

    %Vor%
  3. Schreiben Sie einen benutzerdefinierten Filter, um den Benutzernamen aus http-header

    zu setzen %Vor%

  4. Ersetzen Sie den Filter in der web.xml

    %Vor%

Diese Jars werden für Jira 5.2 benötigt

  • embedded-crowd-api-2.6.2
  • jira-core-5.2.1
  • atlassian-seraph-2.6.0
Tobias Sarnow 22.05.2013, 07:23
quelle
1

Ich bin mit der Jira-Authentifizierung nicht vertraut, aber ich verstehe die SiteMinder / WebSeal-Authentifizierung gut.

Beide Systeme authentifizieren Benutzer und senden den Benutzernamen in einem HTTP-Header. Der Name des HTTP-Headers kann konfiguriert werden. Außerdem können sie zusätzliche Benutzereigenschaften wie die Benutzer-E-Mail in den zusätzlichen HTTP-Headern senden. Um einen Benutzer hinter SiteMinder / WebSeal zu authentifizieren, ist es lediglich erforderlich, den HTTP-Header zu übernehmen und eine Anwendungssitzung mit dem Benutzernamen aus der Kopfzeile zu erstellen.

Sie können es definitiv in Jira lösen. Sie haben 2 Möglichkeiten:

  1. So verwenden Sie den bereits erstellten SiteMinder-Authentifikator: Ссылка Das Problem, dass ich nicht gefunden habe, wie man den HTTP-Header-Namen für den Benutzernamen-Header konfiguriert. Es wird angenommen, dass der Kopfzeilenname uid ist. Sie müssen den Header uid in WebSeal konfigurieren oder versuchen, Quellen zu erhalten und den Header-Namen konfigurierbar zu machen.
  2. Implementieren Sie Ihren eigenen Authentifikator entsprechend Ihrem Link: Ссылка Besorgen Sie sich den Benutzernamen mit dem Code %Code%
Michael 29.04.2013 10:07
quelle