2016-08-04 10 views
0

Ich suche nach Optionen, um die Client-ID für jede Anfrage (falls verfügbar) zu protokollieren, sodass sie für die Berichterstellung verwendet werden kann, um die Anzahl der Anfragen pro Client zu ermitteln. IDs protokolliert die Client-ID für die Token-Anforderung, wenn LogLevel Information ist. Wenn wir den IDS-Code betrachten, müssen wir die Client-ID aus AuthenticationHeader oder aus dem Body der Anfrage extrahieren. Wollte wissen, ob da irgendetwas in ids eingebaut ist um dies zu tun. Irgendwelche anderen Möglichkeiten, dies zu tun?Identity Server 3: Protokollierung der Client-ID für die Berichterstellung

Antwort

3

Absolut!

Die Umsetzung der IEventService ist, was Sie suchen.

Eine Übersicht über alle Ereignisse, die an den IEventService übertragen werden, kann in der Quelle dieser internen Erweiterungsmethoden eingesehen werden. IEventServiceExtensions.

Die AccessTokenIssuedEvent, AuthorizationCodeDetails und RefreshTokenDetails Veranstaltungen gehören die ClientId Empfang des Tokens - so können Sie ein Überwachungsprotokoll erstellen.

Die Standardimplementierung von IEventService ist die DefaultEventService, die den Protokollierungsmechanismus verwendet, den Sie für IdentityServer verwenden. Sie können dies jedoch auslagern, um sich bei einer Datenbank anzumelden, wenn Sie dies bevorzugen.

+0

Dies ist sehr hilfreich. Ich habe über den Event-Service geschaut. – Shetty

+0

Eines der Dinge, die ich nach der Implementierung beobachtet habe, ist, dass Intropection Endpunkt das rohe Token oder Referenz Token immer in Logs protokolliert. Isnt ist ein Risiko, das tatsächliche Token in Protokollen zu protokollieren? Ein offensichtlicher Grund dafür? – Shetty

+0

werden wir das ansprechen. Danke für die Berichterstattung. – leastprivilege

Verwandte Themen