HYPR
Le connecteur HYPR traite les requêtes d’authentification vers la plateforme HYPR. Ces requêtes sont susceptibles d’être « dépourvues de mot de passe », sans qu’aucun autre fournisseur d’identité ne fournisse d’informations sur l’identité primaire, ou elles peuvent être utilisées comme second facteur en association avec un autre fournisseur d’identité.
Ce connecteur gère l’expérience d’authentification de l’utilisateur dans le navigateur avec trois pages différentes :
- une interface permettant à l’utilisateur de fournir son identifiant si HYPR est utilisé en tant que premier facteur sans mot de passe
- une page intermédiaire affichée dans l’attente de la réponse de l’utilisateur à la plate-forme HYPR
- une page d’erreur en cas de circonstances exceptionnelles
Chacune de ces pages est implémentée par défaut, mais il est possible de les personnaliser ou de modifier complètement les interactions de l’utilisateur par le biais d’une extension de services.
Options de configuration
Les valeurs suivantes sont utilisées pour configurer le connecteur HYPR via le fichier de configuration de l’orchestrateur.
Name
name
est la valeur employée pour désigner ce connecteur ailleurs dans la configuration.
Domaine HYPR
hyprDomain
correspond au domaine de base du compte HYPR.
ID de l’application HYPR
hyprAppID
correspond au nom de l’application tel qu’il est défini dans le Centre de contrôle HYPR.
Access Token
accessToken
correspond au jeton API configuré dans le Centre de contrôle HYPR. Il s’agit
d’informations sensibles qui doivent être récupérées auprès d’un fournisseur de secrets dans les
environnements de production. Au minimum,
les autorisations d’authentification de l’application doivent lui être accordées.
Authentification par code QR
Par défaut, le connecteur Hypr utilise l’authentification par notification pour inviter l’utilisateur à s’authentifier. Cependant, vous pouvez activer l’authentification par code QR qui fait apparaître un code QR que l’utilisateur doit numériser à l’aide de l’application mobile Hypr.
Enabled
Doit être définit sur true
pour utiliser l’authentification par code QR. La valeur par défaut est false
.
Status Check URL (facultatif)
statusCheckURL
est employé par la page intermédiaire afin d’interroger le statut en attendant
que l’utilisateur termine l’authentification sur son appareil. Ce terminal est hébergé
par l’orchestrateur, le domaine spécifié doit donc correspondre à un domaine
hébergé par l’orchestrateur. Il peut également être défini en tant que chemin d’accès relatif. Dans les deux cas, il ne doit pas
entrer en conflit avec d’autres chemins d’accès aux applications protégées. Si elle n’est pas définie, la valeur
/.hypr-status-check
sera utilisée.
Au moment de spécifier un statusCheckURL
, utilisez une URL absolue (complète) comprenant le schéma, le nom de l’hôte et le chemin d’accès afin de garantir que les requêtes de statut sont acheminées correctement.
Spécifiez toujours une valeur statusCheckURL
personnalisée si routePattern
inclut un nom d’hôte.
Par exemple, si routePattern
est défini comme suit :
routePatterns:
- api.example.com
la valeur statusCheckURL
peut être :
statusCheckURL: https://api.example.com/.hypr-status-check
URL de connexion (facultatif)
loginURL
est utilisé pour afficher le nom d’utilisateur à authentifier. Ce terminal est hébergé
par l’orchestrateur, le domaine spécifié doit donc correspondre à un domaine
hébergé par l’orchestrateur. Il peut également être défini en tant que chemin d’accès relatif. Dans les deux cas, il ne doit pas
entrer en conflit avec d’autres chemins d’accès aux applications protégées. Si elle n’est pas définie, la valeur
/.hypr-login
sera utilisée.
Au moment de spécifier un loginURL
, utilisez une URL absolue (complète) comprenant le schéma, le nom de l’hôte et le chemin d’accès afin de garantir que les requêtes de statut sont acheminées correctement.
Spécifiez toujours une valeur loginURL
personnalisée si routePattern
inclut un nom d’hôte.
Par exemple, si routePattern
est défini comme suit :
routePatterns:
- api.example.com
la valeur loginURL
peut être :
loginURL: https://api.example.com/login
HTML intermédiaire personnalisé (facultatif)
customInterstitialHTML
La page s’affiche en attendant que l’utilisateur réponde à l’invite HYPR. Elle doit contenir l’emplacement d’une page HTML dans le système de fichiers.
Si la valeur n’est pas définie, une page intermédiaire par défaut sera utilisée.
Custom Login HTML (facultatif)
customLoginHTML
correspond à la page qui s’affiche pour inviter l’utilisateur à saisir son nom d’utilisateur HYPR.
Elle doit contenir l’emplacement d’une page HTML dans le système de fichiers. Si la valeur n’est pas définie, une
page de connexion par défaut sera utilisée.
Erreur HTML personnalisée (facultatif)
customErrorHTML
correspond à la page qui s’affiche en cas d’erreur. Elle doit contenir
l’emplacement d’une page HTML dans le système de fichiers. Si la valeur n’est pas définie, une page d’erreur par défaut
sera utilisée.
Exemples
Utilisation de HYPR en tant que fournisseur d’identité
Push Based Authentication
connectors:
- name: hypr
type: hypr
hyprDomain: "https://example.hypr.com"
hyprAppID: "strata"
accessToken: <HYPR_SECRET>
apps:
- name: ExampleApp
type: proxy
routePatterns:
- /
upstream: https://app.exmaple.com
policies:
- location: /
authentication:
idps:
- hypr
authorization:
allowAll: true
QR Code Authentication
connectors:
- name: hypr
type: hypr
hyprDomain: "https://example.hypr.com"
hyprAppID: "strata"
accessToken: <HYPR_SECRET>
qrAuthentication:
enabled: true
apps:
- name: ExampleApp
type: proxy
routePatterns:
- /
upstream: https://app.example.com
policies:
- location: /
authentication:
idps:
- hypr
authorization:
allowAll: true
Personnalisation de l’expérience de connexion
Il existe trois points de personnalisation pour les interactions utilisateur du connecteur HYPR. Chacun d’entre eux peut fournir une page HTML personnalisée stockée dans un emplacement accessible par l’orchestrateur, comme indiqué ci-dessus. L’orchestrateur utilise Go Templates pour fournir les éléments pertinents à restituer.
Page de connexion personnalisée
Cette page doit POSTER le contenu du nom d’utilisateur à l’URL de connexion, qui sera fournie dans la valeur du modèle LoginURL
. La page initialement demandée se trouve dans la valeur du modèle RedirectURL
et doit être transmise à l’URL de connexion en même temps que le nom d’utilisateur.
<html>
<body>
<form method="POST" action="{{.LoginURL}}">
<input type="hidden" name="redirectURL" value="{{.RedirectURL}}">
<input type="text" name="username">
<input type="submit">
</form>
</body>
</html>
Page intermédiaire personnalisée
Il s’agit d’une page d’attente de la session du navigateur de l’utilisateur qui s’affiche en attendant qu’il réponde à l’invitation de l’application HYPR. Elle interroge la valeur du modèle StatusCheckURL
pour déterminer si la requête est satisfaite. L’URL initialement demandée est disponible dans la valeur du modèle RedirectURL
.
<html>
<script type="text/javascript">
function checkHYPRStatus() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if (xmlhttp.responseText == "COMPLETED") {
window.location.replace("{{.RedirectURL}}");
return;
}
}
}
};
xmlhttp.open("GET", "{{.StatusCheckURL}}", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
checkHYPRStatus();
</script>
<body>
We're sending you a notification to confirm it's really you...
</body>
</html>
Page d’erreur personnalisée
Cette page est utilisée pour afficher les messages d’erreur, qui sont disponibles dans la valeur du modèle Error
.
<html>
<body>
An error has occurred: {{.Error}}
</body>
</html>