Todos os produtos
Search
Central de documentação

Identity as a Service:OIDC id_token custom field configuration

Última atualização: Jun 28, 2026

Este documento descreve como adicionar campos personalizados a um id_token OIDC e apresenta exemplos de configuração.

Regras para campos personalizados do id_token

Tipo

Valor

Descrição

variable

user.username

Nome de usuário.

user.displayName

Nome de exibição.

user.phone (deprecated)

Número de telefone sem o código do país. Esta variável foi descontinuada.

user.phoneNumber

Número de telefone sem o código do país.

user.email

E-mail do usuário.

user.status

Status do usuário. Valores válidos:

  • enabled: Usuário ativado.

  • disabled: Usuário desativado.

user.primaryOrganizationalUnitId

ID da unidade organizacional principal do usuário.

user.organizationalUnits

Unidades organizacionais às quais o usuário pertence.

ArrayMap(user.organizationalUnits, __item.organizationalUnitId)

IDs das unidades organizacionais às quais o usuário pertence.

Formato: array JSON.

user.groups

Grupos aos quais a conta de usuário pertence.

Formato: array JSON.

ArrayMap(user.groups, __item.groupId)

IDs de grupo do usuário.

Formato: array JSON.

ArrayMap(user.groups, __item.groupExternalId)

IDs externos de grupo do usuário.

Formato: array JSON.

user.customFields

Campos personalizados do usuário.

Formato: array JSON.

user.customFieldMap.$fieldname$.fieldValue

Valor de um campo personalizado específico. Substitua $fieldname$ pelo nome do campo personalizado.

constant

Valor de string fixo. Coloque a constante entre aspas duplas ("").

expression

Recurso avançado para concatenar ou transformar valores.

Para obter mais informações, consulte Expressões avançadas de campos de conta.

Exemplo de objeto de usuário:

{
  ...
  "customFieldMap": {
        "place": {
            "fieldName": "place",
            "fieldValue": "beijing"
        },
        "age": {
            "fieldName": "age",
            "fieldValue": "18"
        }
    },
    "identityProviderUserMap": {
        "idp_m2gngriuenktdkxxxxxx": {
            "identityProviderId": "idp_m2gngriuenktdkxxxxxx",
            "identityProviderType": "ding_talk",
            "identityProviderExternalId": "corp_1234xxxxxxx",
            "identityProviderUserId": "b2ed5fc0xxxxx"
        }
    },
    "organizationalUnits": [
        {
            "organizationalUnitId": "ou_sdfadtaaxxxxxx",
            "organizationalUnitName": "AD",
            "primary": false
        },
        {
            "organizationalUnitId": "ou_werttxxxxxx",
            "organizationalUnitName": "name_002",
            "primary": true
        }
    ],
    "primaryOrganizationalUnitId": "ou_werttxxxxxx",
    "customFields": [
        {
            "fieldName": "place",
            "fieldValue": "beijing"
        },
        {
            "fieldName": "age",
            "fieldValue": "18"
        }
    ],
    "groups": [
        {
            "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
            "groupName": "group1",
            "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
        },
        {
            "groupId": "group_vavikcxewkf5h3oxxxxxx",
            "groupName": "group2",
            "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
        }
    ],
  ...
}

Exemplos de expressões OIDC

Na página application do IDaaS, clique em Hide advanced configuration para expandir a área de configuração avançada. Na seção Extend id_token, adicione os nomes dos campos personalizados e as respectivas expressões à tabela de mapeamento.

  1. A expressão user.organizationalUnits retorna:

    [
      {
        "organizationalUnitId": "ou_sdfadtaaxxxxxx",
        "organizationalUnitName": "AD",
        "primary": false
      },
      {
        "organizationalUnitId": "ou_werttxxxxxx",
        "organizationalUnitName": "name_002",
        "primary": true
      }
    ]
  2. A expressão ArrayMap(user.organizationalUnits, __item.organizationalUnitId) retorna:

    [
      "ou_sdfadtaaxxxxxx",
      "ou_werttxxxxxx"
    ]
  3. A expressão user.groups retorna:

    [
      {
        "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
        "groupName": "group1",
        "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
      },
      {
        "groupId": "group_vavikcxewkf5h3oxxxxxx",
        "groupName": "group2",
        "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
      }
    ]
  4. A expressão ArrayMap(user.groups, __item.groupId) retorna:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  5. A expressão ArrayMap(user.groups, __item.groupExternalId) retorna:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  6. A expressão user.customFields retorna:

    [
        {
          "fieldName": "place",
          "fieldValue": "beijing"
        },
        {
          "fieldName": "age",
          "fieldValue": "18"
        }
    ]
  7. A expressão user.customFieldMap.age.fieldValue retorna:

    18

Regras para reescrita de campos personalizados do id_token

Regras para campos padrão

  1. Os campos padrão do sistema não podem ser reescritos: exp, nbf, iat, iss, jti, at_hash, c_hash, nonce, sid.

  2. O campo sub pode ser reescrito.

Regras para campos de informações do usuário

A reescrita dos seguintes campos de informações do usuário no id_token depende do scope solicitado.

Nome do campo

Scope associado

Condição de não reescrita

email, email_verified

email

O scope solicitado inclui email e o atributo de e-mail do usuário não está vazio.

phone_number, phone_number_verified

phone

O scope solicitado inclui phone e o atributo phoneNumber do usuário não está vazio.

name, preferred_username, updated_at, locale

profile

O scope solicitado inclui profile.

instance_id, application_id

instance

O scope solicitado inclui instance.

Recomendações de configuração

  1. Selecione os scopes com cuidado na configuração da aplicação. Os scopes solicitados determinam quais campos de usuário permitem reescrita.

  2. Para reescrever um campo específico, não solicite o scope associado ou verifique se o atributo correspondente do usuário está vazio.