• Bewerte uns auf OMR Reviews: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

Powershell new-nspapikey

EK1903

Well-known member
Hallo zusammen, ich habe eine Frage zum Generieren eines API-Keys im NSp. (Wir nutzen aktuell NSP on-prem in der Version 15.1.

Mein Ziel ist es, den Safeguard aufzuräumen. Das bedeutet, dass alle nicht-besuchten Links der letzten X Monate automatisch gelöscht werden (Remove-NspUrlSafeguardWhitelistEntry) – das bekomme ich soweit hin. Allerdings um es ganzheitlich automatisieren zu können, brauche ich einen API-Key.

Mit „new-nspapikey“ habe ich dies probiert, aber scheitere tatsächlich an dem Parameter „-permissions“. Können Sie mir bitte weiterhelfen? Leider ist die Doku dazu nicht ganz hilfreich/ausführlich.
Vielen lieben Dank im Vorfeld
 
evtl. kann mir hier noch jemand helfen.
1. API Key ist generiert, leider kriege ich bei einem einfach Request immer eine 401er Meldung.

Habt ihr zufällig ein Beispiel, wie man per APi Key Daten abrufen kann?
 
Die Authentifizierung mittels API Key ist aktuell noch etwas aufwändiger da "Connect-Nsp" noch nicht direkt mit einem API Key arbeiten kann.
Daran wird bereits gearbeitet ;)


Daher musst du dir zuerst einen JWT vom Identity Service holen und mit diesem dann die Anmeldung durchführen:

Ignorieren von TLS Fehlern (falls dein Zertifikat nicht passt):
C#:
add-type @"
 using System.Net;
 using System.Security.Cryptography.X509Certificates;
 public class TrustAllCertsPolicy : ICertificatePolicy {
 public bool CheckValidationResult(
 ServicePoint srvPoint, X509Certificate certificate,
 WebRequest request, int certificateProblem) {
 return true;
 }
 }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Anfragen des JWT:
C#:
#Hostname für Abfrage definieren
$Hostname="<hostname>:[port]"
#Header für Request definieren
$Headers=@{}
$Headers.Add("Authorization", "Bearer <API-Key>")
#Anfrage an den Identity-Service
$Response = Invoke-WebRequest -Uri "https://$Hostname/api/identity-service/account/login/pat" -Method GET -
Headers $Headers -UseBasicParsing
#Token aus Antwort extrahieren
$Token = ($Response.Content | ConvertFrom-Json).token

Anmelden in der PowerShell:
C#:
Connect-Nsp -IgnoreServerCertificateErrors -Token $Token

"-IgnoreServerCertificateErrors" ist natürlich auch wieder nur notwendig wenn es sonst Probleme mit dem Zertifikat geben würde.


Alternativ zu den PowerShell CmdLets wäre es noch möglich das ganze per ODATA zu machen, dazu gibt es derzeit aber noch keine wirkliche Dokumentation :(

LG
Jan
 
Zurück
Oben