Aggiunta di un'attestazione personalizzata a un criterio Web App tramite PowerShell in SharePoint 2010

Aggiunta di un'attestazione personalizzata a un criterio Web App tramite PowerShell in SharePoint 2010

Ho trovato questo processo più difficile di quanto annunciato e, dopo averlo eseguito, più facile del previsto. Per questo motivo ho deciso di creare un rapido post sull'argomento. L'operazione da eseguire consiste nell'aggiungere un'attestazione personalizzata a un criterio Web App tramite PowerShell. Il processo funziona in modo abbastanza semplice nell'interfaccia utente di Amministrazione centrale. In PowerShell tuttavia ho inizialmente scelto l'approccio per la creazione di un nuovo oggetto New-SPClaimsPrincipal da aggiungere ai criteri dell'area. Riporto qui di seguito i diversi approcci tentati (per non considerare tutte le diverse permutazioni prese in esame):

#$tp = Get-SPTrustedIdentityTokenIssuer -Identity "ADFS with Roles"
#$cp = Get-SPClaimProvider -Identity "BasketballTeamProvider"

#$account = New-SPClaimsPrincipal -ClaimValue "DVK Jovenut" -ClaimType "Role" -TrustedIdentityTokenIssuer $tp
#$account = New-SPClaimsPrincipal -Identity "DVK Jovenut" -TrustedIdentityTokenIssuer $tp
#$account = New-SPClaimsPrincipal -Identity "c:0ǹ.c|basketballteamprovider|dvk jovenut" -IdentityType EncodedClaim
#$account = New-SPClaimsPrincipal -ClaimValue "DVK Jovenut" -ClaimType "https://schema.steve.local/teams" -ClaimProvider $cp.ClaimProvider
#$account = New-SPClaimsPrincipal -EncodedClaim "c:0ǹ.c|basketballteamprovider|dvk jovenut"

Molti di questi approcci hanno consentito di aggiungere l'attestazione, ma l'identificatore non era corretto dal momento che il criterio non veniva implementato. Infatti, nonostante avessi concesso il controllo completo, gli utenti con l'attestazione non riuscivano comunque a eseguire l'accesso. Questa è stata la fase del processo "più difficile di quanto annunciato". Per ottenere il corretto funzionamento, si è rivelato poi inutile creare un oggetto New-SPClaimsPrincipal. Viene riportato di seguito il comando di PowerShell che ha consentito di aggiungere e utilizzare correttamente l'attestazione:

$WebAppName = "https://fc1"

$wa = get-SPWebApplication $WebAppName

$account = "c:0ǹ.c|basketballteamprovider|dvk jovenut"

$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"Claims Role")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()

Alla fine della giornata, la soluzione corretta è stata ottenuta aggiungendo l'attestazione personalizzata come semplice stringa. Per ottenere il valore $account, ho inizialmente aggiunto il criterio tramite Amministrazione centrale e quindi ho copiato il valore dell'attestazione visualizzato. Mi auguro che queste indicazioni vi consentano di risparmiare tempo qualora dobbiate eseguire questa stessa procedura in futuro.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Adding A Custom Claim to a Web App Policy via PowerShell in SharePoint 2010.