12 novembre 2014

renouvellement des certificats de token signing/decrypting ADFS

Pour augmenter la duré des certificats de token:

http://social.technet.microsoft.com/wiki/contents/articles/4588.ad-fs-2-0-how-to-modify-the-duration-of-autocertificaterollover-certificates.aspx

Steps

1. Launch an administrative Powershell console window
2. Add the AD FS 2.0 Powershell snap-in:

        Add-PsSnapin Microsoft.Adfs.Powershell

3. Set the CertificateDuration property in the Federation Service Properties:

        Set-AdfsProperties -CertificateDuration integer-number-in-days

        Example for a 5-year certificate duration
        Set-AdfsProperties -CertificateDuration 1825

Note: la switch -urgent mentionner dans l'article technet vous empêche de pouvoir faire un rollback en cas de problème car elle supprime l'ancien certificat et le remplace par un nouveau donc je ne recommande pas de mettre cette switch mais plutôt de temporairement désactiver le AutoCertificateRollover et de modifier manuellement le primary certificate.

Pour renouveller les certificats de token ADFS, il faut utiliser les commandes powershell suivante:



Add-PsSnapin Microsoft.Adfs.Powershell

Set-AdfsProperties -CertificateDuration 1825

Update-AdfsCertificate



Lorsque vous aurez fait le Update-AdfsCertificate, dans la console ADFS, vous allez voir 2 certificats pour les token signing et token decrypting, dont un qui est disponible à partir de la date que vous venez de généré (date du jour).


Ensuite, il faut désactiver le auto-rollover des certificats pour pouvoir gérer manuellement quel certificat est le primary en utilisant la commande powershell suivante:

Set-ADFSProperties -AutoCertificateRollover $false




Maintenant vous pouvez aller dans la console ADFS et modifier le « Token-Signing certificate » avec un clic droit « Set as primary » sur le certificat secondaire. Répétez l’opération avec le « Token-Decrypting certificate ».


NOTE : Si jamais un problème insurmontable survient vous pouvez faire un retour en arrière en faisant un clic droit sur l’ancien certificat qui est maintenant secondaire et choisir « Set as primary ».
Ensuite il faut renouvelé les relaying party trust: Pour office 365 il faut utilisé l'outil "windows azure active directory module for powershell"


ATTENTION : si vous faites un RollBack et que vous aviez déjà remplacé le certificat avec certains trusts vous devrez les mettre à jour à nouveau si vous changez le primary certificate.
 
Rebooter les serveurs ADFS est une suggestion optionnelle mais recommandé par Microsoft. Je recommande donc de rebooter les serveurs ADFS à tour de rôle en débutant par le principal. Si vous avez des serveurs ADFS proxy, il faut allez dessus et re-faire le "AD FS 2.0 Federation Server Proxy Configuration Wizard."



Renouvelez les certificats sur les « relaying party trust », pour voir les trusts présents il faut ouvrir « AD FS 2.0 Management », naviguez jusqu’à Trust Relationships --> Relaying Party Trusts, regardez dans la fenêtre du milieu les trusts présents qui ont le statut « Enable » à « Yes »
Après avoir changé les certificats, il faut aller changer le token-signing dans les applications externe qu’on à configurer avec ce certificat :

     
Office 365:

Pour Office365, allez sur le serveur adfs, lancez le « Windows Azure Active Directory Module for Windows PowerShell »


Connect-MSOLService  (vous allez avoir un pop-up qui demande les credentiels {utliser votre compte admin office 365 ex: admin@companyOnMicrosoft.com})

Pour voir quel domaines sont synchronisé avec Office 365 et savoir quel domaine est le principal, utiliser la commande suivante:

Get-MsolDomain | fl name, rootdomain  (si plusieurs domaine s'affiche vous allez les voir avec le nom du domaine qui est le principal (RootDomain) pour faire la commande suivante utiliser celui de vos domaines qu n'a pas de RootDomain et qui n'est pas *.OnMicrosoft.com pour la commande suivante, si un seul domaine apparaît autre que celui *.OnMicrosoft.com alors vous n'avez pas besoin de la switch -SupportMultipleDomain dans la commande suivante.
 
Update-MsolFederatedDomain -DomainName compagnie.ca -SupportMultipleDomain

Ensuite il faut edité le "claim rule #3" et remplacer le contenu par le texte suivant sans les guillemets:
" c:[Type == "http://schemas.xmlsoap.org/claims/UPN"]
 => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^((.*)([.|@]))?(?<domain>[^.]*[.].*)$", "http://${domain}/adfs/services/trust/")); "


Pour confirmer que le certificat dans le cloud est le même que celui sur le serveur ADFS utiliser la commande suivante:

Get-MsolFederationProperty -DomainName compagnie.ca
Comparez les valeurs des Serial number et Thumbprint des certificats dans les sources ADFS server et Microsoft Office 365


Sharefile:

Pour Sharefile, il faut exporté le "token signing certificate" en base64 x.509 et l'ouvrir avec notepad, copié/collé le contenu du certificat dans la page d'administration de sharefile dans la section SSO.

Assurez-vous de vider la cache et les cookies de votre navigateur lors de vos tests pour ne pas avoir de faut résultat
N.B. Si vous avez des problème n'oubliez pas que vous pouvez toujours remettre l'ancien certificat temporairement en allant dans la console ADFS et choisir "Set as primary".

Lorsque vous avez testé tous vos trust et que tout fonctionne bien, remettez le rollover automatique des certificats à $True avec les commande Poweshell suivantes:

Add-PsSnapin Microsoft.Adfs.Powershell
Set-ADFSProperties -AutoCertificateRollover $True

Lorsque vous retournez dans la console ADFS dans la section certificat faire un refresh et vous faites un clic droit sur le certificat, l'option "Set as primary" sera grisé. Si ce n'est pas le cas vos certificats ne feront pas de Rollover automatiquement.

Voilà !

Aucun commentaire:

Publier un commentaire