WebAuthn | Authentication

WebAuthn Kimlik Doğrulaması, kullanıcıların daha önce kaydedilmiş genel anahtar kimlik bilgilerini kullanarak oturum açmasına olanak tanır. Kullanıcının kayıttan saklanan genel anahtarını kullanarak imzalı bir challenge'ın doğrulanmasını içerir.

 

 

Authentication Options

 

Kimlik doğrulama, istemcinin TsgcWSAPIServer_WebAuthn sunucusunda yapılandırılan Authentication Options Endpoint adresine yeni bir HTTP İsteği kullanarak kimlik doğrulama akışını başlatmasını gerektirir. Varsayılan olarak, uç nokta /sgcWebAuthn/Authentication/Options'dır, bu nedenle sunucunuz https://www.test.com etki alanında dinliyorsa, istemci https://www.test.com/sgcWebAuthn/Authentication/Options url'sine yeni bir istek yapmalıdır.

 

İstemci, assertion'ı (kimlik doğrulama yanıtı) POST aracılığıyla Sunucuya gönderir

 

{"username":"test","user_verification":"preferred"}

 

Sunucu PublicKeyCredentialRequestOptions oluşturur

 

{
"challenge": "9d0d61edf30b45f8b88aef7087f9117716e2b7d8b0ee4460b06142f39dd0ec9f",
"timeout": 60000,
"rpId": "localhost",
"allowCredentials": [
{
"id": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"type": "public-key",
"transports": [
"nfc",
"usb"
]
}
],
"userVerification": "preferred",
"hints": [],
"attestation": "none",
"attestationFormats": [],
"extensions": {}
}

 

 

Authentication Verify

 

Kimlik doğrulama, istemcinin TsgcWSAPIServer_WebAuthn sunucusunda yapılandırılan Authentication Verify Endpoint adresine yeni bir HTTP İsteği kullanarak kimlik doğrulama akışını başlatmasını gerektirir. Varsayılan olarak, uç nokta /sgcWebAuthn/Authentication/Verify'dir, bu nedenle sunucunuz https://www.test.com etki alanında dinliyorsa, istemci https://www.test.com/sgcWebAuthn/Authentication/Verify url'sine yeni bir istek yapmalıdır.

 

Tarayıcı, kullanıcıdan kimlik doğrulayıcısını (örneğin parmak izi, YubiKey) kullanmasını ister. Kimlik doğrulayıcı, kimlik bilgisi kimliğine bağlı özel anahtarla zorluğu imzalar. Döndürülen kimlik bilgisi şunları içerir:

 

 

Aşağıda istemci isteğinin bir json örneğini bulun:

 

{
"id": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"rawId": "yeA4BVRlrAfLG-KzqsL_rlI4ffhuKHK8uoEkVoab065UkS82Zqlh9VFQHIYwOuOo",
"response": {
"authenticatorData": "SZYN5YgOjGh0NBcPZHZgW4_krrmihjLHmVzzuoMdl2MFAAAABw",
"clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uZ.....",
"signature": "MEQCIAJRqvvys8....",
"userHandle": "36b9d6a84204487382fee62e7e67a80d"
},
"type": "public-key",
"clientExtensionResults": {},
"authenticatorAttachment": "cross-platform"
}

 

Sunucu, istemciden gelen isteği okur, kimlik bilgisinin saklandığını doğrular ve imzayı doğrular. İmza geçerliyse, OnWebAuthnAuthenticationSuccessful olayı çağrılır.

 

 

 

Kimlik Doğrulama Akışı

Aşağıdaki bağlantıları kullanarak Authentication Flow süreci hakkında daha fazla bilgi edinin: