https://d226lax1qjow5r.cloudfront.net/blog/blogposts/best-practices-for-implementing-silent-authentication/best-practices_silent-authentication.png

Bonnes pratiques pour la mise en œuvre de l'authentification silencieuse

Publié le May 23, 2023

Temps de lecture : 5 minutes

Alors que la version 2 de Verify vient d'être pour une disponibilité générale, nous avons voulu approfondir notre capacité d'authentification silencieuse.nous avons voulu approfondir un peu plus notre capacité d'authentification silencieuse ! Dans cet article, nous allons vous expliquer comment cela fonctionne, ainsi que quelques outils et conseils utiles pour la mise en œuvre.

Comment fonctionne l'authentification silencieuse ?

L'authentification silencieuse est un canal de l'API Verify qui permet de compléter l'authentification sans code 2FA. Une fois qu'un utilisateur a saisi ses identifiants de connexion, il prouve son identité en vérifiant ses informations SIM par rapport aux enregistrements de son opérateur pour s'assurer que son numéro de téléphone est actif et authentique. Une fois qu'une demande a été vérifiée, vous pouvez authentifier l'utilisateur en continu jusqu'à ce que la demande expire ou que l'utilisateur l'annule.

En bref, il s'agit d'une méthode d'authentification qui utilise le module d'identité de l'abonné (SIM) d'un téléphone portable pour prouver l'identité d'un utilisateur sans l'intervention de l'utilisateur.

Vous pouvez en savoir plus sur le fonctionnement de l'authentification silencieuse dans notre article de blog précédent ou dans la documentation pour les développeursLe reste de cet article vous présentera quelques conseils et fonctionnalités utiles à prendre en compte lors de la mise en œuvre de l'authentification silencieuse.

Forcer une connexion aux données mobiles

L'authentification silencieuse ne dépend pas seulement du fait que l'utilisateur dispose d'un téléphone portable, mais aussi d'une connexion à un réseau cellulaire. Si la demande est envoyée par Wi-Fi, une erreur sera générée. Pour vous aider, nous avons fourni des bibliothèques iOS et Android qui peuvent vous aider à effectuer une requête HTTP sur un réseau cellulaire même lorsque vous êtes en WiFi :

Android

La Android Library est disponible sur GitHub, où vous trouverez des informations sur les permissions, la compatibilité et des exemples d'intégration de l'authentification silencieuse dans vos Applications :

import com.vonage.clientlibrary.VGCellularRequestClient
import com.vonage.clientlibrary.VGCellularRequestParameters

VGCellularRequestClient.initializeSdk(this.applicationContext)
val params = VGCellularRequestClientParameters(
    url = "http://www.vonage.com",
    headers = mapOf("x-my-header" to "My Value") ,
    queryParameters = mapOf("query-param" to "value"),
    maxRedirectCount = 10
)

val response = VGCellularRequestClient.getInstance().startCellularGetRequest(params, false)
if (response.optString("error") != "") {
    // error
} else {
    val status = response.optInt("http_status")
    if (status == 200) {
        // 200 OK
    } else {
        // error
    }
}

iOS

La bibliothèque iOS est également disponible sur GitHuboù vous trouverez des informations sur l'installation, la compatibilité et des exemples d'utilisation :

import VonageClientLibrary

let client = VGCellularRequestClient()
let params = VGCellularRequestParameters(url: "http://www.vonage.com",
                                        headers: ["x-my-header": "My Value"],
                                        queryParameters: ["query-param" : "value"]
                                        maxRedirectCount: 10)
   
let response = try await client.startCellularRequest(params: params, debug: true)
if (response["error"]) != nil {
    // Handle error
} else {
    let status = resp["http_status"] as! Int
    if (status == 200) {
        // Handle response
    } else {
        // Handle error
    }
}

Authentification silencieuse - bac à sable

Il peut être difficile de tester l'authentification silencieuse. Pour tester une vérification réussie, le code doit être exécuté à partir d'une application fonctionnant sur un téléphone via un réseau mobile, ce qui peut être délicat à mettre en place. Pour vous aider, Vonage a fourni un bac à sable qui contourne la vérification auprès de l'opérateur. Au lieu de cela, vous utiliserez les données renvoyées dans vos rappels pour effectuer la vérification vous-même, ce qui élimine la nécessité d'une connexion au réseau mobile.

Pour ce faire, ajoutez "sandbox": "true" à votre flux de travail :

curl -X POST https://api.nexmo.com/v2/verify \ -H "Content-Type: application/json" \ -H "Authorization: Bearer XXXXX" \ -d '{"brand": "Your Brand", "workflow": [ {"channel": "silent_auth", "to": "447700900002", "sandbox": "true"} }'

Cela permet de contourner le transporteur et d'envoyer votre demande au bac à sable.

Le Le guide complet sur l'utilisation du bac à sable d'authentification silencieuse est disponible ici.

Que vous utilisiez le bac à sable ou non, vous obtiendrez une réponse contenant à la fois votre request_idet le check_url:

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "check_url": "https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330/silent-auth/redirect"
}

Pour continuer, vous devrez envoyer une GET à l'adresse check_url. Il en résultera plusieurs HTTP302 que votre client devra suivre, la quantité dépendant de l'acheminement par transporteur requis en fonction de l'emplacement de l'appareil.

HTTP/1.1 302 Found
Location: https://eu.api.silentauth.com/phone_check/v0.2/checks/31eaf23d-b2db-4c42-9d1d-e847e75ab330/redirect
HTTP/1.1 302 Found
Location: https://sandbox.redirect.m-auth.com/callback/sandbox?id=31eaf23d-b2db-4c42-9d1d-e847e75ab330

Une fois que vous aurez suivi les redirections, vous obtiendrez un HTTP200 ce qui nous amène à la dernière étape. Vous obtiendrez un code dans la réponse, qui doit être soumise au point de terminaison check-code :

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "code": "si9sfG"
}

Ce code fonctionne exactement de la même manière qu'un code délivré par un autre canal. Envoyez le code au point de terminaison de l'API :

POST /https://api.nexmo.com/v2/verify/31eaf23d-b2db-4c42-9d1d-e847e75ab330 HTTP/1.1
Content-Type: application/json

{
  "code": "si9sfG"
}

et vous obtiendrez votre réponse finale. En cas de succès :

HTTP/1.1 200 OK
Content-Type: application/json

{
  "request_id": "31eaf23d-b2db-4c42-9d1d-e847e75ab330",
  "status": "completed"
}

Et si la vérification échoue :

HTTP/1.1 409 CONFLICT
Content-Type: application/json

{
  "title": "Network error",
  "detail": "The Silent Auth request could not be completed due to formatting or the carrier is not supported."
}

Le Le guide complet sur l'utilisation du bac à sable d'authentification silencieuse est disponible ici.

Repli sur d'autres canaux

Il existe plusieurs situations dans lesquelles l'authentification silencieuse peut ne pas fonctionner, par exemple si l'utilisateur est.. :

  • Sur un ordinateur de bureau

  • Hors de la couverture de leur réseau

  • sur une connexion Wi-Fi au lieu de leur réseau cellulaire

Dans ce cas, vous avez la possibilité de vous rabattre sur d'autres canaux. Vous pouvez le faire en configurant le flux de travail dans votre demande ; dans cet exemple, l'authentification silencieuse sera tentée en premier. En cas d'échec, un SMS sera envoyé :

curl -X POST https://api.nexmo.com/v2/verify \ -H "Content-Type: application/json" \ -H "Authorization: Bearer XXXXX" \ -d '{"brand": "Your Brand", "workflow": [ {"channel": "silent_auth", "to": "447700900002"}, {"channel": "sms", "to": "447700900002"}] }'

Pour en savoir plus sur les et les canaux disponibles ici.

Conclusion

Nous espérons que ce tour d'horizon des trucs et astuces vous a été utile, et qu'il vous aidera dans vos futurs projets utilisant l'Authentification Silencieuse ! Vous pouvez créer un Account pour commencer à utiliser Verify dès maintenant, suivre notre Twitter Developer Account pour rester informé et consulter notre documentation pour les développeurs pour plus d'informations.

Partager:

https://a.storyblok.com/f/270183/400x400/fa81e51a55/helena-bower.png
Helena BowerRédacteur technique

Helena est rédactrice technique chez Vonage et travaille sur tout ce qui concerne la documentation de nos API de communication. Basée à Londres, on peut souvent la trouver en train de jouer à des jeux, d'acheter trop de disques vinyles ou de regarder un spectacle au théâtre.