Todos os produtos
Search
Central de documentação

Identity as a Service:Specifications for SAML attribute statement values

Última atualização: Jun 28, 2026

Este tópico descreve as especificações para configurar valores em instruções de atributo SAML e apresenta exemplos de configuração.

Valores de instrução de atributo

Tipo

Valor

Descrição

variável

user.username

Nome de usuário.

user.displayName

Nome de exibição.

user.phone (obsoleto)

Número de celular, sem o código do país (obsoleto).

user.phoneNumber

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

user.email

Endereço de e-mail.

user.status

Status do usuário. Valores válidos:

  • enabled

  • disabled

user.primaryOrganizationalUnitId

ID da unidade organizacional principal do usuário.

ObjectToJsonString(user.organizationalUnits)

Unidades organizacionais às quais o usuário pertence.

Formato: string de array JSON.

ArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ",")

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

Formato: string separada por vírgulas.

ObjectToJsonString(user.groups)

Grupos aos quais a conta pertence.

Formato: string de array JSON.

ArrayJoin(ArrayMap(user.groups, __item.groupId), ",")

IDs dos grupos aos quais a conta pertence.

Formato: string separada por vírgulas.

ArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ",")

IDs externos dos grupos aos quais a conta pertence.

Formato: string separada por vírgulas.

ObjectToJsonString(user.customFields)

Todos os campos personalizados.

Formato: string de array JSON.

user.customFieldMap.$fieldname$.fieldValue

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

appUser.username

Conta do aplicativo.

constante

String fixa. Coloque o valor entre aspas duplas ("").

expressão

Recurso avançado que permite concatenar e transformar valores com flexibilidade.

Para obter mais informações, consulte expressões avançadas de campo de conta.

Exemplos de expressões SAML

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"
        }
    ],
  ...
}

Exemplo de configuração no console SAML

Na página de configuração do aplicativo SAML, em Signing Algorithm, selecione SHA256 (somente RSA-SHA256 é compatível). Na seção Attribute Statements, configure os seguintes mapeamentos de atributos: organizationalUnitsObjectToJsonString(user.organizationalUnits), organizationalUnitIdsArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ","), groupsObjectToJsonString(user.groups), groupIdsArrayJoin(ArrayMap(user.groups, __item.groupId), ","), groupExternalIdsArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ","), groupIdArraySamlArray(ArrayMap(user.groups, __item.groupId)), customFieldsObjectToJsonString(user.customFields) e ageuser.customFieldMap.age.fieldValue. Essa configuração inclui campos adicionais de usuário na resposta SAML para análise pelo aplicativo. Em SSO initiator, selecione Support portal and application initiated. Assim, os usuários podem iniciar o SSO tanto pela página do portal Alibaba Cloud IDaaS quanto pelo aplicativo.

Exemplos de asserções SAML resultantes

  1. A expressão ObjectToJsonString(user.organizationalUnits) gera a seguinte asserção SAML:

    <saml2:Attribute Name="organizationalUnits" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        [{"organizationalUnitId":"ou_sdfadtaaxxxxxx","organizationalUnitName":"AD","primary":false},{"organizationalUnitId":"ou_werttxxxxxx","organizationalUnitName":"name_002","primary":true}]
      </saml2:AttributeValue>
    </saml2:Attribute>
  2. A expressão ArrayJoin(ArrayMap(user.organizationalUnits, __item.organizationalUnitId), ",") gera a seguinte asserção SAML:

    <saml2:Attribute Name="organizationalUnitIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        ou_sdfadtaaxxxxxx,ou_werttxxxxxx
      </saml2:AttributeValue>
    </saml2:Attribute>
  3. A expressão ObjectToJsonString(user.groups) gera a seguinte asserção SAML:

    <saml2:Attribute Name="groups" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        [{"groupId":"group_jp6al4sn4n4wjgjxxxxxx","groupName":"group1","groupExternalId":"group_jp6al4sn4n4wjgjxxxxxx"},{"groupId":"group_vavikcxewkf5h3oxxxxxx","groupName":"group2","groupExternalId":"group_vavikcxewkf5h3oxxxxxx"}]
      </saml2:AttributeValue>
    </saml2:Attribute>
  4. A expressão ArrayJoin(ArrayMap(user.groups, __item.groupId), ",") gera a seguinte asserção SAML:

    <saml2:Attribute Name="groupIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        group_jp6al4sn4n4wjgjxxxxxx,group_vavikcxewkf5h3oxxxxxx
      </saml2:AttributeValue>
    </saml2:Attribute>
  5. A expressão ArrayJoin(ArrayMap(user.groups, __item.groupExternalId), ",") gera a seguinte asserção SAML:

    <saml2:Attribute Name="groupExternalIds" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        group_jp6al4sn4n4wjgjxxxxxx,group_vavikcxewkf5h3oxxxxxx
      </saml2:AttributeValue>
    </saml2:Attribute>
  6. A expressão SamlArray(ArrayMap(user.groups, __item.groupId)) gera a seguinte asserção SAML:

    <saml2:Attribute Name="groupIdArray" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:type="xsd:string">
        group_jp6al4sn4n4wjgjxxxxxx
      </saml2:AttributeValue>
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        group_vavikcxewkf5h3oxxxxxx
      </saml2:AttributeValue>
    </saml2:Attribute>
  7. A expressão ObjectToJsonString(user.customFields) gera a seguinte asserção SAML:

    <saml2:Attribute Name="customFields" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:type="xsd:string">
        [{"fieldName":"place","fieldValue":"beijing"},{"fieldName":"age","fieldValue":"18"}]
      </saml2:AttributeValue>
    </saml2:Attribute>
  8. A expressão user.customFieldMap.age.fieldValue gera a seguinte asserção SAML:

    <saml2:Attribute Name="age" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
      <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">
        18
      </saml2:AttributeValue>
    </saml2:Attribute>