2016-07-13 4 views
0

zu authentifizieren Ich verwende Iframe innerhalb einer meiner Vorlagen, für die Authentifizierung.Iframe verwenden, um Benutzer schnell in angular app

Beispiel:Wenn ein Benutzer eine Ausbildung abgeschlossen ist, hat er seine Identität zu überprüfen, indem sie mit einem Ping Identity Server zu authentifizieren, die auf eine andere URL umleiten werden in Abhängigkeit von den Anmeldeinformationen hinzugefügt.

Die Ping-Identität wird auf einer anderen Domain gehostet und die App befindet sich auf einer anderen Domain. Ich kenne die Probleme mit dem Ursprung des Kreuzes. Aber ich habe einen Server vor unserer App, der dieselbe Domain wie die App hat und die Ping-Identität von innen aufruft. Also verwende ich diesen Server für die Authentifizierung.

Die Sache ist, ich bekomme immer noch CORS-Fehler in der Konsole. Was ist der beste Weg für eine solche Authentifizierung, unter Berücksichtigung von Benutzerfreundlichkeit und Sicherheit?

+0

"Aber ich habe einen Server vor unserer App, der dieselbe Domain wie die App hat und die Ping-Identität von innen aufruft." --- Sie sind also hinter einem Reverse-Proxy in der gleichen Domäne wie der PingFed-Server? Wenn ja, sollte CORS nicht ins Spiel kommen. Es ist der Browser, der Cross-Origin-Ressourcen basierend auf den verwendeten Domains und der CORS-Konfiguration verhindert. Wenn also der iFrame dem Browser anzeigt, dass er vom Reverse-Proxy (derselben Domain) geladen wird, sollte es in Ordnung sein - wenn es NICHT der Reverse-Proxy ist. dann wird es scheitern. –

+0

Es ist kein Proxy-Server –

+0

Dann müssen Sie Ihre Frage klären. Erklären Sie, wie Sie sind, oder denken Sie, dass Sie diesen anderen Server benutzen können ... oder entfernen Sie ihn aus der Gleichung. –

Antwort

0

Dann einfach in PingFederate konfiguriert CORS erhalten, indem die Header zu verwalten: https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#concept_addingCustomHttpResponseHeaders.html

Sie dies durch Bearbeitung zu tun: /pingfederate/server/default/data/config-store/response-header-runtime-config.xml .

Verwenden Sie http://www.html5rocks.com/en/tutorials/cors/, um Sie durch CORS zu führen.

+0

Das ist, ich kann in dieser Konfiguration keine Änderungen vornehmen, hatte es schon versucht. Stattdessen darf ich die Weiterleitungs-URL ändern, was ich gerade mache. Aber die Frage ist: "Was ist der beste Weg für eine solche Authentifizierung, unter Berücksichtigung von Benutzererfahrung und Sicherheit?" –

+0

IMO? Befreien Sie sich von iFrames und tun Sie dies, indem Sie zum Identity-Provider umleiten, der einen bestimmten Authentifizierungskontext anfordert und die Authentifizierung erzwingt. Das ist der "SAML" Weg, es zu tun ... –

+0

Einverstanden, aber es war die Client-Anforderung, Benutzer sollte nicht umgeleitet werden, aber saml fedLogin innerhalb Popup sollte angezeigt werden. Es wurde eine Problemumgehung gefunden, um das obige Problem zu beheben. Trotzdem danke. –