API를 통한 액세스 정책 관리
액세스 정책은 액세스 의사결정을 판별하기 위해 평가되는 규칙 및 조건 세트입니다. 사용자 정의된 액세스 정책을 작성할 수 있습니다. 모든 사용자 정의된 액세스 정책은 애플리케이션 구성에서 옵션으로 표시됩니다.
이 태스크에 대한 정보
일부 기본 액세스 정책은 즉시 사용할 수 있도록 제공되며 수정은 불가능합니다. 테넌트는 자체 요구사항에 따라 사용자 정의된 액세스 정책을 추가할 수 있습니다.
- 규칙은 첫 번째 일치를 기준으로 평가됩니다. 규칙의 모든 조건 일치가 true로 평가되면 규칙의 결과가 평가 결정으로 리턴됩니다. 추가 처리는 완료되지 않습니다.
- 선택적 매개변수
alwaysRun: true를 개별 규칙에 추가할 수 있습니다. 이 매개변수를 사용하면 첫 번째로 일치한 규칙 세트 외에도 규칙이 평가됩니다. 첫 번째 일치 및alwaysRun매개변수의 결과가 결합되어 가장 제한적인 조치가 정책의 결과로 적용됩니다. 여러alwaysRun규칙을 정책에 추가할 수 있습니다. - 정책에 디바이스 관리와 같이 조건에 대한 특정 구독이 필요하고 테넌트에 현재 이 구독에 대한 권한이 없는 경우 정책을 건너뜁니다. 다단계 인증(MFA) 결정이 리턴됩니다.
- 규칙에 MFA에 대한 특정 구독이 필요하고 테넌트에 현재 이 구독에 대한 권한이 없는 경우 평가된 MFA 결정이 거부로 변경됩니다. 이 변경을 통해 무조건적인 액세스를 허용하는 대신 애플리케이션을 보호합니다.
정책 편집기는 정책을 작성하고 수정할 때 사용할 수 있습니다. ‘액세스 정책 관리’를 참조하십시오.
일부 조건은 정책 편집기를 사용하여 추가될 수 없습니다. 이 경우 API는 기존 정책을 수정하거나 이 조건으로 새 액세스 정책을 작성하는 데 사용될 수 있습니다.
액세스 정책을 작성하거나 업데이트할 때 구문 유효성 검증이 수행됩니다.
{
"name": "policy_name",
"description": "Description of the policy",
"schemaVersion": "urn:access:policy:4.0:schema",
"rules": [
{
"name": "allow_with_conditions",
"id": "1",
"conditions": {
"contextAttributes": {
"attributes": [
{
"name": "attrName",
"values": [
"value1",
"value2"
],
"opCode": "EQ"
}
]
},
"subjectAttributes": {
"attributes": [
{
"name": "realmName",
"values": [
"cloudIdentityRealm",
"www.ibm.com"
],
"opCode": "IN"
},
{
"name": "customAttr1",
"values": [
"val1"
],
"opCode": "NEQ"
}
]
},
"timeAttributes": {
"attributes": [
{
"name": "timezone",
"opCode": "EQ",
"values": [
"UTC Offset or GMT Offset"
]
},
{
"name": "startDate",
"opCode": "EQ",
"values": [
"YYYY-MM-DD HH:mm:ss"
]
},
{
"name": "endDate",
"opCode": "EQ",
"values": [
"YYYY-MM-DD HH:mm:ss"
]
},
{
"name": "Monday",
"opCode": "EQ",
"values": [
"hh:mm-hh:mm"
]
},
{
"name": "Tuesday",
"opCode": "EQ",
"values": [
"hh:mm-hh:mm"
]
}
]
},
"ipAddress": {
"opCode": "MATCH",
"values": [
"<ip_address>",
"<ip_address_range_start> - <ip_address_range_end>",
"<ip_address/subnet>"
]
},
"location": {
"attributes": [
{
"values": [
"3-Letter-ISO"
],
"name": "country",
"opCode": "IN"
}
]
}
"location": {
"attributes": [
{
"values": [
"<city>"
],
"name": "city",
"opCode": "IN"
}
]
}
"geoLocation": {
"enabled": "true"
},
"trusteer": {
"enabled": "true"
}
},
"result": {
"extendedAction": {
"action": "ACTION_ALLOW"
},
"authnMethods": []
}
},
{
"name": "Authentication factor validity",
"id": "2",
“alwaysRun”: true,
"conditions": {
"factorLifetimeAttributes": {
"attributes": [
{
"name": "anyFactor",
"opCode": "EQ",
"values": [
"120"
]
},
{
"name": "reauthPerDevice",
"opCode": "EQ",
"values": [
"enabled"
]
}
]
}
},
"result": {
"extendedAction": {
"action": "ACTION_MFA_OVERRIDE"
}
}
},
{
"name": "mfa_once_per_session_device_conditions",
"id": "3",
"contextAttributes": {
"attributes": [
{
"name": "devicePlatform",
"values": [
"IOS",
"ANDROID",
"OTHER_MOBILE",
"MACOS",
"WINDOWS",
"OTHER_DESKTOP"
],
"opCode": "IN"
},
{
"name": "deviceCompliance",
"values": [
"COMPLIANT",
"NONCOMPLIANT",
"UNKNOWN"
],
"opCode": "IN"
}
]
},
"result": {
"extendedAction": {
"action": "ACTION_MFA_PER_SESSION"
},
"authnMethods": [
"urn:ibm:security:authentication:asf:macotp"
]
}
},
{
"name": "deny_otherwise",
"id": "100",
"conditions": {},
"result": {
"extendedAction": {
"action": "ACTION_DENY"
},
"authnMethods": []
}
}
]
}
- 각 규칙은 3개의 특성으로 구성되어 있습니다.
- name
- 규칙의 이름입니다.
- id
- 이벤트 데이터 및 보고서에 사용된 규칙에 대한 고유 ID입니다.
- conditions
- 규칙마다 둘 이상의 조건이 있을 수 있습니다. 규칙이 일치하고 결과가 적용되려면 규칙의 모든 조건이 true로 평가되어야 합니다. 기본 규칙에 빈 조건이 포함됩니다.
- 조건에는 다음 특성이 포함되어 있습니다.
- contextAttributes
- 액세스 정책이 실행된 플로우에 문맥상으로 관련된 속성입니다. 이러한 속성에는 디바이스 관리, OpenID Connect 및 HTTP 요청 속성이 포함됩니다.
- subjectAttributes
- 인증된 사용자 주체와 연관된 로그인 세션 속성입니다.
- factorLifetimeAttributes
- 특정 인증 요인 또는 메소드에 유효성을 연관시킵니다.
- timeAttributes
- 시간 기반 액세스 제어를 사용하는 하루의 시간 속성입니다.
- ipAddress
- 개별, 범위 또는 서브넷 기반 허용 및 차단 목록을 사용하는 IP 주소 조건입니다.
- location
- 사용자의 IP 주소에서 분석된 국가 또는 구/군/시입니다. 국가는 다음 ISO 표준에 기반한 쉼표로 구분된 국가 이름 또는 세 자리 국가 코드 목록을 포함해야 합니다. 단일 국가 또는 세 자리 국가 코드가 허용 가능합니다.
구/군/시는 쉼표로 구분된 구/군/시 이름 목록을 포함해야 합니다. 단일 구/군/시가 허용 가능합니다.
- geoLocation
- 액세스 결정이 확인된
위치입니다. 기본 설정은 이전 다섯 개의
확인된 위치에 대한 설정입니다. condition 속성은 (true) 또는
disabledenabled(false)입니다. - trusteer
- IBM Security Trusteer는 사용자를 위한 새 디바이스의 첫 번째 액세스를 발견합니다.
- 속성에는 다음 특성이 포함되어 있습니다.
- name
- 속성의 이름입니다.
- values
- 속성의 값입니다.
- opCode
- 연산자입니다.
- 속성값의 평가를 위한 연산자:
- EQ
- 모든 값이 존재합니다.
- NEQ
- 어떤 값도 존재하지 않습니다.
- IN
- 하나 이상의 값이 존재합니다.
- MATCH
- IP 주소, 범위 또는 서브넷 일치에 대한 ipAddress 조건 opCode입니다.
- NOMATCH
- IP 주소, 범위 또는 서브넷 불일치에 대한 ipAddress 조건 opCode입니다.
- 결과에는 다음 특성이 포함되어 있습니다.
- Action
- 조건이 충족될 때 트리거할 조치를 지정합니다. 유효값은 다음과 같습니다.
- ACTION_ALLOW
- ACTION_MFA_ALWAYS - 액세스 정책 평가 중에 규칙이 일치할 때마다 MFA 수행.
- ACTION_MFA_PER_SESSION - 인증된 세션당 한 번의 MFA 수행 및 이미 완료된 경우 허용.
- ACTION_DENY.
- authnMethods
- 이 작업이 다단계 인증(MFA)인 경우 허용되는 인증 방식을 지정합니다. urn:ibm:security:authentication:asf:macotp - 사용자가 완료할 수 있는 모든 방식을 선택하도록 허용하거나, 다음 요소 중 하나 이상을 선택하도록 허용합니다:
emailotp- 이메일 일회성 비밀번호smsotp- SMS 일회성 비밀번호totp- 시간 기반 일회성 비밀번호(인증자 앱)signatures- IBM® Verify 앱 푸시 알림passkey- 패스키 인증기voiceotp- 사용자의 등록된 전화번호로 전송된 일회성 음성 비밀번호입니다.anyFactor–urn:ibm:security:authentication:asf:macotp의 별명입니다. 이 메커니즘은 특히factorLifetime조건에 사용되며 사용자가 완료한 유효한 인증 메커니즘을 나타냅니다.
이 조건은 유효성을 특정 인증 요인 또는 메소드와 연관시킵니다. 유효성은 사용자 프로파일 또는 사용자의 디바이스와 연관될 수 있습니다.
- 캘린더 일에 한 번만 사용자를 MFA하려는 조직의 경우 18시간 동안 재인증을 구성할 수 있습니다.
- 비즈니스 주에 한 번만 사용자를 MFA하려는 조직의 경우에는 6일마다 정책을 구성할 수 있습니다.참고: 이
reauthPerDevice옵션이 활성화되면, '알려진' 기기가 아닌 경우 사용자에게 다단계 인증(MFA)을 요청합니다. 예를 들어, 사용자가 다른 브라우저(Edge 대신에 Chrome)에서 또는 다른 물리적 디바이스에서 인증합니다.사생활 보호 모드가 사용되면 각각의 새 세션마다 최초 액세스에 대해 MFA 인증 확인이 생성됩니다.
factorLifeTimeAttributes는 다음 필수 속성을 포함합니다.- name
- 유효한
authnMethods또는anyFactor속성의 목록입니다. - values
authnMethod의 유효성 간격(초)입니다.- opCode
- EQ.
- name
reauthPerDevice.- values
- 사용 또는 사용 안함.
- opCode
- EQ.
컨텍스트 속성에는 디바이스 관리, OpenID Connect 및 HTTP 요청 속성이 포함될 수 있습니다.
- 디바이스 관리 컨텍스트 속성
- 디바이스 관리 속성 devicePlatform 및 deviceComplaince이 contextAttributes
조건 아래에 정의됩니다.
- devicePlatform
OTHER_DESKTOPIOS운영 체제 및 장치 플랫폼(예: iOS, Android, Mac OS X ). 허용되는 값은,ANDROID,OTHER_MOBILE,MACOS,WINDOWS, 입니다. 이 조건을 적용하려면 장치 관리 구독이 필요하며, ‘조건부 액세스 구성’을 참조하십시오.- deviceCompliance
- 디바이스의 준수 레벨입니다.
UNKNOWNCOMPLIANT허용되는 값은,NONCOMPLIANT, 및 입니다. 이 조건을 적용하려면 장치 관리 구독이 필요합니다. ‘조건부 액세스 구성’을 참조하십시오.
- OpenID Connect 컨텍스트 속성
- OpenID Connect 애플리케이션에 사용 가능한 대부분의 다음 컨텍스트 속성은 OIDC 요청 매개변수입니다. 요청 매개변수 이름과 1-1 일치하지 않는 해당 속성은 설명과 함께 제공됩니다. 자세한 내용은 https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest 및 https://tools.ietf.org/html/rfc7636#section-4.3 을 참조하십시오.
- scope
- 이 토큰이 수신하는 임의의 공백으로 구분된 범위 목록입니다. 잘 알려진 범위의
예는
emailaddressprofileopenid입니다. - response_type
- 다음 중 하나 이상:
codetokenid_token. 지원되는 값에 대해서는 https://oidc-dev-test.ite1.idng.ibmcloudsecurity.com/developer/explorer/#!/OpenID_Connect/handleAuthorizeGet 을 참조하십시오. - acr_values
- 특정
ARC를 특정 인증에 연결합니다. - method
- 실행된 정책이 포함된 문자열 목록으로, 형식은
urn:ibm:security:policy:id:<policy-id>다음과 같습니다. - claims
- 복합 JSON입니다.
- response_mode
- 문자열,
query fragment form_post중 하나입니다. - response_method
- 요청에서 URI로 리턴되는 메소드를 지정합니다.
- code_challenge_exist
- 요청에서
code_challenge가 전송되었는지 여부를 지정하는 PKCE 플로우의 부울 선택입니다. - redirect_uri_scheme
- 브라우저가 아닌 사용자 에이전트와 응답을 발견하는 경로 재지정 URI의 스킴 구성요소입니다.
- client_type
- 클라이언트가
public또는confidential클라이언트인지 여부를 지정합니다. 기밀 클라이언트에는 클라이언트 시크릿이 있습니다. - request_type
- 요청이 전송된 엔드포인트를 식별합니다.
device_authorize,user_authorize,authorizationaccess_token,introspect,user_info,revoke,, 또는client_registration.
- HTTP 요청 컨텍스트 속성
- HTTP 요청 헤더는 액세스 정책에서 평가할 수 있습니다. HTTP 요청 헤더
이름을 contextAttributes의 속성 이름 및 인바운드 헤더 값에
해당하는 값으로 사용하십시오. 값의 변환은 현재 지원되지 않으며 컨텍스트
속성에 대한 표준 opCodes만 사용 가능합니다. 예를 들어,,
"conditions": { "contextAttributes": { "attributes": [{ "name": "referer", "values": [ "https://<isv_tenant>/usc/", "https://<some_other_known_referrer>" ], "opCode": "IN" }, { "name": "user-agent", "values": [ "<specific_user_agent>" ], "opCode": "EQ" }, { "name": "x-forwarded-for", "values": [ "<x_forwarded_for_ip_address>" ], "opCode": "EQ" } ] } }
- displayName
- 사용자에 대해 표시된 이름입니다.
- name
- 이름 및 성입니다.
- family_name
- 사용자의 성입니다.
- given_name
- 사용자의 이름입니다.
- 사용자의 이메일입니다.
- emailAddress
- 사용자의 이메일입니다.
- groupIds
- 그룹 ID입니다.
- preferred_username
- 변경 가능한 사용자 이름입니다.
- uuid
- 사용자의 고유 ID입니다.
- uniqueSecurityName
- 사용자의 고유 ID입니다.
- realmName
- 비연합 클라우드 디렉토리 사용자의 경우 이 값은 항상
cloudIdentityRealm입니다. - userType
- 비연합 클라우드 디렉토리 사용자의 경우 이 값은 항상
regular입니다.
일 속성의 시간입니다.
- 속성에는 다음 특성이 포함되어 있습니다.
- name
- 속성의 이름입니다. name은 요일이고 선택적으로
timeZone, startDate 및 endDate입니다. 값은
다음 중 하나입니다.
- 월요일
- 화요일
- 수요일
- 목요일
- 금요일
- 토요일
- 일요일
요일 시간 범위는
{ ... "values": [ "hh:mm-hh:mm" ]}의 범위에서 사용 가능하며 선택적으로 startDate 및 endDate로 스테이징될 수 있습니다. - timeZone
- 지역과 연관된 시간대입니다. 기본값은 협정
세계시(UTC)입니다. 값은 다음 형식일 수 있습니다.
UTC<+/-><offset>- 예를 들어,UTC+10GMT<+/-><offset>- 예를 들어,GMT-5- 시간대 데이터베이스 이름 - 예:
Australia/Brisbane
- startDate
- 조건이 활성이 되는 시작 날짜 및 시간입니다. 요일 속성으로 스테이징된 블록 시간
일치를 작성하는 데 개별적으로 사용될 수 있습니다. startDate는
요일에 우선합니다. 값의 형식은
YYYY-MM-DD HH:mm:ss입니다. 요일의 경우 값의 형식은hh:mm-hh:mm입니다. - endDate
- 조건이 더 이상 활성이 아니게 되는 선택적 종료 날짜 및 시간입니다. startDate를
포함하거나 요일 속성으로 스테이징된 블록 시간 일치를 작성하는 데 개별적으로
사용될 수 있습니다. endDate 없이, startDate 또는 요일이 있는 경우
조건이 무제한으로 일치합니다.
YYYY-MM-DD HH:mm:ss값은 다음과 같은 형식입니다.
IPv4 및 IPv6를 지원하는 IP 주소 기반 조건입니다.
- 조건에는 다음 특성이 포함됩니다.
- values
- 조건의 값입니다. 유효한 값은 IP 주소의 범위, 쉼표로 구분된 IP 주소 목록 또는 CIDR IP 주소입니다.
- opCode
- 연산자입니다. 특정 opCodes는 ipAddress
조건에 필요합니다.사용 가능한 연산자는 다음과 같습니다.
- MATCH
- 모든 값이 존재합니다.
- NOMATCH
- 어떤 값도 존재하지 않습니다.
사용자의 IP 주소에서 분석된 국가 또는 구/군/시입니다. 국가는 다음 ISO 표준에 기반한 쉼표로 구분된 국가 이름 또는 세 자리 국가 코드 목록을 포함해야 합니다. ISO 3166-1 alpha-3을 참조하십시오. 단일 국가 또는 세 자리 국가 코드가 허용 가능합니다. 구/군/시는 쉼표로 구분된 구/군/시 이름 목록을 포함해야 합니다. 단일 구/군/시가 허용 가능합니다.
- 조건에는 다음 특성이 포함됩니다.
- 사용
- 조건이 사용(true) 아니면 사용 안함(false)으로 설정됩니다.
- opCode
- 연산자입니다. 특정 opCodes는 location
조건에 필요합니다.사용 가능한 연산자는 다음과 같습니다.
- IN
- 하나 이상의 값이 존재합니다.
- NOT IN
- 어떤 값도 존재하지 않습니다.
액세스 결정이 확인된 위치입니다. 기본 설정은 이전 다섯 개의 확인된 위치에 대한 설정입니다.
- 조건에는 다음 특성이 포함됩니다.
- 사용
- 조건이 사용(true) 아니면 사용 안함(false)으로 설정됩니다.
IBM Security Trusteer는 사용자를 위한 새 디바이스의 첫 번째 액세스를 발견합니다.
- 조건에는 다음 특성이 포함됩니다.
- 사용
- 조건이 사용(true) 아니면 사용 안함(false)으로 설정됩니다.