OpenID Connect
Configurer OpenID Connect avec Universal.
OpenID Connect nécessite une licence.
OpenID Connect est une couche d'authentification au-dessus de OAuth 2.0, un cadre d'autorisation. Il est pris en charge par de nombreux fournisseurs et offre la possibilité de s'authentifier auprès de systèmes comme EntraID.
Ce document décrit les étapes nécessaires pour configurer EntraID OpenID Connect et l'utiliser avec Universal.
Configuration d'Azure Entra ID (Azure Active Directory)
Dans le portail Azure, accédez à votre panneau Entra ID. Ensuite, cliquez sur le nœud Enterprise Application, puis sur New application.

Ensuite, cliquez sur Create your own application.

Sélectionnez un nom pour votre application et choisissez Register an application to integrate with Microsoft Entra ID.

Dans la page Register an application, définissez un URI de redirection. Il s'agira de l'URL du serveur PowerShell Universal vers laquelle Entra ID redirigera l'utilisateur. Cette valeur est définie dans le fichier de configuration PowerShell Universal, appsettings.json.
Maintenant que l'application a été créée, depuis la page Enterprise Applications, cliquez sur Single sign-on, puis sur Go to application. Vous accéderez ainsi à la page d'inscription de l'application.

Accédez à Certificates and secrets et définissez un nouveau secret. Celui-ci sera utilisé avec le fichier de configuration PowerShell Universal.

Nous devons maintenant recueillir plusieurs informations de l'application pour les fournir à PowerShell Universal. Depuis la page d'accueil de l'application, enregistrez l'Application (client) ID et le directory (tenant) ID.

Mappage des revendications
Afin de fournir des revendications de groupe à PowerShell Universal, vous devez exposer les revendications de groupe depuis l'inscription de votre application. Cliquez sur Token Configuration, puis sur Add groups claim.

Après avoir cliqué sur Add groups claim, vous aurez la possibilité de sélectionner les groupes fournis. Si vous sélectionnez All Groups, les revendications de groupe seront transmises à PowerShell Universal.
Si vous sélectionnez Groups assigned to the application, assurez-vous de cocher la valeur Emit groups as role claims. Ce paramètre nécessite un plan Entra ID payant.

Pour attribuer un groupe à l'inscription de votre application, localisez votre application dans Enterprise Applications et cliquez sur User and Groups. Ensuite, cliquez sur Add User\Group et sélectionnez les groupes que vous souhaitez attribuer à votre application.
Une fois que vous avez configuré la revendication de groupe dans Entra ID, vous pouvez mettre à jour les mappages de revendications de PowerShell Universal vers les groupes fournis.
Pour chaque rôle que vous souhaitez attribuer à un groupe Entra ID, spécifiez le Claim Type et la Claim Value pour ce rôle. Par exemple, j'ai un groupe dans mon environnement avec l'ID 446832da-d4ad-4972-b0a2-eda736129928. Le Claim Type pour cet objet est http://schemas.microsoft.com/ws/2008/06/identity/claims/groups.
Pour attribuer ceci au groupe administrateur, je procéderais comme suit.

Les utilisateurs de ce groupe feraient désormais partie du rôle Administrator dans PowerShell Universal.
Dépassements de groupe
Pour les organisations dont les utilisateurs appartiennent à de nombreux groupes, vous devrez limiter le nombre de groupes envoyés à PowerShell Universal. L'envoi d'un grand nombre de groupes peut dépasser la taille du jeton et entraîner des échecs d'autorisation. Si vous souhaitez limiter les groupes, sélectionnez Groups assigned to the application.

Pour ajouter des groupes à l'application, revenez à la page Enterprise applications et sélectionnez Users and groups.

Cliquez sur la valeur Add user/group pour attribuer ces groupes à votre application. Lorsque les utilisateurs se connectent à PowerShell Universal, seules ces revendications de groupe seront fournies.
Pour en savoir plus sur les dépassements de groupe, cliquez ici.
Configuration d'Universal pour Entra ID
Utiliser Appsettings.json
Pour en savoir plus sur appsettings.json, consultez notre page Paramètres.
Maintenant que nous avons terminé la configuration d'une inscription d'application AzureAD, nous pouvons mettre à jour le fichier appsettings.json avec les paramètres appropriés. Pour mon application, cela ressemblerait à ceci.
Si vous utilisez Chrome, vous devrez également activer HTTPS. Vous verrez une erreur 500 si HTTPS n'est pas activé.
Utiliser Authentication.ps1
Vous pouvez utiliser la console d'administration pour configurer OpenID Connect. Nous recommandons cette méthode car vous n'aurez pas besoin de redémarrer le service PowerShell Universal après avoir configuré OIDC.
Pour ajouter une nouvelle méthode d'authentification, accédez à Security \ Authentication et ajoutez le fournisseur OpenID Connect.

