stephanfischer
Goto Top

ADFS meckert die Umleitungs-ID an

Hallo zusammen,

ich konfiguriere gerade Zammad mit Oauth2-Authentifizierung.

Oauth soll sich an dem ADFS melden.

Dies funktioniert auch.

Jedoch meldet dieser, dass die Umleitungs-URI falsch wäre.

Eingetragen ist https://<Servername>/auth/oauth2/callback

Zurückgegeben von Zammad wird aber https://<Servername>/auth/oauth2/callback?code=XXXXXXX


Kennt jemand eine Möglichkeit, dass der ADFS die URI trotzdem akzeptiert?


Grüße Stephan

Content-Key: 382517

Url: https://administrator.de/contentid/382517

Printed on: April 18, 2024 at 23:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Aug 06, 2018 at 19:23:04 (UTC)
Goto Top
Hallo,

dafür müsste man erstmal wissen, warum Zammad dies zurückgibt, bzw das ADFS.


Passt der ADFS denn generell?

VG
Member: StephanFischer
StephanFischer Aug 06, 2018 updated at 19:48:55 (UTC)
Goto Top
Hallo,

das habe ich glaube ich etwas falsch formuliert.

In Zammad kann ich nichts einstellen.

Aber die UmleitungsUri ist auch korrekt.

Der ADFS meldet, dass die UmleitungsUri nicht korrekt sei.

So wie ich das sehe, eben deshalb, da Zammad noch den Zusatz mit dem ?code= mitliefert, welcher in diesem Fall die Session-ID ist.

Ohne die könnte Zammad die Authentifizierung ja nicht auf die Browsersession zurückgeben und dann entsprechen den Login gewähren.

Der ADFS nimmt die Anfragen sauber an und meckert dann in der Ereignisanzeige, dass die RückgabeURI oder die ApplicationID nicht zugeordnet werden kann. Diese habe ich aber mehrfach geprüft und auch von Hand nochmals neu eingetippt.

Grüße
Member: dodo30
dodo30 Aug 06, 2018 at 20:41:40 (UTC)
Goto Top
hey,
musst du dem ADFS dann nicht mitgeben das dahinter noch ein dynamischer code kommt?

gibs dafür nen Platzhalter ?
Member: Dani
Dani Aug 06, 2018 at 22:55:40 (UTC)
Goto Top
Moin Stephan,
bei GitHub habe ich eine Referenzkonfiguration für ADFS bzw. Zammad gefunden. Bitte deine Einstellungen einmal gegenprüfen.


Gruß,
Dani
Member: StephanFischer
StephanFischer Aug 07, 2018 updated at 06:42:49 (UTC)
Goto Top
Hi Dani,

nach der bin ich vorgegangen,

jedoch hat der Wohl das gleiche Problem.

-> Kommentar auf Github

Leider aber auch in den verlinkten Seiten keinen wirklichen Anhaltspunkt face-confused


Anbei die Fehlermeldung:
Fehler bei der OAuth-Tokenanforderung. 

Zusätzliche Daten 

Ausnahmedetails: 
Microsoft.IdentityServer.Web.Protocols.OAuth.Exceptions.OAuthAccessTokenInvalidAuthorizationCodeException: MSIS9253: Der empfangene Autorisierungscode ist ungültig. Die empfangene Client-ID oder der Umleitungs-URI stimmt nicht mit der Client-ID oder dem Umleitungs-URI überein, für die der empfangene Autorisierungscode ausgegeben wurde. Empfangene "client_id": "XYZ", "redirect_uri": "https://BMFLIN72.XXX.XXX/auth/oauth2/callback?code=Bliblablub&state=Bliblablub".  
   bei Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthToken.OAuthTokenProtocolHandler.ValidateAccessTokenRequest(OAuthAccessTokenRequestContext tokenContext, String ClientID, String ClientRedirectUri, String ResourceIdentifier)
   bei Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthToken.OAuthTokenProtocolHandler.RedeemAccessToken(OAuthAccessTokenRequestContext tokenContext)
Kann ich den ADFS einfach umkonfigurieren, sodass er die beiden Zusätze annimmt?

Grüße
Member: StephanFischer
StephanFischer Aug 07, 2018 at 07:30:28 (UTC)
Goto Top
Hi,

nicht dass ich wüsste, dass ich da was mitgeben könnte.
  • als Platzhalter nimmt er an aber ignoriert.
? lässt er gar nicht zu.
Member: 7Gizmo7
7Gizmo7 Aug 07, 2018 at 10:42:00 (UTC)
Goto Top
Hi,

