Client-Secret Validierung
Clients, die einen Grant verwenden der ein Client Secret benötigt, müssen dieses Secret in ihrem Request an den CMI STS senden.
Der CMI STS vergleicht das erhaltene Secret mit den konfigurierten Secrets für den Client, siehe auch Client Secrets.
Der CMI STS verwendet folgende Secret-Validatoren:
- Plain-Text-Validierung: Das Secret wird in Plaintext übermittelt. Der CMI STS erzeugt aus dem Plaintext einen SHA-512 Hash und vergleicht das Resultat mit dem gespeicherten SHA-512 Hash aus der Client-Konfiguration.
- Hash-To-Hash-Validierung: Das Secret wird als Base64-encodiertes SHA-512 Hash Byte-Array übermittelt. Der CMI STS vergleicht den erhaltenen Hash mit dem gespeicherten SHA-512 Hash aus der Client-Konfiguration.
Das folgende Beispiel zeigt, wie ein Base64-encodierter SHA-512 Hash erzeugt werden kann:
$secret = "my secret"
$secretBytes = [System.Text.Encoding]::UTF8.GetBytes($secret)
$hashedBytes = [System.Security.Cryptography.SHA512]::Create().ComputeHash($secretBytes)
($hashedBytes | ForEach-Object { $_.ToString("x2") }) -join ''