비밀번호 없는 인증을 위한 QR Login 개요
애플리케이션이 qrlogin 검증 트랜잭션을 시작할 수 있으며, IBM Verify에서 사용자가 검증 요청을 완료하기를 기다린 후 계속해서 런타임 액세스를 수행합니다.
참고: 이 인증 요소는 별도의 등록 절차가 필요하지 않지만, 사용자가 ‘ IBM Verify ’ 모바일 인증 앱의 인스턴스를 최소 한 개 이상 등록해야 합니다.
워크플로우
QRLogin 워크플로우는 세 가지 주요 단계로 구성됩니다.
- 새 QR 코드 로그인 검증 레코드 작성
- 이 단계에서는 새 qrlogin 검증 레코드를 작성합니다.
- 인증되지 않은 컨텍스트를 통해 요청이 생성됩니다.
- 응답에 QR 코드가 포함됩니다. 이는 인증자 앱이 검증을 완료하기 위해 세부사항과 함께 스캔됩니다.
- 기존 QR Login 검증 완료 폴링
- 이 단계에서는 QR 코드를 스캐닝하여 스캐닝 디바이스가 검증을 완료했는지 또는 검증 요청이 다른 완료 상태로 이동되었는지 여부를 판별합니다. 예를 들어 성공, 제한시간 또는 실패 상태입니다.
- 인증되지 않은 컨텍스트를 통해 요청이 생성됩니다.
- 응답에 검증 요청의 상태가 포함됩니다. 이는 검증 트랜잭션이 완료되었는지 여부를 판별합니다.
- 기존 QR Login 검증 완료 시도
- 이 단계에서는 검증 트랜잭션 상태를 보류 중에서 성공 상태로 변경합니다.
- 요청은 인증된 컨텍스트를 통해 생성되어야 합니다. qrlogin 검증을 확인하려면 API 보안 인타이틀먼트가 필요합니다.
- 요청이 성공적으로 처리되면 응답에 Http 상태 코드 204가 포함됩니다.
전제조건
- 관리자로부터 API 클라이언트의 클라이언트 ID 및 클라이언트 시크릿을 요청해야 합니다. “API 클라이언트 만들기 ”를 참조하십시오.
- OIDC 액세스 토큰 을 획득합니다.
프로시저
- QRLogin 특성을 가져오십시오. “QRLogin 속성 가져오기”를 참조하십시오.
- QRLogin 특성을 업데이트하십시오. “QRLogin 속성 업데이트”를 참조하십시오.
이 태스크에 대한 정보
- 변수
- 이 예제에서는 다음 변수를 사용합니다. cURL 명령의 변수를 요청에서 받는 실제 값으로 대체하십시오.
표 1. 변수 및 예시 값 변수 설명 예제 값 {{access_token}} API 클라이언트에 지정된 {{client_id}} 및 {{client_secret}}을 교환할 때 결과로 리턴됩니다. 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe {{tenant}} 귀하의 Verify 구독에 할당된 정규화된 도메인 이름입니다. 이것은 호 스트명으로 구성됩니다verify.ibm.com.. companyAppTest.verify.ibm.com - 정의
표 2. 약어 설명 LSI LSI는 모바일 인증자가 후속 검증 시도에서 사용하는 일회성 코드이며 로그인 세션 색인을 의미합니다.이는 임의의 영숫자 문자열입니다. 이 문자열은 로그인 세션 색인의 구성 데이터 모델을 사용하여 생성됩니다. 구성 옵션은 로그인 세션 색인 ID의 길이 및 영숫자 ID를 생성하는 데 사용되는 문자 세트입니다. DSI DSI는 폴링에 사용되며 디바이스 세션 색인을 나타냅니다.이 문자열은 디바이스 세션 색인에 대한 구성 데이터 모델을 사용하여 생성됩니다. 구성 옵션은 디바이스 세션 색인 ID의 길이 및 영숫자 ID를 생성하는 데 사용되는 문자 세트입니다.
QRLogin 특성 가져오기
QRlogin 특성을 가져오려면 다음 cURL 명령을 사용하십시오.
cURL 명령
curl -X GET \
https://{{tenant}}/config/v2.0/factors/qr \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {{access_token}}'
예제curl -X GET \
https://companyAppTest.verify.ibm.com/config/v2.0/factors/qr \
-H 'Accept: application/json' \
-H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe'
예제 출력 응답{
"lsi": {
"charset": "134BCDAE",
"length": 6
},
"dsi": {
"charset": "12389EFGHIJKLMN",
"length": 40
},
"expiry": 60,
"enabled": false
}
QRLogin 특성 업데이트
config-payload.jsonGet the QRLogin properties 에서 가져온 속성을 포함하는 속성 파일을 생성하고, 파일 이름을 로 지정하십시오. 사용자 요구사항에 맞게 값을 편집하십시오. 예를 들면 다음과 같습니다.
{
"lsi": {
"charset": "ABCDEFG123456789",
"length": 6
},
"dsi": {
"charset": "ABCDEFGHIJKLMNOPQRSTqrstuvwxyz0123456789",
"length": 40
},
"expiry": 60,
"enabled": true
}
다음 cURL 명령을 사용하여 QRLogin 특성을 업데이트하십시오.
cURL 명령
curl -X PUT \
https://{{tenant}}/config/v2.0/factors/qr \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {{access_token}}' \
-H 'Content-Type: application/json' \
-d @config-payload.json
예제curl -X PUT \
https://companyAppTest.verify.ibm.com/config/v2.0/factors/qr \
-H 'Accept: application/json' \
-H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe' \
-H 'Content-Type: application/json' \
-d @config-payload.json
예제 출력 응답Http Status Code: 204