Advanced Access Control Configuration

This configuration module is used to apply configuration to the runtime Liberty server. This includes configuring the runtime authorization server, context-based access, SCIM, FIDO2, Authentication, Context-Based Access and MMFA.

Example

access_control:
   authentication:
      policies:
      - name: "Username Password"
         description: "Username and password authentication policy."
         enabled: true
         uri: "urn:ibm:security:authentication:asf:password"
         policy: "<Policy xmlns=\"urn:ibm:security:authentication:policy:1.0:schema\" PolicyId=\"urn:ibm:security:authentication:asf:password\"><Description>Username and password authentication policy.</Description><Step type=\"Authenticator\"><Authenticator AuthenticatorId=\"urn:ibm:security:authentication:asf:mechanism:password\"/></Step><Actions><Action On=\"null\" type=\"null\"><AttributeAssignments/></Action></Actions></Policy>"
      mechanisms:
      - name: "Username Password"
        type: "Username Password"
        description: "Username password authentication"
        uri: "urn:ibm:security:authentication:asf:mechanism:password"
        properties:
        - usernamePasswordAuthentication.enableLastLogin: "false"
        - usernamePasswordAuthentication.loginFailuresPersistent: "false"
        - usernamePasswordAuthentication.maxServerConnections: "16"
        - usernamePasswordAuthentication.mgmtDomain: "Default"
        - usernamePasswordAuthentication.sslServerStartTLS: "false"
        - usernamePasswordAuthentication.useFederatedDirectoriesConfig: "false"
        - usernamePasswordAuthentication.userSearchFilter: "(|(objectclass=ePerson)(objectclass=Person))"
        - usernamePasswordAuthentication.ldapBindDN: "cn=root,secAuthority=Default"
        - usernamePasswordAuthentication.ldapHostName: "openldap"
        - usernamePasswordAuthentication.ldapBindPwd: "Passw0rd"
        - usernamePasswordAuthentication.ldapPort: "636"
        - usernamePasswordAuthentication.sslEnabled: "true"
        - usernamePasswordAuthentication.sslTrustStore: "lmi_trust_store"
        attributes:
        - selector: "mobile"
          name: "mobileNumber"
          namespace: "urn:ibm:security:authentication:asf:mechanism:password"
        - selector: "mail"
          name: "emailAddress"
          namespace: "urn:ibm:security:authentication:asf:mechanism:password"

API Protection

Schema Docs
Type: object

Configuration for OAuth 2.0 and OpenID Connect (OIDC) API protection definitions and clients.


Example:

api_protection:
  definitions:
  - name: Verify Demo - Open Banking
    description: The Open Banking Definition.
    tcm_behavior: NEVER_PROMPT
    grant_types:
    - AUTHORIZATION_CODE
    multiple_refresh_tokens: true
    access_policy: Open_Banking
    oidc:
      poc: https://my.ibmsec.idp.com
      iss: https://my.ibmsec.idp.com
      lifetime: 20
      alg: RS256
      db: rt_profile_keys
      cert: server
    pre_token_mapping_rule: Verify Demo - Open Banking_pre_token_generation.js
    post_token_mapping_rule: Verify Demo - Open Banking_post_token_generation.js
  - name: Verify Demo - Client Credentials Authorization Code Consent PSD2
    description: For Fintechs, this is Client Credentials and Authorization Code with
      consent.
    tcm_behavior: NEVER_PROMPT
    grant_types:
    - AUTHORIZATION_CODE
    - CLIENT_CREDENTIALS
    max_authorization_grant_lifetime: 7200
  - name: Verify Demo - Client Credentials AaaS
    description: This is for the AaaS mock server access.
    tcm_behavior: NEVER_PROMPT
    grant_types:
    - CLIENT_CREDENTIALS
    access_token_lifetime: 999999999
  clients:
  - name: J.P. Norvill
    client_id: ob_client
    client_secret: hunter2
    redirect_uri:
    - https://jpnorvill.com/auth
    - http://my.ibmsec.spa.com:19080/auth
    company_name: JPNorvill
    contact_type: TECHNICAL
    definition: Verify Demo - Open Banking

Type: array

List of OIDC definitions to create.

No Additional Items

Each item of this array must be:

Type: object

An API protection definition that defines OAuth/OIDC behavior.

Type: string

A unique name for the API protection definition.

Type: string

An optional description of the API protection definition.

Type: array of enum (of string)

A list of supported authorization grant types. At least one must be specified.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "AUTHORIZATION_CODE"
  • "RESOURCE_OWNER_PASSWORD_CREDENTIALS"
  • "CLIENT_CREDENTIALS"
  • "IMPLICIT_GRANT"
  • "SAML_BEARER"
  • "JWT_BEARER"
  • "DEVICE"

Type: enum (of string)

Identifies the Trusted Client Manager behavior concerning trusted clients and consent.

Must be one of:

  • "ALWAYS_PROMPT"
  • "NEVER_PROMPT"
  • "PROMPT_ONCE_AND_REMEMBER"

Type: integer Default: 3600

Validity of the access token, in seconds.

Value must be greater or equal to 1

Type: integer Default: 20

Length (characters) of an access token.

Value must be greater or equal to 1 and lesser or equal to 500

Type: boolean Default: false

True if all tokens of the authorization grant should be revoked after an access token is validated.

Type: integer Default: 300

Validity period, in seconds, of the authorization code.

Value must be greater or equal to 1

Type: integer Default: 30

Length of an authorization code.

Value must be greater or equal to 1 and lesser or equal to 500

Type: boolean Default: true

True if a refresh token should be issued to the client.

Type: integer Default: 40

Length of a refresh token.

Value must be greater or equal to 1 and lesser or equal to 500

Type: integer Default: 604800

The maximum duration of a grant, in seconds.

Value must be greater or equal to 1 and lesser or equal to 604800

Type: boolean Default: true

True if previously granted access tokens should be revoked after a new access token is generated.

Type: boolean Default: false

True if multiple refresh tokens are stored.

Type: boolean Default: false

True if the refresh token will be further protected with a PIN.

Type: integer Default: 4

The length of a PIN.

Value must be greater or equal to 3 and lesser or equal to 12

Type: string Default: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

String of characters that can be used to generate tokens.

Must be at most 200 characters long

Type: object

The OIDC configuration for this API protection definition.

Type: stringFormat: uri

The issuer identifier of this definition. Should have the prefix https://.

Type: stringFormat: uri

The Point of Contact URL for this definition, must be a valid URL.

Type: integer

The lifetime of the id_tokens issued.

Value must be greater or equal to 1

Type: enum (of string) Default: "RS256"

The signing algorithm for the JWT.

Must be one of:

  • "HS256"
  • "HS384"
  • "HS512"
  • "RS256"
  • "RS384"
  • "RS512"
  • "ES256"
  • "ES384"
  • "ES512"

Type: string

The database containing the signing key for RS/ES signing methods.

Type: string

The certificate label of the signing key for RS/ES signing methods.

Type: object

JWT encryption config.

Type: boolean

Is encryption enabled for this definition.

Type: string Default: "RSA-OAEP-256"

The key agreement algorithm for encryption.

Type: string Default: "A128CBC-HS256"

The encryption algorithm.

Type: boolean Default: false

Whether or not the client registration endpoint will be enabled for this definition.

Type: boolean Default: false

Whether or not a client secret will be issued to dynamic clients.

Type: boolean

Whether or not the definition should be strictly OIDC Compliant.

Type: boolean

Whether or not the definition should be strictly FAPI Compliant. Setting this to true will automatically set OIDC Compliant to true.

Type: string

The name of access policy assigned to this definition.

Type: array

Array of configured attribute sources to use in id_token generation and userinfo requests.

No Additional Items

Each item of this array must be:

Type: object

An attribute source mapping for token generation.

Type: string

Name the attribute should be exposed as.

Type: string

Reference to the attribute source which should be used to retrieve the value.

Type: string

Path to file to upload as JavaScript pre-token rule.

Type: string

Path to file to upload as JavaScript post-token rule.

Type: array

List of OIDC clients to create.

No Additional Items

Each item of this array must be:

Type: object

An OAuth/OIDC client registration.

Type: string

A meaningful name to identify this API protection client.

Type: string

The name of the related API protection definition which owns and defines this client.

Type: array of string

The redirect URIs to use for this client.

No Additional Items

Each item of this array must be:

Type: stringFormat: uri

Type: string

Name of the company associated with this client.

Type: stringFormat: uri

URL for the company associated with this client.

Type: string

Name of the contact person for this client.

Type: enum (of string)

Further describes the contact.

Must be one of:

  • "TECHNICAL"
  • "SUPPORT"
  • "ADMINISTRATIVE"
  • "BILLING"
  • "OTHER"

Type: stringFormat: email

The email address of the contact person for this client.

Type: string

The telephone number of the contact person for this client. Input must be completely numeric.

Must match regular expression: ^[0-9]+$

Type: string

Other information about the client contact.

Type: string

A unique OAUTH client identifier to identify this client to the authorization server.

Type: string

A string that identifies this client as confidential and serves as this client's secret.

Type: boolean Default: false

Whether or not this client must perform proof of key exchange when performing an authorization code flow.

Type: string

The database containing the JWT encryption key.

Type: string

The certificate label of the JWT encryption key.

Type: stringFormat: uri

URI which is the location that a clients published JWK set.

Type: boolean Default: true

Does this client require a client secret when introspecting.

Type: object

Dynamic Client information. This is free form JSON.


Attribute Sources

To set Attribute sources, see the entry in the Appliance or Container documentation.

Authentication

Schema Docs
Type: object

Configuration for authentication mechanisms and policies used in the Authentication policy engine. Authentication policies can be used in risk-based access or context-based access policies to conditionally enforce additional authentication/authorization requirements. Authentication policies can also be attached to WebSEAL objects in the policy server.


Example:

authentication:
  mechanisms:
  - name: Verify Demo - QR Code Initiate
    uri: urn:ibm:security:authentication:asf:mechanism:qr_code_initiate
    description: InfoMap to initiate the QR login
    type: InfoMapAuthenticationName
    properties:
      mapping_rule: InfoMap_QRInitiate
      template_file: ''
  - name: Verify Demo - QR Code Response
    uri: urn:ibm:security:authentication:asf:mechanism:qr_code_response
    description: InfoMap to use the LSI for QR login
    type: InfoMapAuthenticationName
    properties:
      mapping_rule: InfoMap_QRResponse
      template_file: ''
  - name: Username Password
    uri: urn:ibm:security:authentication:asf:mechanism:password
    description: Username password authentication
    type: Username Password
    properties:
      usernamePasswordAuthentication.ldapHostName: openldap
      usernamePasswordAuthentication.loginFailuresPersistent: 'false'
      usernamePasswordAuthentication.ldapBindDN: '!secret default/isva-secrets:ldap_bind_dn'
      usernamePasswordAuthentication.maxServerConnections: '16'
      usernamePasswordAuthentication.mgmtDomain: Default
      usernamePasswordAuthentication.sslEnabled: 'true'
      usernamePasswordAuthentication.ldapPort: '636'
      usernamePasswordAuthentication.sslTrustStore: lmi_trust_store
      usernamePasswordAuthentication.userSearchFilter: usernamePasswordAuthentication.userSearchFilter
      usernamePasswordAuthentication.ldapBindPwd: '!secret default/isva-secrets:ldap_bind_pwd'
      usernamePasswordAuthentication.useFederatedDirectoriesConfig: 'false'
  - name: TOTP One-time Password
    uri: urn:ibm:security:authentication:asf:mechanism:totp
    description: Time-based one-time password authentication
    type: TOTP One-time Password
    properties:
      otp.totp.length: '6'
      otp.totp.macAlgorithm: HmacSHA1
      otp.totp.oneTimeUseEnabled: 'true'
      otp.totp.secretKeyAttributeName: otp.hmac.totp.secret.key
      otp.totp.secretKeyAttributeNamespace: urn:ibm:security:otp:hmac
      otp.totp.secretKeyUrl: otpauth://totp/Example:@USER_NAME@?secret=@SECRET_KEY@&issuer=Example
      otp.totp.secretKeyLength: '32'
      otp.totp.timeStepSize: '30'
      otp.totp.timeStepSkew: '10'
  - name: reCAPTCHA Verification
    uri: urn:ibm:security:authentication:asf:mechanism:recaptcha
    description: Human user verification using reCAPTCHA Version 2.0.
    type: ReCAPTCHAAuthenticationName
    properties:
      reCAPTCHA.HTMLPage: /authsvc/authenticator/recaptcha/standalone.html
      reCAPTCHA.apiKey: '!secret default/isva-secrets:recaptcha_key'
  - name: End-User License Agreement
    uri: urn:ibm:security:authentication:asf:mechanism:eula
    description: End-user license agreement authentication
    type: End-User License Agreement
    properties:
      eulaAuthentication.acceptIfLastAcceptedBefore: 'true'
      eulaAuthentication.alwaysShowLicense: 'false'
      eulaAuthentication.licenseFile: /authsvc/authenticator/eula/license.txt
    eulaAuthentication.licenseRenewalTerm: '0'
  - name: FIDO Universal 2nd Factor
    uri: urn:ibm:security:authentication:asf:mechanism:u2f
    description: FIDO Universal 2nd Factor Token Registration and Authentication
    type: U2FName
    properties:
      U2F.attestationSource: ''
      U2F.attestationType: None
      U2F.appId: www.myidp.ibm.com
      U2F.attestationEnforcement: Optional
  policies:
  - name: Verify Demo - Initiate Generic Message Demo Policy
    uri: urn:ibm:security:authentication:asf:verify_generic_message
    description: IBM MFA generic message policy.
    policy: <Policy xmlns="urn:ibm:security:authentication:policy:1.0:schema" PolicyId="urn:ibm:security:authentication:asf:verify_generic_message"><Description>IBM
      MFA generic message policy.</Description><Step id="id15342210896710" type="Authenticator"><Authenticator
      id="id15342210896711" AuthenticatorId="urn:ibm:security:authentication:asf:mechanism:generic_message"/></Step><Step
      id="id15342211135160" type="Authenticator"><Authenticator id="id15342211135161"
      AuthenticatorId="urn:ibm:security:authentication:asf:mechanism:mmfa"><Parameters><AttributeAssignment
      AttributeId="contextMessage"><AttributeDesignator AttributeId="message" Namespace="urn:ibm:security:asf:response:token:attributes"
      Source="urn:ibm:security:asf:scope:session" DataType="String"/></AttributeAssignment><AttributeAssignment
      AttributeId="mode"><AttributeValue DataType="String">Initiate</AttributeValue></AttributeAssignment><AttributeAssignment
      AttributeId="policyURI"><AttributeValue DataType="URI">urn:ibm:security:authentication:asf:verify_mmfa_response_fingerprint</AttributeValue></AttributeAssignment><AttributeAssignment
      AttributeId="username"><AttributeDesignator AttributeId="username" Namespace="urn:ibm:security:asf:response:token:attributes"
      Source="urn:ibm:security:asf:scope:session" DataType="String"/></AttributeAssignment></Parameters></Authenticator></Step></Policy>
  - name: Verify Demo - QR Code Initiate
    uri: urn:ibm:security:authentication:asf:qrlogin_initiate
    description: Login without a password - use your phone and scan a QR code!
    policy: <Policy xmlns="urn:ibm:security:authentication:policy:1.0:schema" PolicyId="urn:ibm:security:authentication:asf:qrlogin_initiate"><Description>Login
      without a password - use your phone and scan a QR code!</Description><Step id="id15033758674560"
      type="Authenticator"><Authenticator id="id15033758674561" AuthenticatorId="urn:ibm:security:authentication:asf:mechanism:qr_code_initiate"/></Step></Policy>
  - name: Verify Demo - QR Code Response
    uri: urn:ibm:security:authentication:asf:qrlogin_response
    description: Login without a password - use your phone and scan a QR code!
    policy: <Policy xmlns="urn:ibm:security:authentication:policy:1.0:schema" PolicyId="urn:ibm:security:authentication:asf:qrlogin_response"><Description>qrlogin_response</Description><Step
      id="id15033758436320" type="Authenticator"><Authenticator id="id15033758436321"
      AuthenticatorId="urn:ibm:security:authentication:asf:mechanism:qr_code_response"/></Step></Policy>
  - name: FIDO U2F Authenticate
    uri: urn:ibm:security:authentication:asf:u2f_authenticate
    description: FIDO Universal 2nd Factor Token Authentication
    policy: <Policy xmlns="urn:ibm:security:authentication:policy:1.0:schema" PolicyId="urn:ibm:security:authentication:asf:u2f_authenticate"><Description>FIDO
      Universal 2nd Factor Token Authentication</Description><Step id="Step_1" type="Authenticator"><Authenticator
      id="Auth_1" AuthenticatorId="urn:ibm:security:authentication:asf:mechanism:u2f"><Parameters><AttributeAssignment
      AttributeId="mode"><AttributeValue DataType="String">Authenticate</AttributeValue></AttributeAssignment><AttributeAssignment
      AttributeId="username"><AttributeDesignator AttributeId="username" Namespace="urn:ibm:security:asf:request:parameter"
      Source="urn:ibm:security:asf:scope:request" DataType="String"/></AttributeAssignment></Parameters></Authenticator></Step><Actions><Action
      On="null" type="null"><AttributeAssignments/></Action></Actions></Policy>

Type: array

List of authentication mechanism to create or update.

No Additional Items

Each item of this array must be:

Type: object

An authentication mechanism configuration.

Type: string

A unique name for the authentication mechanism.

Type: string

An optional description of the authentication mechanism.

Type: stringFormat: uri

