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:
|
|
|
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 |
|
|
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.
-
A expressão
user.organizationalUnitsretorna:[ { "organizationalUnitId": "ou_sdfadtaaxxxxxx", "organizationalUnitName": "AD", "primary": false }, { "organizationalUnitId": "ou_werttxxxxxx", "organizationalUnitName": "name_002", "primary": true } ] -
A expressão
ArrayMap(user.organizationalUnits, __item.organizationalUnitId)retorna:[ "ou_sdfadtaaxxxxxx", "ou_werttxxxxxx" ] -
A expressão
user.groupsretorna:[ { "groupId": "group_jp6al4sn4n4wjgjxxxxxx", "groupName": "group1", "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx" }, { "groupId": "group_vavikcxewkf5h3oxxxxxx", "groupName": "group2", "groupExternalId": "group_vavikcxewkf5h3oxxxxxx" } ] -
A expressão
ArrayMap(user.groups, __item.groupId)retorna:[ "group_jp6al4sn4n4wjgjxxxxxx", "group_vavikcxewkf5h3oxxxxxx" ] -
A expressão
ArrayMap(user.groups, __item.groupExternalId)retorna:[ "group_jp6al4sn4n4wjgjxxxxxx", "group_vavikcxewkf5h3oxxxxxx" ] -
A expressão
user.customFieldsretorna:[ { "fieldName": "place", "fieldValue": "beijing" }, { "fieldName": "age", "fieldValue": "18" } ] -
A expressão
user.customFieldMap.age.fieldValueretorna:18
Regras para reescrita de campos personalizados do id_token
Regras para campos padrão
Os campos padrão do sistema não podem ser reescritos:
exp,nbf,iat,iss,jti,at_hash,c_hash,nonce,sid.O campo
subpode 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 |
|
|
|
O |
|
|
|
O |
|
|
|
O |
|
|
|
O |
Recomendações de configuração
Selecione os scopes com cuidado na configuração da aplicação. Os scopes solicitados determinam quais campos de usuário permitem reescrita.
Para reescrever um campo específico, não solicite o
scopeassociado ou verifique se o atributo correspondente do usuário está vazio.