Tramite PowerShell è possibile definire, in una AppOnly di SharePoint, un nuovo secret con scadenza arbitraria.

La prima cosa da sapere è che non è possibile estendere la durata di un secret esistente, ne va creato uno nuovo.

Verifica

Primo passo, connessione al tenant
PowerShell: Connection
Connect-AzureAD -TenantId b32xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxca9
e si recupera la AppOnly già definita
PowerShell: Get AppOnly
$appname="Test UPV"
$app = Get-AzureADServicePrincipal -SearchString $appName -All $true
restituirà nella variabile un oggetto simile a questo
ObjectId                             AppId                                DisplayName
--------                             -----                                -----------
40f9183e-xxxx-xxxx-xxxx-0913dfd84445 91d3a010-xxxx-xxxx-xxxx-3de1bd1d9751 Test UPV
tramite l'ObjectId recuperiamo le informazioni per conferma
PowerShell: Get Details
$appname="Test UPV"
Get-AzureADServicePrincipalPasswordCredential -ObjectId $app.ObjectId
tipo queste dove si vedono solo le date di inizio (StartDate) e fine (EndDate) validità
CustomKeyIdentifier :
EndDate             : 17/05/2023 14:48:12
KeyId               : 74c0bf26-xxxx-xxxx-xxxx-6c8023929d38
StartDate           : 17/05/2022 14:48:12
Value               :
Il secret (Value) viene mostrato solo in fase di creazione, poi non è più visibile.

New secret

Con queste info si può creare un nuovo secret impostando una specifica data di scadenza (EndDate)
PowerShell: Get AppOnly
$startDate = Get-Date
$endDate = $startDate.AddYears(10)
$keyIdentifier = "Expire_$($endDate.ToString("yyyy"))"

$secret = New-AzureADServicePrincipalPasswordCredential -ObjectId $app.ObjectId -CustomKeyIdentifier $keyIdentifier -StartDate $startDate -EndDate $endDate

$secret.Value # visualizzo il secret
la variabile $secret conterrà una cosa simile a questa
CustomKeyIdentifier : {69, 120, 112, 105...}
EndDate             : 17/05/2071 21:45:28
KeyId               :
StartDate           : 17/05/2022 21:45:28
Value               : jisf7vDUgO.....................EID0DM7RWc=
Copiare il valore del secret contenuto in $secret.Value.

Per vedere il valore contenuto nel campo CustomKeyIdentifier (byte[])
PowerShell
[System.Text.Encoding]::UTF8.GetString($secret.CustomKeyIdentifier)
# ritorna Expire_2032
Potrebbe interessarti anche: