{"id":71,"date":"2005-06-30T19:51:52","date_gmt":"2005-07-01T00:51:52","guid":{"rendered":"http:\/\/www.coresecuritypatterns.com\/blogs\/?p=71"},"modified":"2020-08-08T03:02:55","modified_gmt":"2020-08-08T03:02:55","slug":"using-jaas-for-biometric-authentication-yes-it-works","status":"publish","type":"post","link":"https:\/\/websecuritypatterns.com\/blogs\/2005\/06\/30\/using-jaas-for-biometric-authentication-yes-it-works\/","title":{"rendered":"Using JAAS for Biometric Authentication &#8211; Yes, it works."},"content":{"rendered":"<p><a href=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2008\/11\/howdoiknowu.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-72 alignleft\" src=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2008\/11\/howdoiknowu-150x150.jpg\" alt=\"\" width=\"184\" height=\"199\"><\/a> Last few months, I was passionately busy working on an interesting project opportunity &#8230;to implement a biometric authentication module for a security sensitive J2EE application (Sorry&#8230;don&#8217;t ask who is the customer :-)). Ofcourse, the target is a die-hard Sun customer who believed on us -not- that armed contractor. They suggested me to use CrossMatch Verifier-E Fingerprint scanner and BioBex middleware for supporting biometric enrollment and authentication.&nbsp; I also lucky&nbsp; to work together with a good friend of mine from Finland &#8220;Tuomo Lampinen&#8221;&#8230;I should credit him here &#8211; he taught me the ABCs of Biometrics.&nbsp; I lost hopes initially..as there is no easy way to initiate\/receive the JAAS callbacks to\/from biometric device and then convert it to web-based text callbacks to perform actual authentication with the biometric middleware. The complexities goes even a bit more&nbsp; harder, when you want to make a browser plugin to handle the device callbacks.&nbsp; After trial-and-errors with several callback mechanisms (believe me,&#8230;at some point I lost all my hopes) &#8211; Finally, It worked without any hacks. Way cool, I even performed multi-factor authentication by combining with another JAAS LoginModule we built for using PKI\/digital certificates.<\/p>\n<p>If you are curious to know the secrets &#8211; Couple of days ago, Reid Williams and I did deliver a session at JavaONE&nbsp; entitled &#8221; <a href=\"http:\/\/www.websecuritypatterns.com\/downloads\/J2EEBiometrics.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">Biometric Authentication for J2EE Applications<\/a>&#8221; and we also demonstrated it.&nbsp; You may also interested to read my follow-on article &#8220;<a href=\"http:\/\/developers.sun.com\/identity\/reference\/techart\/bioauthentication.html\" target=\"_blank\" rel=\"noopener noreferrer\">Building Biometric Authentication for J2EE, Web and Enterprise Applications<\/a>&#8220;.<\/p>\n<p>Enjoy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last few months, I was passionately busy working on an interesting project opportunity &#8230;to implement a biometric authentication module for a security sensitive J2EE application (Sorry&#8230;don&#8217;t ask who is the customer :-)). Ofcourse, the target is a die-hard Sun customer who believed on us -not- that armed contractor. They suggested me to use CrossMatch Verifier-E Fingerprint scanner and BioBex middleware&#8230; <a href=\"https:\/\/websecuritypatterns.com\/blogs\/2005\/06\/30\/using-jaas-for-biometric-authentication-yes-it-works\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,20,11],"tags":[38,51],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-identity-management","category-java-ee","category-smartcards-pki","tag-jaas","tag-opensso"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":1,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":2795,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/71\/revisions\/2795"}],"wp:attachment":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}