Die Delegierungssignatur von Azure API Management schlägt für den ChangeProfile-Vorgang fehlC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Die Delegierungssignatur von Azure API Management schlägt für den ChangeProfile-Vorgang fehl

Post by Anonymous »

Ich verwende Azure API Management mit Delegation und kann die Signatur für alle Vorgänge außer ChangeProfile erfolgreich validieren.
Ich folge dieser Dokumentation:
https://learn.microsoft.com/en-us/azure ... delegation
Für den ChangeProfile-Vorgang führt die Signaturberechnung jedoch immer zu einem anderen Ergebnis Wert.
Unten ist der Code, der die Signatur generiert:

Code: Select all

public async Task OnGetAsync(
string userId,
string operation,
string returnUrl,
string salt,
string sig
) {
const string signUpOperationId = "SignUp";
const string signInOperationId = "SignIn";
const string signOutOperationId = "SignOut";
const string changePasswordOperationId = "ChangePassword";
const string changeProfileOperationId = "ChangeProfile";
const string closeAccountOperationId = "CloseAccount";

var signature = string.Empty;
using (var encoder = new HMACSHA512(Convert.FromBase64String("azure-apim-validation-key-here"))) {
switch (operation) {
case signInOperationId:
case signUpOperationId:
signature = Convert.ToBase64String(
encoder.ComputeHash(Encoding.UTF8.GetBytes($"{salt}\n{returnUrl}")));
break;
case signOutOperationId:
case changePasswordOperationId:
case closeAccountOperationId:
case changeProfileOperationId:
signature = Convert.ToBase64String(
encoder.ComputeHash(Encoding.UTF8.GetBytes($"{salt}\n{userId}")));
break;
}
}

if (sig != signature) {
// invalid signature
}

// rest of the code
}
Die Signatur für alle anderen Vorgänge stimmt immer mit dem Abfrageparameter sig überein, aber der ChangeProfile-Vorgang schlägt bei der Validierung durchweg fehl.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post