Une fois le fournisseur ajouté, vous pouvez cliquer sur le bouton de détails pour saisir les paramètres dont vous aurez besoin pour vous authentifier auprès de votre fournisseur OIDC. Après avoir défini les options OIDC, activez le fournisseur et déconnectez-vous. En visitant la page /admin, vous serez invité à vous connecter via OIDC.

Jetons d'accès délégués
Vous pouvez utiliser les jetons d'accès générés lors d'une connexion OIDC pour d'autres services auxquels l'utilisateur peut avoir accès. Dans votre fournisseur OIDC, comme Entra ID, vous pouvez accorder des autorisations supplémentaires au jeton.

Vous devrez également activer les jetons d'accès dans le flux d'authentification afin que le jeton fournisse l'accès aux ressources nécessaires.

Enfin, dans votre fichier PSU appsettings.json, vous devez vous assurer que SaveTokens est activé, que le type de réponse inclut token et que la ressource à laquelle vous souhaitez accéder est incluse dans le paramètre Resource. L'URL que vous spécifiez dans la ressource doit être répertoriée dans le fournisseur.
L'exemple ci-dessous ajoute une ressource pour Microsoft O365.
Dans votre tableau de bord, vous aurez désormais accès à une variable $AccessToken et $IdToken que vous pouvez utiliser avec des cmdlets nécessitant une autorisation.
Par exemple, la cmdlet Connect-AzureAd accepte un jeton d'accès.
Jetons d'actualisation
Vous pouvez configurer Azure Active Directory et PowerShell Universal pour fournir des jetons d'actualisation permettant de demander de nouveaux jetons si le jeton d'accès expire. Pour ce faire, vous devrez activer offline_access dans l'inscription de votre application.

Lors de la configuration de PowerShell Universal, vous devez demander la portée offline_access, définir SaveTokens sur true et utiliser le type de réponse id_token.
Une fois configuré, vous pouvez accéder à la variable $RefreshToken dans vos scripts et applications.
Configuration d'Okta
Okta prend en charge OpenID Connect. Vous pouvez configurer une application pour autoriser l'authentification auprès des instances PowerShell Universal.
Dans votre console d'administration Okta, développez Applications et cliquez sur Applications. Cliquez ensuite sur Create App Integration.

Sélectionnez OIDC et Web Application.

Nommez votre application et définissez l'URL de redirection de connexion utilisée pour appeler votre serveur PowerShell Universal. Vous devrez spécifier cette URL de rappel dans votre configuration PowerShell Universal.

Une fois votre application créée, notez votre Client ID et votre Client Secret. Vous les spécifierez dans votre configuration PowerShell Universal.

Dans l'onglet Sign On, spécifiez le filtre de revendications de groupe à utiliser pour fournir des revendications à PowerShell Universal. Ces revendications peuvent être utilisées pour attribuer des rôles en fonction de l'appartenance aux groupes. Le filtre suivant retourne toutes les revendications.

Une fois votre application configurée, vous pouvez configurer PowerShell Universal.
Configuration d'Universal pour Okta
Une fois que vous avez défini votre application Okta, vous pouvez configurer votre fichier appsettings.json pour utiliser le fournisseur lors des connexions. Vous trouverez ci-dessous un exemple de la section requise pour qu'Okta fonctionne. Notez la fonctionnalité de portée, qui est requise pour récupérer l'appartenance aux groupes.
Contrôle d'accès basé sur les rôles
Afin de rechercher l'appartenance aux groupes pour Okta, vous devrez utiliser la variable $UserInfo disponible dans roles.ps1. Cette variable fournit des informations supplémentaires sur l'utilisateur qui se connecte.
La propriété groups contiendra une liste des groupes dont l'utilisateur est membre. Vous pouvez valider l'appartenance en vérifiant si la liste contient le groupe souhaité.
Jetons d'accès délégués
Les jetons d'accès sont disponibles pour les utilisateurs dans leurs scripts. Vous pouvez utiliser des jetons d'accès dans les tâches démarrées par les utilisateurs et dans les tableaux de bord.
Par exemple, vous pourriez retourner les informations de l'utilisateur actuel en utilisant le jeton d'accès fourni par Okta.
Affichage des informations de revendication
Si vous n'êtes pas certain des informations de revendication envoyées à PowerShell Universal par votre fournisseur d'identité, vous pouvez utiliser le bouton View Claim Information de la page Security \ Roles pour afficher tous les rôles fournis à PSU par le système distant.
Mis à jour
Ce contenu vous a-t-il été utile ?