Intégration à un fournisseur d’identité personnalisé

Si votre organisation utilise un fournisseur d’identité dans le cloud (IdP) qui n’est pas pris en charge nativement par Jamf Connect, vous pouvez utiliser l’option IdP personnalisé pour l’intégrer à une solution IdP prenant en charge le protocole d’authentification OpenID Connect.

Exigences

Fournisseur d’identité qui prend en charge le protocole d’authentification OpenID Connect.

  1. Suivez les instructions de votre IdP pour créer une intégration d’app OpenID Connect qui génère les valeurs suivantes.
    • Identifiant client

      Identifiant unique pour l’intégration de votre app Jamf Connect.

    • URI de redirection

      URL utilisée pour rediriger les utilisateurs au cours du processus d’authentification.

      Pour l’authentification sur macOS via la fenêtre d’ouverture de session et la barre de menus d’app, il est recommandé d’utiliser https://127.0.0.1/jamfconnect.

      Pour l’authentification sur iOS via Jamf Unlock, il est recommandé d’utiliser jamfunlock://callback/auth.

    • URL de découverte

      Le document de métadonnées OpenID de votre fournisseur d’identité qui stocke les informations de configuration OpenID. Cette valeur s’affiche au format suivant : https://domain.url.com/.well-known/openid-configuration

  2. Vérifiez que les types d’approbation suivants sont activés auprès de votre fournisseur d’identité :
    • Autorisation par code

      Authentifie le nom d’utilisateur et le mot de passe du cloud de l’utilisateur en échange d’un code d’autorisation que Jamf Connect envoie au point de terminaison du jeton de votre fournisseur d’identité

    • Autorisation par mot de passe du propriétaire de la ressource (ROPG)

      Authentifie le nom d’utilisateur et le mot de passe du cloud de l’utilisateur directement dans le point terminal du jeton de votre fournisseur d’identité. Cette méthode d’authentification est uniquement autorisée dans le cadre de la synchronisation des mots de passe.

  3. Créez un profil de configuration Jamf Connect pour la fenêtre d’ouverture de session et la barre de menus d’app, qui utilise les valeurs de l’intégration de votre app dans votre IdP.
    Assurez-vous que les réglages de la fenêtre d’ouverture de session et de la barre de menus d’app sont inscrits dans leurs domaines de préférence respectifs :
    • com.jamf.connect.login

    • com.jamf.connect

    Les réglages suivants sont requis :

    Fenêtre d’ouverture de session
    • Fournisseur d’identité
    • Identifiant client
    • URI de redirection
    • URL de découverte
    Barre de menus d’app
    • Fournisseur d’identité
    • Identifiant client
    • URL de découverte

    Le réglage Fournisseur d’identité doit être défini sur Personnalisé.

Votre IdP personnalisé doit être intégré à Jamf Connect, et vos profils de configuration doivent ressembler à ce qui suit :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>OIDCProvider</key>
        <string>Personnalisé</string>
        <key>OIDCROPGID</key>
        <string>3bdd52c7-ee36-4689-8517-c5fed2c98s5</string>
        <key>OIDCClientID</key>
        <string>3bdd52c7-ee36-4689-8517-c5fed2c98s5</string>
        <key>OIDCRedirectURI</key>
        <string>https://127.0.0.1/jamfconnect</string>
        <key>OIDCDiscoveryURL</key>
        <string>https://identity-provider-example-address.com/.well-known/openid-configuration</string>
        <key>OIDCNewPassword</key>
        <false/>
     </dict>   
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IdPSettings</key>
	<dict>
		<key>DiscoveryURL</key>
		<string>https://identity-provider-example-address.com/.well-known/openid-configuration</string>
		<key>Provider</key>
		<string>Personnalisé</string>
		<key>ROPGID</key>
		<string>3bdd52c7-ee36-4689-8517-c5fed2c98s5</string>
	</dict>
</dict>
</plist>