The unique resource identifier of the authentication mechanism.

Type: enum (of string)

Type of mechanism to create.

Must be one of:

  • "HOTP One-time Password"
  • "MAC One-time Password"
  • "RSA One-time Password"
  • "TOTP One-time Password"
  • "Consent to device registration"
  • "One-time Password"
  • "HTTP Redirect"
  • "Username Password"
  • "End-User License Agreement"
  • "Knowledge Questions"
  • "Mobile User Approval"
  • "reCAPTCHA Verification"
  • "Info Map Authentication"
  • "Email Message"
  • "MMFA Authenticator"
  • "SCIM Config"
  • "FIDO Universal 2nd Factor"
  • "Cloud Identity JavaScript"
  • "QRCode Authenticator"
  • "FIDO2 WebAuthn Authenticator"
  • "Decision JavaScript"
  • "RSA SecurID"
  • "FIDO2 WebAuthn Registration"
  • "OTP Enrollment"

Type: object

List of properties to configure for mechanism. The property names are different for each of the mechanism types.

Type: array

List of attribute to add from the request context.

No Additional Items

Each item of this array must be:

Type: object

An attribute to retrieve from the authentication context.

Type: string

Name of a registry attribute to obtain.

Type: string

Authentication service namespace of name.

Type: string

Authentication service context attribute.

Type: array

List of authentication policies to create or update.

No Additional Items

Each item of this array must be:

Type: object

An authentication policy that defines the authentication flow.

Type: string

Specify a unique name for the authentication policy.

Type: string

Description of the authentication policy.

Type: stringFormat: uri

Specify a unique resource identifier for the authentication policy.

Type: enum (of string) Default: "urn:ibm:security:authentication:policy:1.0:schema"

Authentication policy specification used to format the authentication policy.

Must be one of:

  • "urn:ibm:security:authentication:policy:1.0:schema"

Type: string

Configured policy content that uses the specified authentication policy dialect (XML format).

Type: boolean

True if the policy is enabled and invocable at runtime. Set to false to disable the policy.


Context Based Access

Schema Docs
Type: object

Configuration for the Context Based Access (CBA) policy engine of a Verify Identity Access deployment including risk profiles, policies, and resource protection. Context Based Access policies are capable of defining conditional authentication requirements based on administrator defined logic (such as device registration status, ip reputation, authentication method enrollment for a user).


Example:

access_control:
  risk_profiles:
  - name: myLocation
    active: true
    attributes:
    - weight: 50
      id: '28'
    - weight: 10
      name: geoCountryCode
    - weight: 10
      name: geoRegionCode
    - weight: 10
      name: geoCity
    predefined: false
  policies:
  - name: Verify Demo - MFA Login Policy
    policy: <?xml version="1.0" encoding="UTF-8"?><!-- PolicyTag=urn:ibm:security:isam:8.0:xacml:2.0:config-policy
      --><!-- PolicyName='Verify Demo - MFA Login Policy' --><PolicySet xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
      xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="urn:oasis:names:tc:xacml:2.0:policy:schema:os http://docs.oasis-open.org/xacml/access_control-xacml-2.0-policy-schema-os.xsd"
      PolicySetId="urn:ibm:security:config-policy" PolicyCombiningAlgId="urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides"><Description>Example
      CBA Policy for the MFA Banking Demo password-less login</Description><Target/><Policy
      PolicyId="urn:ibm:security:rule-container:0" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"><Target/><Rule
      RuleId="urn:ibm:security:rule:0" Effect="Permit"></Rule><Obligations><Obligation
      ObligationId="urn:ibm:security:authentication:asf:verify_mmfa_request_fingerprint"
      FulfillOn="Permit"/></Obligations></Policy></PolicySet>
  - name: Verify Demo - EULA
    policy: <?xml version="1.0" encoding="UTF-8"?><!-- PolicyTag=urn:ibm:security:isam:8.0:xacml:2.0:config-policy
      --><!-- PolicyName='Verify Demo - EULA' --><PolicySet xmlns="urn:oasis:names:tc:xacml:2.0:policy:schema:os"
      xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="urn:oasis:names:tc:xacml:2.0:policy:schema:os http://docs.oasis-open.org/xacml/access_control-xacml-2.0-policy-schema-os.xsd"
      PolicySetId="urn:ibm:security:config-policy" PolicyCombiningAlgId="urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:first-applicable"><Description>GDPR
      Compliance (Acceptance of ToS)</Description><Target/><Policy PolicyId="urn:ibm:security:rule-container:0"
      RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"><Target/><Rule
      RuleId="urn:ibm:security:rule:0" Effect="Permit"><Condition><Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:and"><Apply
      FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of"><Apply
      FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-bag"><AttributeValue
      DataType="http://www.w3.org/2001/XMLSchema#string">urn:ibm:security:authentication:asf:mechanism:eula</AttributeValue></Apply><SubjectAttributeDesignator
      AttributeId="urn:ibm:security:subject:authenticationMechanismTypes" DataType="http://www.w3.org/2001/XMLSchema#string"
      MustBePresent="false"/></Apply></Apply></Condition></Rule></Policy><Policy PolicyId="urn:ibm:security:rule-container:1"
      RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"><Target/><Rule
      RuleId="urn:ibm:security:rule:1" Effect="Permit"></Rule><Obligations><Obligation
      ObligationId="urn:ibm:security:authentication:asf:eula" FulfillOn="Permit"/></Obligations></Policy></PolicySet>
    description: GDPR Compliance (Acceptance of ToS)
  resources:
  - server: my.ibmsec.idp
    resource_uri: /login
    policies:
    - name: Verify Demo - MFA Login Policy
      type: policy
  - server: my.ibmsec.idp
    resource_uri: /protected/transfer
    policies:
    - name: Verify Demo - MFA Transaction Policy
      type: policy
  - server: my.ibmsec.idp
    resource_uri: /isam/sps/SP-SAML-QC/saml20/login
    policies:
    - name: Verify Demo - MFA Office 365 Login
      type: policy

