Wir verwenden einen E-Mail-Dienstanbieter (ESP) von Drittanbietern, um E-Mails an unsere Kunden zu senden. Für eine der E-Mails muss eine Datei angehängt sein. Um dies zu erreichen, müssen wir dem ESP eine URL der Datei geben. Der ESP lädt die Datei herunter und hängt sie an die E-Mail an.Oauth2-Token, das den Zugriff auf eine einzige Ressource einschränkt
Wir arbeiten jetzt an einer Lösung zur Sicherung der URL, um das Risiko von nicht autorisierten Downloads zu begrenzen. Der ESP kann sich nicht selbst authentifizieren, während er die Anfrage an die URL richtet. Die einzige Option, die wir sehen, besteht darin, die URL nur schwer zu erraten und für eine begrenzte Zeit gültig zu machen.
Die Art und Weise, wie wir dies erreichen wollen, besteht darin, ein Token in den Querystring der URL zu setzen. Der Dienst, der die Datei hostet, validiert das Token und autorisiert den Zugriff. Das Token muss rechtzeitig ablaufen und nur Zugriff auf eine bestimmte Datei gewähren.
Wir haben bereits eine IdentityServer 3-Implementierung, die einen oAuth2 Security Token Service ausführt. Unser Plan sieht vor, dass dieser Dienst die Tokens generiert, die in die Abfragezeichenfolge der Datei-Download-URL eingefügt werden. Wir überlegen, einen benutzerdefinierten oAuth2-Grant-Typ zu erstellen, um Token zu unterstützen, die nur den Zugriff auf eine bestimmte Ressource erlauben.
Dies wäre ein Beispiel für eine Anforderung an den oauth2 Token-Endpunkt mit dem benutzerdefinierten Zuschuss: geben
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=custom_grant&scope=attachment.read&resource_id=xxxxx
Der STS wird das Token ein Token mit einem Anspruch der Ressource-ID zurückzukehren Zugang zu.
Ist der richtige Anwendungsfall für einen benutzerdefinierten Grant-Typ oder sollten wir nach einer anderen Möglichkeit suchen, dies zu implementieren?
kann nicht Client-Anmeldeinformationen für diese verwendet werden, gewähren (mit Rahmen, wie Sie beschrieben), aber der Anspruch an die ESP weitergegeben innerhalb für das Senden die URL? Ihr Client fragt den STS nach dem Token (Sie können sich mit Ihren privaten Anmeldeinformationen beim STS authentifizieren, um ein Zugriffstoken zu erhalten), das Sie dann als Anlagepfad übergeben können. – SilverlightFox
Wir haben darüber nachgedacht, aber das Problem ist, dass dieses Zugriffstoken Zugriff auf alle Ressourcen für diesen Bereich statt auf einen bestimmten geben wird. Der Ressourcenbezeichner muss zum Token hinzugefügt werden, was in der Client-Berechtigungsnachweisgenehmigung nicht möglich ist. –
Kann der Umfang nicht für einen einzelnen Anhang eingeschränkt werden? z.B. 'attachment.read.attachmentid.142184712984721' – SilverlightFox