Ich erstelle ein ASP.NET-Web-API-Projekt, das OWUN-OAuth-Bearer-Token-Authentifizierung verwendet. Ich habe die API für eine einzelne Maschine gut funktioniert, aber nicht wirklich verstehen, wie ich die API über einen Lastenausgleich zu mehreren Maschinen skalieren würde. Es scheint, dass der Computer, der den Benutzer/das Passwort authentifiziert und das Bearer-Token bereitstellt, der einzige Computer ist, der dieses Beamtoken für zukünftige Anfragen authentifizieren könnte. Wie kann ich einrichten, dass jeder Rechner hinter dem Load Balancer das Token authentifizieren kann? Ich bin ziemlich neu in dieser Art der Authentifizierung, also vergib mir, wenn meine Terminologie falsch ist.Skalieren von ASP.NET bei der Verwendung von Bearer-Tokens
1
A
Antwort
1
Sie müssen das Bearer-Token (oder das JWT-Token) mit demselben audienceId und demselben Zielgruppengeheimnis erstellen. Auf diese Weise kann die Maschine sie korrekt validieren.
ich verwendet sie in meine web.config-Datei zu halten, zum Beispiel wie folgt aus:
<add key="as:AudienceId" value="localhost" />
<add key="as:AudienceSecret" value="YVZQUXd6VTZnWkpiR28wV0ROSTZCUzl1RzRRYTRnSDE=" />
Dann können Sie sie benutzen, um Ihre jwt Token zu generieren:
internal class CustomJwtFormat : ISecureDataFormat<AuthenticationTicket>
{
private readonly string _audienceId = SettingsProvider.CurrentAudienceId;
private readonly string _issuer = SettingsProvider.CurrentIssuer;
private readonly string _symmetricKeyAsBase64 = SettingsProvider.CurrentAudienceSecret;
public String Protect(AuthenticationTicket data)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
var keyByteArray = TextEncodings.Base64Url.Decode(_symmetricKeyAsBase64);
var signingKey = new HmacSigningCredentials(keyByteArray);
var issued = data.Properties.IssuedUtc;
var expires = data.Properties.ExpiresUtc;
var token = new JwtSecurityToken(_issuer, _audienceId, data.Identity.Claims, issued.Value.UtcDateTime,
expires.Value.UtcDateTime, signingKey);
var handler = new JwtSecurityTokenHandler();
var jwt = handler.WriteToken(token);
return jwt;
}
public AuthenticationTicket Unprotect(String protectedText)
{
throw new NotImplementedException();
}
}
Zweitens müssen Sie Verwenden Sie den gleichen Computerschlüssel in web.config auf allen Ihrer Webfarm-Maschine wie folgt:
<machineKey validationKey="9E7EB24C628533D0F2A0B8CE2E740DD524472EA4A68C21325D007D15ED22E7DF81300BBE2AC70B6259CB41F22FA95AAFECA5BE8D72D8F7A80F13FCECE49DFFC1" decryptionKey="340A7B141479D146A50B59FAF7E4DD7218D6310B8D121178FFE3CE2AC198CD34" validation="SHA1" decryption="AES" />
Verwandte Themen
- 1. Was ist der Nachteil bei der Verwendung von asp.net MVC?
- 2. Schlüsselrisiken bei der erstmaligen Verwendung von ASP.NET MVC
- 3. Fehler bei der Verwendung von Office365 SMTP in Asp.Net
- 4. Standardroute bei der Verwendung von ASP.NET MVC Attribute Routing
- 5. ASP.NET Update-Fortschritt bei der Verwendung von HttpContext
- 6. Ausnahme bei der Verwendung von ASP.NET MVC und Entity Framework
- 7. Probleme bei der Verwendung von Crystal Reports in Asp.net
- 8. bei der Verwendung von EditorFor
- 9. Overhead bei der Verwendung von Keyword dies?
- 10. Richtige Methode zur Verwendung von JQuery bei der Verwendung von MasterPages in ASP.NET?
- 11. Benutzerdefinierte Fehlerseite bei der Verwendung von Owin
- 12. Leistungsprobleme bei der Verwendung von PrincipalContext.ValidateUser
- 13. Set "Von" -Adresse bei der Verwendung von System.Net.Mail.MailMessage?
- 14. Rate der Akzeptanz von Sockets bei der Verwendung von gen_tcp
- 15. Fehler bei der Verwendung von [FBSession openActiveSessionWithPublishPermissions: ..]
- 16. Problem bei der Verwendung von MFMailComposeViewController
- 17. ERR_CONNECTION_RESET Fehler bei der Verwendung von WAMP
- 18. Problem bei der Verwendung von MemoryDC
- 19. OOM bei der Verwendung von Solr DIH
- 20. MySQLdb Fehler bei der Verwendung von cursor.execute()
- 21. Programm stürzt bei der Verwendung von Realloc
- 22. Bypass .htaccess bei der Verwendung von download_url
- 23. Rückgabewert bei der Verwendung von cProfile
- 24. Absturz bei der Verwendung von memcpy?
- 25. Seltsames Verhalten bei der Verwendung von Sockets
- 26. Keras friert bei der Verwendung von ImageDataGenerator
- 27. Fehler bei der Verwendung von "su" -Befehl
- 28. Fehler bei der Verwendung von unterschwelligem Python
- 29. Sicherheit bei der Verwendung von shareduserid
- 30. Nullpointer bei der Verwendung von Layout