Type: array

List of Risk Profiles to create.

No Additional Items

Each item of this array must be:

Type: object

A risk profile defines attributes and their weights used to calculate risk scores.

Type: string

A unique name for the risk profile.

Type: string

An optional brief description of the risk profile.

Type: boolean

True indicates this risk profile is the currently active risk profile. Only one profile can be active at a time.

Type: array

Array of attributes comprising this risk profile and the weight value of each attribute which is used in determining the risk score.

No Additional Items

Each item of this array must be:

Type: object

An attribute used in risk calculation with its associated weight.

Type: integer

Determines the importance of this attribute within the associated risk profile. A higher weight value indicates the attribute has more importance within the risk profile. The weight values of the attributes are used in determining the risk score or the level of risk associated with permitting a request to access a resource.

Value must be greater or equal to 0 and lesser or equal to 100

Type: string

Internally assigned ID value of the attribute. The attribute must have a type field value of true for risk. Either the name or id of the attribute must be defined.

Type: string

Name of the attribute. The attribute must have a type field value of true for risk. Either the name or id of the attribute must be defined.

Type: boolean Default: false

False to indicate this risk profile is custom defined.

Type: array

List of Risk Based Access policies to create.

No Additional Items

Each item of this array must be:

Type: object

An XACML policy for access control decisions.

Type: string

The name of the policy.

Type: string

An optional description of the policy.

Type: enum (of string) Default: "urn:oasis:names:tc:xacml:2.0:policy:schema:os"

The XACML specification used within the policy. Only valid value is XACML Version 2.

Must be one of:

  • "urn:oasis:names:tc:xacml:2.0:policy:schema:os"

Type: string

The configured policy in XACML 2.0 format.

Type: boolean Default: false

If true all the policy attributes must be present in the request for the policy to be evaluated.

Type: array

List of resources to be created and corresponding policies which should be attached to each resource.

No Additional Items

Each item of this array must be:

Type: object

A protected resource with attached policies.

Type: string

The web container that contains the protected object space for a server instance.

Type: string

The resource URI of the resource in the protected object space.

Must match regular expression: ^/

Type: array

Array of attachments (policy, policy sets, and API protection definitions) that define the access protection for this resource.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: object

A policy, policy set, or API protection definition attached to a resource.

Type: string

Name of the policy, policy set, or API protection definition.

Type: enum (of string)

The type of attachment.

Must be one of:

  • "policy"
  • "policyset"
  • "definition"

Type: enum (of string) Default: "denyOverrides"

permitOverrides to allow access to the resource if any of the attachments return permit; denyOverrides to deny access to the resource if any of the attachments return deny.

Must be one of:

  • "permitOverrides"
  • "denyOverrides"

Type: integer Default: 0

0 to disable the cache for this resource, -1 to cache the decision for the lifetime of the session or any number greater than 1 to set a specific timeout (in seconds) for the cached decision.


Attributes

Schema Docs
Type: array

Configuration for custom attributes used in risk profiles and access control policies. Attributes allow an administrator to source information about a user from a number of different places (LDAP, Session, Static) to build up credential attributes, which can then be used by subsequent authentication and authorization flows.

No Additional Items

Each item of this array must be:

Type: object

A custom attribute definition for use in risk-based access control.

Type: string

A unique name for the attribute.

Type: string

An optional description of the attribute.

Type: stringFormat: uri

The identifier of the attribute that is used in the generated XACML policy.

Type: object

Type of attribute being used.

Type: boolean

True if the attribute is used in risk profiles.

Type: boolean

True if the attribute is used in policies.

Type: enum (of string)

The type of values that the attribute can accept.

Must be one of:

  • "String"
  • "Integer"
  • "Double"
  • "Boolean"
  • "Time"
  • "Date"
  • "X500Name"

Type: string

The name of the policy information point from which the value of the attribute is retrieved.

Type: enum (of string)

The part of the XACML request that the attribute value comes from.

Must be one of:

  • "Subject"
  • "Environment"
  • "Action"
  • "Resource"

Type: string

ID of the attribute matcher that is used to compare the value of this attribute in an incoming device fingerprint with an existing device fingerprint of the user.

Type: object

Define where the attribute is stored.

Type: boolean

True if the attribute is collected in the user session. Session attributes are stored temporarily until the session times out.

Type: boolean

True if historic data for this attribute is stored in the database and used for behavior-based attribute matching.

Type: boolean

True if the attribute is stored when a device is registered as part of the device fingerprint.


Example:

attributes:
- name: urn:ibm:demo:transferamount
  description: Verify Demo Transfer Amount
  uri: urn:ibm:demo:transferamount
  type:
    risk: true
    policy: false
  datatype: Double
  issuer: ''
  category: Action
  matcher: '1'
  storage:
    session: true
    behavior: false
    device: true


Obligations

Schema Docs
Type: array

Configuration for access control obligations that define actions to be performed before access is granted. For example a user must consent to registering a device (device fingerprinting) to be permitted access.

No Additional Items

Each item of this array must be:

Type: object

An obligation that defines actions to be performed based on policy decisions.

Type: string

A unique name for the obligation.

Type: string

An optional description of the obligation.

Type: stringFormat: uri

The identifier of the obligation that is used in generated XACML.

Type: enum (of string) Default: "Obligation"

Should be set to Obligation.

Must be one of:

  • "Obligation"

Type: string Default: "1"

The obligation type id. If not provided, the value will be set to 1, which is the Enforcement Point type.

Type: array

Array of parameters associated with the obligation.

No Additional Items

Each item of this array must be:

Type: object

A parameter for an obligation.

Type: string

A unique name for the parameter.

Type: string

Label for the parameter. Set it to the value of the name.

Type: enum (of string)

Data type for the parameter.

Must be one of:

  • "Boolean"
  • "Date"
  • "Double"
  • "Integer"
  • "String"
  • "Time"
  • "X500Name"

Type: array

Array of properties associated with the obligations.

No Additional Items

Each item of this array must be:

Type: object

A property for an obligation.

Type: string

A unique key for the property.

Type: string

The value for the property.


Example:

obligations:
- name: myObligation
  description: Test obligation
  type: Obligation
  uri: urn:ibm:security:obligation:myObligation
  parameters:
  - name: userid
    label: userid
    datatype: String


Point Of Contact

To configure Point of Contact profiles, see the entry in the Appliance or Container documentation.

Policy Information Points

Schema Docs
Type: array

Policy Information Points (PIPs) allow administrators to integrate third party information sources to provide additional context to an authorization policy before making a decision to permit or deny access.

No Additional Items

Each item of this array must be:

Type: object

A policy information point that retrieves attribute values from external sources.

Type: string

A unique name for the policy information point. This name is used as the Issuer for custom attributes whose value is returned by this policy information point.

Type: string

A description of the policy information point.

Type: enum (of string)

The policy information point type for this policy information point.

Must be one of:

  • "JavaScript"
  • "RESTful Web Service"
  • "Database"
  • "LDAP"
  • "FiberLink MaaS360"
  • "QRadar User Behavior Analytics"

Type: array

A list of custom attributes whose values are retrieved from select portions of the response from this policy information point. Specify when the policy information point type has supportSelector true.

No Additional Items

Each item of this array must be:

Type: object

Defines how to extract an attribute value from the PIP response.

Type: string

Name of the attribute whose value will come from the selected data portion of the policy information point response. The attribute must be defined on the appliance before it can be assigned to this selector.

Type: string

Identifies how to select the part of the policy information point response that will be assigned as the attribute value. The format of the selector for a RESTful Web Service policy information point is dependent on the responseFormat property value (JSON, XML, or Text).

Type: array

Configurable properties defining this policy information point. These entries are specific to the policy information point type.

No Additional Items

Each item of this array must be:

Type: object

A configurable property for the policy information point.

Type: boolean

True if the property value cannot be updated.

Type: string

Value given to the property.

Type: enum (of string)

Data type of the property.

Must be one of:

  • "Binary"
  • "Boolean"
  • "Double"
  • "Integer"
  • "String"
  • "JavaScript"
  • "KeyStore"
  • "Email"
  • "X500"
  • "URI"
  • "URL"
  • "Hostname"

Type: string

Name of the property as used by the policy information point. A key of 'javascript.code' or 'fileContent' identify special properties whose values can be imported and exported by a file.

Type: boolean

Used internally to indicate properties with values private in nature, such as passwords.


Example:

pips:
- name: myJSpip
  description: Custom JavaScript PIP.
  type: JavaScript
  attributes: []
  properties:
  - read_only: false
    value: '

      /** Import packages necessary for the script to execute. */

      importPackage(com.ibm. . .);

      /** Your code here */

      ....

      var name = getName();

      return

      '
    datatype: JavaScript
    key: javascript.code
    sensitive: false
  - read_only: false
    value: '89'
    datatype: Integer
    key: limit
    sensitive: false


HTTP Template Files

To upload HTTP template files, see the entry in the Appliance or Container documentation.

JavaScript Mapping Rules

To upload JavaScript mapping rules, see the entry in the Appliance or Container documentation.

Push Notification Service

Schema Docs
Type: array

Push notification configuration is used to integrate with mobile push notification service. Supports Apple APNS and Android Firebase providers.

No Additional Items

Each item of this array must be:

Type: object

A push notification provider configuration.

Type: string

The application identifier associated with the registration.

Type: enum (of string)

The platform the registration is for.

Must be one of:

  • "apple"
  • "android"

Type: string

The host:port address of the push notification service provider.

Must match regular expression: ^[^:]+:\d+$

Type: string

The key store database containing the APNS certificate. Only valid if 'platform' is 'apple'.

Type: string

The key label of the imported APNS certificate. Only valid if 'platform' is 'apple'.

Type: stringFormat: password

The server key for access to the Firebase push notification service. Only valid if 'platform' is 'android'.

Type: string

The IBM Marketing Cloud issued Oauth client ID.

Type: stringFormat: password

The IBM Marketing Cloud issued Oauth client secret.

Type: stringFormat: password

The IBM Marketing Cloud issued Oauth refresh token.

Type: string

The app key issued by IBM Marketing Cloud for the associated application.


Example:

push_notification_providers:
- platform: android
  app_id: com.ibm.security.verifyapp
  provider: imc
  provider_address: verifypushcreds.mybluemix.net
  imc_app_key: android_app_key
  imc_client_id: android_client_id
  imc_client_secret: android_client_secret
  imc_refresh_token: android_refresh_token
- platform: apple
  app_id: com.ibm.security.verifyapp
  provider: imc
  provider_address: verifypushcreds.mybluemix.net
  imc_app_key: apple_app_key
  imc_client_id: apple_client_id
  imc_client_secret: apple_client_secret
  imc_refresh_token: apple_refresh_token


Mobile Multi-Factor Authentication

Schema Docs
Type: object

Configuration for IBM Verify mobile multi-factor authentication (MMFA) integration. These properties are used as a discovery mechanism for mobile devices which have been registered for a user; and is capable of initiating or completing an "out of band" authentication or authorization challenge.


Example:

mmfa:
  client_id: IBMVerify
  hostname: https://www.myidp.ibm.com
  port: 444
  options: ignoreSslCerts=true
  junction: /mga
  discovery_mechanisms:
  - urn:ibm:security:authentication:asf:mechanism:totp
  - urn:ibm:security:authentication:asf:mechanism:mobile_user_approval:user_presence
  - urn:ibm:security:authentication:asf:mechanism:mobile_user_approval:fingerprint

Type: string

The OAuth client ID required for the MMFA service.

Type: stringFormat: hostname

The hostname of the MMFA endpoint URI. Protocol used will be https. Must be configured if 'endpoints' is not included.

Type: integer

The port of the MMFA endpoint URI. Must be configured if 'endpoints' is not included.

Value must be greater or equal to 1 and lesser or equal to 65535

Type: string

The junction of the MMFA endpoint URI. Must be configured if 'endpoints' is not included.

Must match regular expression: ^/

Type: string

A list of configurable key-value pairs to be presented in the QR code. Recommended formatting: key=value,key=value.

Type: object

An object containing the endpoints returned from the registration QR code or the discovery endpoint. If configured, overwrites 'hostname', 'port', and 'junction' configuration.

Type: stringFormat: uri

The discovery endpoint included in the registration QR code.

Type: stringFormat: uri

The enrollment endpoint returned from the discovery endpoint.

Type: stringFormat: uri

The HOTP shared secret endpoint returned from the discovery endpoint.

Type: stringFormat: uri

The TOTP shared secret endpoint returned from the discovery endpoint.

Type: stringFormat: uri

The QR Code login endpoint returned from the discovery endpoint.

Type: stringFormat: uri

The OAuth token endpoint returned from the discovery endpoint.

Type: stringFormat: uri

The SCIM Transaction endpoint returned from the discovery endpoint.

Type: string

The prefix of the runtime endpoint that is constructed and saved as the requestUrl of a transaction.

Type: array of string

A list of authentication mechanism URIs to be included in the discovery endpoint response.

No Additional Items

Each item of this array must be:

Type: stringFormat: uri


Server Connections

To configure third party Server Connections, see the entry in the Appliance or Container documentation.

Advanced Configuration Parameters

To set Advanced Configuration Properties, see the entry in the Appliance or Container documentation.

SCIM

Schema Docs
Type: object

System for Cross-domain Identity Management (SCIM) configuration. SCIM can be configured with a LDAP or a Verify Identity Access User Registry (WebSEAL runtime component) server connection. SCIM allows administrators to create and manage users, as well as provide attributes to other Verify Identity Access authentication components.


Example:

scim:
  admin_group: SecurityGroup
  schemas:
  - uri: urn:ietf:params:scim:schemas:core:2.0:User
    properties:
      connection_type: ldap
      ldap_connection: Local LDAP connection
      search_suffix: dc=ibm,dc=com
      user_suffix: dc=ibm,dc=com
  attribute_modes:
  - schema: urn:ietf:params:scim:schemas:extension:isam:1.0:MMFA:Transaction
    modes:
    - attribute: transactionsPending
      mode: readwrite
    - attribute: transactionsPending
      subattribute: txnStatus
      mode: readwrite

Type: string

The name of the administrator group. Used to determine if the authenticated user is an administrator.

Type: array

List of managed schema to modify

No Additional Items

Each item of this array must be:

Type: object

SCIM schema configuration.

Type: enum (of string)

Name of schema properties to modify.

Must be one of:

  • "urn:ietf:params:scim:schemas:core:2.0:User"
  • "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
  • "urn:ietf:params:scim:schemas:core:2.0:Group"
  • "urn:ietf:params:scim:schemas:extension:isam:1.0:User"


Schema unique properties to apply. The structure depends on the schema URI.

Type: object

Properties for urn:ietf:params:scim:schemas:core:2.0:User

Type: string

The name of the ldap server connection.

Type: array

The list of ldap object classes that are used to indicate a user object.

No Additional Items

Each item of this array must be:

Type: object

LDAP object class definition.

Type: string

The name of the ldap object class type that is used to indicate a user or group object.

Type: string

The suffix from which searches will commence in the LDAP server.

Type: string

The suffix that will house any users that are created through the SCIM interface.

Type: string Default: "cn"

The LDAP attribute that will be used to construct the user DN. Defaults to cn.

Type: enum (of string) Default: "ldap"

Indicates the type of ldap server connection type.

Must be one of:

  • "ldap"
  • "isamruntime"

Type: string

The name of a federated directory used to generate the list of available ldap object classes and ldap attribute names. Only valid if the connection_type is set to isamruntime.

Type: boolean

Set this field to true if SCIM needs to honour the backend password policy when changing a user password.

Type: string Default: "uid"

The LDAP attribute that will be used as the user ID. Defaults to uid.

Type: array

The list of SCIM attribute mappings.

No Additional Items

Each item of this array must be:

Type: object

Mapping between SCIM attributes and backend attributes.

Type: string

The name of the SCIM attribute being mapped.


For a simple SCIM attribute - the mapping for this attribute. For a complex SCIM attribute this can be an array of mappings.

Type: object

Single mapping for simple SCIM attribute

Type: enum (of string)

The type of attribute to map to the SCIM attribute.

Must be one of:

  • "ldap"
  • "session"
  • "fixed"

Type: string

The attribute to map to the SCIM attribute.

Type: string

For a multivalued attribute - the second level SCIM attribute name to be mapped. eg. work or home for SCIM attribute email.

Type: array

Array of mappings for complex SCIM attribute

No Additional Items

Each item of this array must be:

Type: object

Individual attribute mapping definition.

Same definition as schemas_items_properties_oneOf_i0_mappings_items_mapping_oneOf_i0
Type: object

Properties for urn:ietf:params:scim:schemas:extension:enterprise:2.0:User

Type: array

The list of SCIM enterprise user attribute mappings.

No Additional Items

Each item of this array must be:

Type: object

Mapping between SCIM attributes and backend attributes.

Same definition as schemas_items_properties_oneOf_i0_mappings_items
Type: object

Properties for urn:ietf:params:scim:schemas:core:2.0:Group

Type: array

The list of ldap object classes that are used to indicate a group object.

No Additional Items

Each item of this array must be:

Type: string

The LDAP attribute that will be used to construct the group DN.

Type: object

Properties for urn:ietf:params:scim:schemas:extension:isam:1.0:User

Type: string

The name of the ldap server connection to the Verify Identity Access user registry. If a connection is not specified the SCIM application will not attempt to manage Verify Identity Access users.

Type: string Default: "Default"

The name of the Verify Identity Access domain. This will default to Default

Type: boolean

Enable update of Verify Identity Access specific attributes when LDAP standard attributes are updated.

Type: enum (of string) Default: "ldap"

