FIDO2 API를 사용하면 Android 애플리케이션이 사용자를 인증하기 위해 강력한 증명된 공개 키 기반 사용자 인증 정보를 생성하고 사용할 수 있습니다. 이 API는 BLE, NFC, USB 로밍 인증자 (보안 키) 사용을 지원하는 WebAuthn 클라이언트 구현과 사용자가 지문 또는 화면 잠금을 사용하여 인증할 수 있는 플랫폼 인증자를 제공합니다.
통합
FIDO2 API 진입점은 Fido2ApiClient입니다.
이 API는 다음 두 가지 작업을 지원합니다.
등록과 서명 모두 사용자 상호작용이 필요합니다.
API 사용을 보여주는 샘플 애플리케이션은 https://github.com/android/identity-samples/tree/main/Fido2에서 확인할 수 있습니다.
웹사이트와의 상호 운용성
사용자가 웹사이트와 Android 애플리케이션에서 사용자 인증 정보를 원활하게 공유할 수 있도록 허용하는 것은 간단합니다. 이렇게 하려면 디지털 애셋 링크를 활용하세요. 웹사이트에 디지털 애셋 링크 JSON 파일을 호스팅하고 디지털 애셋 링크 파일의 링크를 앱 매니페스트에 추가하여 연결을 선언할 수 있습니다.
예를 들어 https://example.com
를 Android 앱 com.example.android
과 연결하려면 다음 3가지 단계가 필요합니다.
1단계: 도메인에서 assetlinks.json
호스팅
다음과 같은 JSON 파일을 만들고 https://example.com/.well-known/assetlinks.json
에 호스팅합니다.
[
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "web",
"site" : "https://example.com"
}
},
{
"relation" : [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target" : {
"namespace" : "android_app",
"package_name" : "com.example.android",
"sha256_cert_fingerprints" : [
"DE:AD:BE:EF"
]
}
}
]
Google에서 크롤링할 수 있고 HTTP 헤더 Content-Type: application/json
로 제공되어야 합니다.
sha256_cert_fingerprints
는 앱 서명 인증서의 SHA256 지문입니다.
자세한 내용은 Android App Links 문서를 참고하세요.
2단계: Android 앱의 assetlinks.json
링크
Android 앱에서 <application>
아래 매니페스트 파일에 다음 줄을 추가합니다.
<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
3단계: strings.xml 파일에 asset_statements
문자열 리소스 추가
asset_statements
문자열은 로드할 assetlinks.json
파일을 지정하는 JSON 객체입니다. 문자열에서 사용하는 아포스트로피와 따옴표는 이스케이프 처리해야 합니다. 예를 들면 다음과 같습니다.
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>
앱과 웹사이트를 연결하는 방법에 관한 자세한 내용은 Android의 비밀번호 대용 Smart Lock 문서를 참고하세요.