was für Zertifikate wurden im ADFS verwendet ? öffentliche Zertifikate oder internen oder selbsignierte ?

MfG
Member: StephanFischer
StephanFischer Aug 07, 2018 at 11:53:01 (UTC)
Goto Top
Es wurden interne Zertifikate verwendet, welche von der AD-Zertifikatsstelle ausgestellt wurden.

Das Root-CA-Zertifikat der AD ist auf der Linuxmaschine entsprechend installiert.
Member: 7Gizmo7
7Gizmo7 Aug 07, 2018 updated at 13:32:49 (UTC)
Goto Top
Hi,

und was sagt das Log bei Zammad , poste mal den Part mit der Authentifizierung.

und das mal beachtet ....
https://github.com/zammad/zammad/issues/825
https://github.com/zammad/zammad/issues/775
Member: StephanFischer
StephanFischer Aug 07, 2018 updated at 14:37:50 (UTC)
Goto Top
I, [2018-08-07T15:44:07.737100 #4989]  INFO -- : Started GET "/auth/oauth2" for 127.0.0.1 at 2018-08-07 15:44:07 +0200 
I, [2018-08-07T15:44:07.813037 #4989]  INFO -- : Started GET "/auth/oauth2/callback?code=[FILTERED]&state=11480343f02b1886da0a44c6432635b62c0cd990208eb50f" for 127.0.0.1 at 2018-08-07 15:44:07 +0200 
I, [2018-08-07T15:44:07.840380 #4989]  INFO -- : Started GET "/auth/failure?message=invalid_credentials&origin=https%3A%2F%2Fbmflin72.XX.XX%2F&strategy=oauth2" for 127.0.0.1 at 2018-08-07 15:44:07 +0200 
I, [2018-08-07T15:44:07.843917 #4989]  INFO -- : Processing by SessionsController#failure_omniauth as HTML
I, [2018-08-07T15:44:07.843969 #4989]  INFO -- :   Parameters: {"message"=>"invalid_credentials", "origin"=>"https:{{comment_single_line_double_slash:0}}
E, [2018-08-07T15:44:07.844313 #4989] ERROR -- : Message from oauth2: invalid_credentials (Exceptions::UnprocessableEntity)
/opt/zammad/app/controllers/sessions_controller.rb:168:in `failure_omniauth'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/base.rb:186:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/rendering.rb:30:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/callbacks.rb:20:in `block in process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:131:in `run_callbacks'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/callbacks.rb:19:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/rescue.rb:20:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `block in instrument'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/notifications.rb:166:in `instrument'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/instrumentation.rb:30:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal/params_wrapper.rb:252:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.1.5/lib/active_record/railties/controller_runtime.rb:22:in `process_action'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/abstract_controller/base.rb:124:in `process'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionview-5.1.5/lib/action_view/rendering.rb:30:in `process'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal.rb:189:in `dispatch'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_controller/metal.rb:253:in `dispatch'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/routing/route_set.rb:49:in `dispatch'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/routing/route_set.rb:31:in `serve'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/journey/router.rb:50:in `block in serve'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/journey/router.rb:33:in `each'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/journey/router.rb:33:in `serve'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/routing/route_set.rb:844:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:190:in `call!'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/strategy.rb:168:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/omniauth-1.7.1/lib/omniauth/builder.rb:63:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/etag.rb:25:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/conditional_get.rb:25:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/head.rb:12:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/session/abstract/id.rb:232:in `context'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/session/abstract/id.rb:226:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/cookies.rb:613:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/callbacks.rb:26:in `block in call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/callbacks.rb:97:in `run_callbacks'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/callbacks.rb:24:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/debug_exceptions.rb:59:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:36:in `call_app'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `block in call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/request_id.rb:25:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/method_override.rb:22:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/runtime.rb:22:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/executor.rb:12:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/static.rb:125:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/sendfile.rb:111:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/engine.rb:522:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/configuration.rb:225:in `call'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:624:in `handle_request'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:438:in `process_client'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:302:in `block in run'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/thread_pool.rb:120:in `block in spawn_thread'  
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'  
I, [2018-08-07T15:44:07.844930 #4989]  INFO -- :   Rendering inline template
I, [2018-08-07T15:44:07.845458 #4989]  INFO -- :   Rendered inline template (0.5ms)
I, [2018-08-07T15:44:07.845611 #4989]  INFO -- : Completed 422 Unprocessable Entity in 2ms (Views: 0.8ms | ActiveRecord: 0.0ms)

Die beiden Github-Einträge habe ich durchstudiert, aber keine Erkenntnisse gefunden, was falsch laufen würde/könnte.

Aus dem Log werde ich leider nicht wirklich schlau, da ich mich mit Rails noch nie auseinandergesetzt habe.

Ich habe eine Kyrilische Seite gefunden in der erklärt wird, dass der ADFS wohl nur 400 Zeichen verarbeiten kann?
Gibt es eine Möglichkeit das zu umgehen, bzw. ist da jemandem etwas bekannt?

Grüße
Member: Dani
Dani Aug 10, 2018 at 22:15:14 (UTC)
Goto Top
Moin,
Ich habe eine Kyrilische Seite gefunden in der erklärt wird, dass der ADFS wohl nur 400 Zeichen verarbeiten kann?
Die Aussage bezieht sich primär auf ADFS 3.0 (Windows Server 2012R2). Die 400 Zeichen beziehen sich auf die URL. Sprich ist diese länger, gibt es ein Problem.

Aus dem Log werde ich leider nicht wirklich schlau, da ich mich mit Rails noch nie auseinandergesetzt habe.
Liest sich für mich, als wären die eingegeben Credentials nicht richtig.

nach der bin ich vorgegangen,
Hast du ADFS unter Windows Server 2012R2 oder Windows Server 2016 installiert? Denn in dem von mir verlinkten Issue geht es um ADFS unter Windows Server 2016. Unabhängig davon hat der Nutzer dort Probleme mit seinem SSL-Zertfikat.


Gruß,
Dani
Member: StephanFischer
StephanFischer Sep 03, 2018 at 08:39:54 (UTC)
Goto Top
Hallo Dani,

entschuldige bitte, ich war jetzt 3 Wochen im Urlaub.

Die Aussage bezieht sich primär auf ADFS 3.0 (Windows Server 2012R2). Die 400 Zeichen beziehen sich auf die URL. Sprich ist diese länger, gibt es ein Problem.
Ich hatte diesbezüglich leider keine Informationen gefunden, wie sich der Server 2016 hierzu verhält.
War diesbezüglich nur ein Lösungsansatz von mir.

Liest sich für mich, als wären die eingegeben Credentials nicht richtig.
Welche meinst du?

Hast du ADFS unter Windows Server 2012R2 oder Windows Server 2016 installiert? Denn in dem von mir verlinkten Issue geht es um ADFS unter Windows Server 2016. Unabhängig davon hat der Nutzer dort Probleme mit seinem SSL-Zertfikat.
Es ist ein Server 2016 installiert.
Das Problem mit dem Zertifikat hattte ich am Anfang auch.
-> Root-CA-Zertifikat der Domänenzertifizierungsstelle auf dem Linux installiert, dann war der Fehler Geschichte.

Grüße Stephan
Member: Marco-83
Marco-83 Sep 19, 2018 at 22:37:41 (UTC)
Goto Top
Guten Abend,

konnte von euch schon jemand eine Lösung zu diesem Thema finden? Ich hänge auch exakt an dieser Stelle face-confused Habe in div. Foren noch Kommentare gefunden, dass es evtl durch einen downgrade der omniauth Komponente eine Lösung geben soll, hat bei mir aber auch nichts gebracht. Gerade 4 Stunden Zeit dran verbracht.
Immer dieser Fehler:

[2018-09-20T00:17:14.446879 #450] INFO -- : Started GET "/auth/failure?message=invalid_credentials&origin=https%3A%2F%2Fsupport.*.de%2F&strategy=oau th2" for *.*.*.* at 2018-09-20 00:17:14 +0200
I, [2018-09-20T00:17:14.453341 #450] INFO -- : Processing by SessionsController#failure_omniauth as HTML
I, [2018-09-20T00:17:14.453447 #450] INFO -- : Parameters: {"message"=>"invalid_credentials", "origin"=>"https://
*.*.*/", "strategy"=>"oauth2" }
E, [2018-09-20T00:17:14.453968 #450] ERROR -- : Message from oauth2: invalid_credentials (Exceptions::UnprocessableEntity)
/opt/zammad/app/controllers/sessions_controller.rb:169:in `failure_omniauth'


Es scheint grundsätzlich nicht am Authentication Provider zu liegen, sondern eher ein Problem von Zammad zu sein. Ich werde morgen testweise einen anderen Authentication Provider aufsetzen.

Verzweifelung macht sich langsam breit face-sad
Member: StephanFischer
Solution StephanFischer Sep 20, 2018 at 09:14:03 (UTC)
Goto Top
Meldest dich Vielleicht mal bei Zammad.com

Hier haben sie geschriebn sie suchen freiwillige um den Fehler zu reproduzieren.

https://github.com/zammad/zammad/issues/2174#issuecomment-422728201