Indicates the type of ldap server connection ldap or isamruntime.

Must be one of:

  • "ldap"
  • "isamruntime"

Type: string

The name of a federated directory used to generate the list of available ldap object classes and ldap attribute names. Only valid if the connection_type is set to isamruntime.

Type: boolean Default: false

Set this field to true if SCIM needs to honour the backend password policy when changing a user password.

Type: boolean

Whether or not SCIM header authentication is enabled.

Type: boolean

Whether or not the authorization filter is enabled.

Type: array

The customized attribute modes.

No Additional Items

Each item of this array must be:

Type: object

Customized attribute access modes for a SCIM schema.

Type: string

The name of the schema.

Type: array

An array of customised attribute modes for the schema.

No Additional Items

Each item of this array must be:

Type: object

Access mode for a specific attribute.

Type: string

The name of the attribute.

Type: enum (of string)

The mode for the attribute.

Must be one of:

  • "readonly"
  • "writeonly"
  • "readwrite"
  • "adminwrite"
  • "immutable"

Type: string

For a multivalued attribute - the second level SCIM attribute name.

Type: integer

The maximum number of entries that can be returned from a single call to the /User endpoint.

Value must be greater or equal to 1


FIDO2

Schema Docs
Type: object

Configuration for FIDO2/WebAuthn authentication including relying parties, metadata, and mediator JavaScript mapping rules.


Example:

fido2:
  relying_parties:
  - name: fidointerop.securitypoc.com
    rp_id: fidointerop.securitypoc.com
    origins:
    - https://fidointerop.securitypoc.com
    - urn:ibm:security:verify:app:namespace
    use_all_metadata: true
    metadata_soft_fail: false
    metadata_services:
    - https://mds3.fidoalliance.org
    mediator: fido2_mediator_verifysecuritypoc.js
    attestation:
      statement_types:
      - basic
      - self
      - attCA
      - anonCA
      - none
      statement_formats:
      - fido-u2f
      - packed
      - self
      - android-key
      - android-safetynet
      - tpm
      - none
  metadata:
    metadata:
    - fido2/metadata
    metadata_services:
    - url: https://mds.fidoalliance.org
      timeout: 30
      truststore: rt_profile_keys
      jws_truststore: fido_mds_certs

Type: array of string

JavaScript files to upload as FIDO2 mediators.

No Additional Items

Each item of this array must be:

Type: string

Path to JavaScript mediator file.

Type: object

Files to upload as static FIDO2 metadata documents, or URL's to use as dynamic metadata services.

Type: array

List of metadata services to enable for the relying party.

No Additional Items

Each item of this array must be:

Type: object

A FIDO2 metadata service configuration.

Type: stringFormat: uri

Address of the metadata service.

Type: integer Default: 3600

Wait interval (in seconds) before retrying the download when metadata retrieval fails.

Value must be greater or equal to 0

Type: string

The name of the JWS verification truststore.

Type: string

The name of the truststore to use for HTTPS connections and JWS verification.

Type: string

The basic authentication username.

Type: string

The basic authentication password.

Type: string

The client keystore for client certificate authentication.

Type: string

The client key alias for client certificate authentication.

Type: enum (of string)

The SSL protocol to use for the HTTPS connection.

Must be one of:

  • "TLS"
  • "TLSv1"
  • "TLSv1.1"
  • "TLSv1.2"

Type: integer

The request timeout in seconds. A value of 0 will result in no timeout.

Value must be greater or equal to 0

Type: stringFormat: uri

The URL of the proxy server used to connect to the metadata service.

Type: array

A list of HTTP headers to be added to the HTTP request when retrieving the metadata from the service.

No Additional Items

Each item of this array must be:

Type: object

An HTTP header for metadata service requests.

Type: string

The name of the HTTP header.

Type: string

The value of the HTTP header.

Type: array of string

List of metadata documents to enable for the relying party.

No Additional Items

Each item of this array must be:

Type: string

Path to metadata file.

Type: array

List of relying parties to configure.

No Additional Items

Each item of this array must be:

Type: object

A FIDO2 relying party configuration.

Type: string

Name of the relying party.

Type: string

URI of the relying party base domain.

Type: array of string

List of permitted origins. These should be valid sub-domains of the rp_id.

Must contain a minimum of 1 items

No Additional Items

Each item of this array must be:

Type: stringFormat: uri

Type: array of string

List of metadata documents to enable for this relying party.

No Additional Items

Each item of this array must be:

Type: string

Type: array of string

List of metadata services to enable for this relying party. This can be either the Verify Identity Access assigned id of the metadata service, or the URL of the metadata service.

No Additional Items

Each item of this array must be:

Type: string

Type: boolean

Use all available metadata documents for this relying party.

Type: string

Mediator mapping rule to configure for this relying party.

Type: string

Group used to permit admin operations for this relying party.

Type: object

Attestation properties permitted for this relying party.

Type: array of enum (of string)

List of attestation types to permit.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "basic"
  • "self"
  • "attCA"
  • "anonCA"
  • "none"

Type: array of enum (of string)

List of attestation formats to permit.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "fido-u2f"
  • "packed"
  • "self"
  • "android-key"
  • "android-safetynet"
  • "tpm"
  • "none"

Type: array of string

List of COSE algorithm identifiers to permit.

No Additional Items

Each item of this array must be:

Type: string

Type: boolean Default: true

True if all attestation statements in a compound attestation must be valid to successfully register an authenticator.

Type: object

Android attestation specific configuration.

Type: integer

Maximum age of attestation signature.

Value must be greater or equal to 0

Type: integer

Maximum allowed clock skew in signed attestation attributes.

Value must be greater or equal to 0

Type: boolean Default: true

True if the Android SafetyNet CTS Profile Match flag should be enforced.

Type: integer Default: 300

Time period a user has to complete a FIDO2/WebAuthn ceremony.

Value must be greater or equal to 1


Runtime Server Configuration

To set Runtime Server properties, see the entry in the Appliance or Container documentation.