엔드투엔드 외부 MFA 통합을 위한 주요 구성요소 및 정보
새 외부 MFA 통합을 사용으로 설정하거나 디자인할 때 IBM® Verify에서 두 가지 주요 구성요소를 고려하고 정의해야 합니다.
- MFA 제공자
- 외부 MFA 제공자 통합의 Verify 공용 프로젝션을 나타내는 구성입니다. 런타임 시 이 구성요소는 API 클라이언트 역할을 합니다. 요청과 응답은 실시간 웹훅을 통해 전송됩니다.
- 실시간 웹훅
- 보안 인증된 인터넷 연결 및 HTTPS 클라이언트를 대상 외부 MFA 제공자에게 제공합니다. 웹훅을 API 계약 적용점으로 지정하십시오. 웹훅은 Verify의 내부 구성요소와 대상 외부 MFA 제공자 간에 전송되는 요청 및 응답을 중개합니다.
MFA 제공자 정보
Verify MFA 제공자는 외부 MFA 제공자의 Verify 개념화를 나타냅니다. 노출되는 MFA 요소 기능과 대상 MFA 제공자에서 Verify 사용자가 식별되고 분석되는 방법을 정의합니다. MFA 제공자 구성은 다음 예제에 표시되어 있습니다.
{
"name": "The Provider Name",
"description": "ISV - External Provider Integration",
"enabled": true,
"credentialPrefix": "emfa",
"webhookId": "{{webhook.id}}",
"uniqueNameAttribute": "{{unique.name.attribute}}",
"capabilities": [
"mobile_otp",
"mobile_bio",
"custom_totp"
]
}다음 표는 주요 구성 속성을 보여줍니다.
| 구성 속성 | 설명 |
|---|---|
name |
Verify에 알려진 MFA 제공자의 짧은 이름입니다. |
description |
제공자에 대한 간략한 설명입니다. |
enabled |
제공자가 런타임 시 사용으로 설정되는지 여부를 표시합니다. 'true'인 경우 제공자는 MFA 인증 확인에 사용 가능한 것으로 간주됩니다. |
credentialPrefix |
각 요소 기능에 추가되고 액세스 정책 평가에서 참조되는 짧은 접두부입니다. 이 값은 Verify 테넌트 내에 구성된 모든 MFA 제공자에서 고유해야 합니다. Verify 내에서 외부 MFA 요소는 {credentialPrefix}:{capability}로 식별됩니다.참고: 이 값에는 콜론( .::)이 포함되어서는 안 됩니다. |
webhookId |
MFA 제공자와 연결되어 있으며, 해당 실시간 웹훅 구성 인스턴스를 뒷받침하는 구성 UUID입니다 Verify . |
uniqueNameAttribute |
Verify 테넌트에 구성된 Verify 표준 또는 사용자 정의 속성의 이름입니다. 이 속성은 인증된 Verify 사용자로부터 외부 MFA 제공자 사용자로의 맵핑을 제공합니다. 이 값은 대상 MFA 제공자에서 특정 사용자와 해당 MFA 등록 및 기능을 검색하는 데 사용됩니다. |
| 기능 | Verify에서 노출되고 외부 MFA 제공하자 지원하는 하나 이상의 MFA 요소 기능 목록입니다. 이 값은 문자열이며 유효한 모든 문자열을 포함할 수 있습니다. 기능의 런타임 동작은 등록 검색 패턴 및 하나의 다른 런타임 인증 확인 패턴에 맵핑할 수 있어야 합니다. |
웹훅 정보
실시간 웹훅 구성은 MFA 제공자 구성과 연결되어 있어야 합니다. 실시간 웹훅은 ISV와 대상 MFA 제공업체 서비스 간의 기술적 런타임 통합을 제공합니다. 이상적으로 웹훅은 외부 MFA 계약이 적용되는 지점이기도 하므로 ISV와 대상 MFA 제공자 간의 API및 프로토콜 중개자 역할을 합니다. 웹훅이 API 계약 및 중개를 적용하는 기능을 지원하는 주요 메커니즘은 "자원" 및 "변환"입니다. 외부 MFA 지원 및 통합의 경우 "자원"의 정의가 ISV 외부 MFA API 계약과 일치해야 합니다.
다음 샘플 코드는 앞 섹션의 예시 MFA 제공자를 지원할 수 있는 실시간 웹훅의 예시입니다.
{
"name": "Some MFA Provider",
"type": "realtime",
"urls": ["https://some.address.com"],
"authentication": {
"type": "oauth",
"oauth": {
"client_id": "some_client_id",
"client_secret": "some_client_secret",
"token_endpoint": "https://some.address.com/token",
"token_endpoint_auth_method": "client_secret_basic"
}
},
"resources": {
"enrollments": {
"suffix": "/v1/enrollments",
"method": "GET",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"initiate": {
"suffix": "/v1/mfa",
"method": "POST",
"expectedStatus": [201]
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"validate": {
"suffix": "/v1/mfa",
"method": "POST",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"custom_totp_1": {
"suffix": "/v1/mfa",
"method": "POST",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"result": {
"suffix": "/v1/mfa/transactions",
"method": "GET",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
}
},
"purpose": ["external_mfa"]
}다음 표는 자원과 연관된 구성 가능한 속성을 설명합니다.
웹훅 구성 API 참조를 참조하십시오.
| 속성 | 설명 |
|---|---|
suffix |
선택사항. 아웃바운드 요청에 사용되는 기본 URL에 추가할 접미부입니다. 웹훅 자원의 아웃바운드 요청은 base URL + suffix로 전달됩니다. 구성에 정의된 것 이상의 슬래시는 추가되지 않습니다. 송신 변환을 사용하여 발신 요청 URL을 수정할 수 있습니다. 예를 들어, 이전 enrollments 샘플에서 ISV 웹훅 구성요소는 대상 MFA 제공자의 API 엔드포인트 https://some.address.com/v1/enrollments를 시작합니다. |
method |
선택사항. 송신 HTTP 메소드를 POST에서 지정된 메소드로 수정하는 메소드입니다. API 엔드포인트를 시작하는 데 사용되는 HTTP 메소드입니다. 유효한 값은 POST, PUT, GET, DELETE, PATCH입니다. 송신 변환을 사용하여 메소드를 수정할 수 있습니다. |
transform.outgoing |
선택사항. 전송되기 전에 아웃바운드 요청에 적용되는 데이터 변환을 정의합니다. 변환은 ISV 내부 MFA 프레임워크에서 전송된 요청 요소 body, headers, http
method, path, host에 액세스할 수 있습니다. |
transform.incoming |
선택사항. ISV MFA 프레임워크로 돌아가기 전에 수신 응답에 적용되는 데이터 변환을 정의합니다. 변환은 ISV 내부 MFA 프레임워크에서 전송된 요청 요소 body, headers, status_code, request(현재 응답을 생성하는 원래 요청)에 액세스할 수 있습니다. |
exepctedStatus |
선택사항. 이 웹훅에 의해 실행되는 API에서 반환될 것으로 예상되는 ` HTTP ` 상태입니다. 속성이 없는 경우 200 - 299 범위의 상태 코드가 예상됩니다. 수신 변환이 실행되기 전에 예상 상태가 확인됩니다. HTTP 상태를 참조하십시오. |
외부 MFA 제공자는 외부 요청에 대한 처리 결과를 바탕으로 다음과 같은 응답을 반환할 수 있습니다.
다음 표는 외부 MFA 통합을 지원하기 위해 웹훅 리소스를 설계할 때 고려해야 할 사항을 요약한 것입니다. 자원 설계는 지원되는 MFA 통합 패턴의 요구사항에 따라 구동됩니다.| 응답 | 정의 |
|---|---|
| 보류 중 | 인증 절차가 아직 완료되지 않았습니다. |
| 성공 | 인증에 성공했습니다. |
| FAILED | 인증에 실패했습니다. |
| CANCELED | 인증 시도가 중지된 엔티티로 인해 인증이 완료되지 않았습니다. |
| TIMEOUT | 시간 초과로 인해 인증이 완료되지 않았습니다. |
| 웹훅 자원 | 패턴 | 설명 |
|---|---|---|
enrollments |
등록 검색 | 이 자원은 특정 사용자의 MFA 등록 및 기능을 찾기 위한 요청에 응답할 때 ISV 내부 MFA 클라이언트에서 시작됩니다. 이 자원은 일반적으로 ISV가 런타임 MFA 인증 확인의 일부로 사용자에게 MFA 요소 옵션 선택사항을 제시할 때 필요합니다. |
{{mfa_capability_name}}_1 |
initiate - sms, otp또는
|
이 자원은 MFA 요소의 이름이 {{mfa_capability_name}} 속성과 일치하는 경우 ISV MFA 클라이언트 환경 설정으로 시작됩니다.기능 패턴이 |
{{mfa_capability_name}}_2 |
initiate + validate - sms, otp |
이 자원은 MFA 요소의 이름이 {{mfa_capability_name}} 속성과 일치하는 경우 ISV MFA 클라이언트 환경 설정으로 시작됩니다. MFA 인증 확인의 유효성을 검증하는 데 사용됩니다. |
initiate |
initiate + validate - sms, otp또는 initiate + wait for
completion - 모바일 푸시 |
이 자원은 요소 기능 특정 자원이 정의되지 않은 경우 MFA 인증 확인을 시작하는 데 사용됩니다. |
validate |
initiate - sms, otp |
이 자원은 요소 기능 특정 자원이 정의되지 않은 경우 MFA 인증 확인의 유효성을 검증하는 데 사용됩니다. |
result |
initiate + wait for completion - 모바일 푸시 |
이 자원은 인증 확인 시작 후 MFA 인증 확인 완료를 폴링하는 데 사용됩니다. 일반적으로 트랜잭션 ID, 일부 다른 상태 데이터 또는 핸들을 리턴하려면 이전 시작 응답이 필요합니다. |