Ich habe Schwierigkeiten zu entscheiden, wie ich meinem SignalR-Dienst am besten Authentifizierung und Autorisierung hinzufügen kann.
Momentan wird es in Owin zusammen mit einem WebApi2-Webservice gehostet. Ich benutze OAuth2 Bearer Token, um sich mit diesen zu authentifizieren, und es funktioniert perfekt. Ich frage mich jedoch, ob sie für SignalR geeignet sind?
Mein Client ist JavaScript-basiert und SignalR verwendet WebSockets, falls verfügbar. Das bedeutet, dass ich den Berechtigungsheader nicht verwenden kann. Ich habe herausgefunden, dass ich das Token mit der Eigenschaft qs liefern kann, bevor ich mich verbinde. Aber natürlich läuft ein OAuth2 Access Token ab (und relativ kurz in meiner Implementierung). Ich nehme an, dass das Aktualisieren der Eigenschaft qs keinen Unterschied macht, sobald sie verbunden ist (insbesondere bei Web-Sockets).
Ich nehme an, meine Frage ist, wie man SignalR am besten mit einem Sicherheitstoken, einem Ticket oder irgendeiner Art von Autorisierungsinformation versorgt? Vorzugsweise ein Weg, der sowohl auf meinem WebApi als auch auf SignalR konsistent sein kann, aber ich möchte wissen, wie ich es tun sollte
Danke
Es ist schon einmal passiert - aber wir haben in der signalR-Anfrage nach dem auth-Cookie gesucht, um sicherzustellen, dass nur ein angemeldeter Benutzer Signierbenachrichtigungen abonnieren kann.
Der Fall, in dem das Token abgelaufen ist, wurde nicht behandelt, da das Cookie nur beim Verbinden überprüft wurde. Das war kein Problem für uns.
Tags und Links signalr signalr-hub