2016-04-23 8 views
0

Ich habe Oauth2 in meiner Anwendung implementiert, um API-Aufrufe zu schützen. Mein OAuth- und Ressourcenserver befinden sich in zwei separaten physischen Boxen (aber im selben Netzwerk). Für jeden Aufruf auf dem Ressourcenserver muss der Oauth-Server zur Oauthtoken-Validierung aufgerufen werden.Was ist der schnellste Weg, um Server-zu-Server-Anrufe durchzuführen?

Ich habe Millionen von Anfrage an meinem Ressourcenserver an einem Tag. Momentan, um Oauth Token zu validieren, benutze ich Rest Anruf von Ressource Server zu Oauth Server.

Gibt es eine Möglichkeit, dies schneller zu machen, da jeder Anruf zum Oauth-Server umgeleitet werden muss? Kann webSockets dieses Problem lösen?

+0

kein Experte, aber Abbildung 2 in https://tools.ietf.org/html/rfc6749 zeigt keine Kommunikation zwischen Ressourcenserver und Autorisierungsserver. Der Ressourcenserver sollte das Zugriffstoken ohne zusätzliche Kommunikation validieren können, denke ich. – BitTickler

Antwort

0

Wenn Sie einzelne Zugriffstoken nicht widerrufen müssen, können Sie statusfreie (JSON Web Token) JWT-Tokens verwenden. JWTs müssen nicht auf dem Autorisierungsserver validiert werden. Solange das JWT-Token vom Autorisierungsserver signiert ist (asymmetrische Kryptographie), können Sie das Token auf dem Ressourcenserver selbst mit dem öffentlichen Schlüssel des Autorisierungsservers validieren.

Dies ermöglicht eine schnelle Autorisierung (da es einen Server-zu-Server-Umlauf überspringt) auf Kosten der einfachen Widerrufbarkeit.

Hinweis: Sie können auch ein gemeinsames Geheimnis verwenden (symmetrische Kryptographie), aber dann müssen Sie sicherstellen, dass alle Beteiligten das gemeinsame Geheimnis haben (und es geheim halten).

Blick in den Frühling-security-jwt und https://jwt.io/