Share via


Tipo de política de mapeamento de declarações

Um objeto de política representa um conjunto de regras empregadas em aplicativos individuais ou em todos os aplicativos de uma organização. Cada tipo de política tem uma estrutura exclusiva, com um conjunto de propriedades que são aplicadas aos objetos aos quais elas são atribuídas.

Uma política de mapeamento de declarações é um tipo de objeto de política que modifica as declarações incluídas em tokens. Para obter mais informações, consulte Personalizar declarações emitidas no token SAML para aplicativos empresariais.

Conjuntos de declarações

A tabela a seguir lista os conjuntos de declarações que definem como e quando são usadas em tokens.

Conjunto de declarações Descrição
Conjunto de declarações de núcleo Estão presentes em todos os tokens, independentemente da política. Essas declarações também são consideradas restritas e não podem ser modificadas.
Conjunto de declarações básicas Inclui as declarações que são emitidas por padrão para os tokens, além do conjunto de declarações principais. Você pode omitir ou modificar as declarações básicas usando as políticas de mapeamento de declarações.
Conjunto de declarações restritas Não pode ser modificado por meio de política. A fonte de dados não pode ser alterada e nenhuma transformação é aplicada ao gerar essas declarações.

conjunto de declarações restritas do JWT (Token Web JSON)

As declarações a seguir estão no conjunto de declarações restritas para um JWT.

  • .
  • _claim_names
  • _claim_sources
  • aai
  • access_token
  • account_type
  • acct
  • acr
  • acrs
  • actor
  • actortoken
  • ageGroup
  • aio
  • altsecid
  • amr
  • app_chain
  • app_displayname
  • app_res
  • appctx
  • appctxsender
  • appid
  • appidacr
  • assertion
  • at_hash
  • aud
  • auth_data
  • auth_time
  • authorization_code
  • azp
  • azpacr
  • bk_claim
  • bk_enclave
  • bk_pub
  • brk_client_id
  • brk_redirect_uri
  • c_hash
  • ca_enf
  • ca_policy_result
  • capolids
  • capolids_latebind
  • cc
  • cert_token_use
  • child_client_id
  • child_redirect_uri
  • client_id
  • client_ip
  • cloud_graph_host_name
  • cloud_instance_host_name
  • cloud_instance_name
  • CloudAssignedMdmId
  • cnf
  • code
  • controls
  • controls_auds
  • credential_keys
  • csr
  • csr_type
  • ctry
  • deviceid
  • dns_names
  • domain_dns_name
  • domain_netbios_name
  • e_exp
  • email
  • endpoint
  • enfpolids
  • exp
  • expires_on
  • extn. as prefix
  • fido_auth_data
  • fido_ver
  • fwd
  • fwd_appidacr
  • grant_type
  • graph
  • group_sids
  • groups
  • hasgroups
  • hash_alg
  • haswids
  • home_oid
  • home_puid
  • home_tid
  • iat
  • identityprovider
  • idp
  • idtyp
  • in_corp
  • instance
  • inviteTicket
  • ipaddr
  • isbrowserhostedapp
  • iss
  • isViral
  • jwk
  • key_id
  • key_type
  • login_hint
  • mam_compliance_url
  • mam_enrollment_url
  • mam_terms_of_use_url
  • mdm_compliance_url
  • mdm_enrollment_url
  • mdm_terms_of_use_url
  • msgraph_host
  • msproxy
  • nameid
  • nbf
  • netbios_name
  • nickname
  • nonce
  • oid
  • on_prem_id
  • onprem_sam_account_name
  • onprem_sid
  • openid2_id
  • origin_header
  • password
  • platf
  • polids
  • pop_jwk
  • preferred_username
  • previous_refresh_token
  • primary_sid
  • prov_data
  • puid
  • pwd_exp
  • pwd_url
  • rdp_bt
  • redirect_uri
  • refresh_token
  • refresh_token_issued_on
  • refreshtoken
  • request_nonce
  • resource
  • rh
  • role
  • roles
  • rp_id
  • rt_type
  • scope
  • scp
  • secaud
  • sid
  • sid
  • signature
  • signin_state
  • source_anchor
  • src1
  • src2
  • sub
  • target_deviceid
  • tbid
  • tbidv2
  • tenant_ctry
  • tenant_display_name
  • tenant_id
  • tenant_region_scope
  • tenant_region_sub_scope
  • thumbnail_photo
  • tid
  • tokenAutologonEnabled
  • trustedfordelegation
  • ttr
  • unique_name
  • upn
  • user_agent
  • user_setting_sync_url
  • username
  • uti
  • ver
  • verified_primary_email
  • verified_secondary_email
  • vnet
  • vsm_binding_key
  • wamcompat_client_info
  • wamcompat_id_token
  • wamcompat_scopes
  • wids
  • win_ver
  • x5c_ca
  • xcb2b_rclient
  • xcb2b_rcloud
  • xcb2b_rtenant
  • ztdid

Observação

Qualquer declaração que comece com xms_ é restrita.

conjunto de declarações restritas do SAML

A tabela a seguir lista as declarações SAML que estão no conjunto de declarações restritas.

URI (tipo de declaração restrita):

  • http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged
  • http://schemas.microsoft.com/2014/02/devicecontext/claims/isknown
  • http://schemas.microsoft.com/2014/03/psso
  • http://schemas.microsoft.com/2014/09/devicecontext/claims/iscompliant
  • http://schemas.microsoft.com/claims/authnmethodsreferences
  • http://schemas.microsoft.com/claims/groups.link
  • http://schemas.microsoft.com/identity/claims/accesstoken
  • http://schemas.microsoft.com/identity/claims/acct
  • http://schemas.microsoft.com/identity/claims/agegroup
  • http://schemas.microsoft.com/identity/claims/aio
  • http://schemas.microsoft.com/identity/claims/identityprovider
  • http://schemas.microsoft.com/identity/claims/objectidentifier
  • http://schemas.microsoft.com/identity/claims/openid2_id
  • http://schemas.microsoft.com/identity/claims/puid
  • http://schemas.microsoft.com/identity/claims/scope
  • http://schemas.microsoft.com/identity/claims/tenantid
  • http://schemas.microsoft.com/identity/claims/xms_et
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/confirmationkey
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlywindowsdevicegroup
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/expired
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/ispersistent
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/samlissuername
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/wids
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdeviceclaim
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdevicegroup
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsfqbnversion
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowssubauthority
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsuserclaim
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
  • http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor

Essas declarações são restritas por padrão, mas não são restritas se você tiver uma chave de assinatura personalizada. Evite configurar acceptMappedClaims no manifesto do aplicativo.

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname

Essas declarações são restritas por padrão, mas não serão restritas se você tiver uma chave de assinatura personalizada:

  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role

Propriedades da política de mapeamento de declarações

Para controlar quais declarações são emitidas e o local em que os dados são originados, use as propriedades de uma política de mapeamento de declarações. Sem uma política, o sistema emite tokens com as seguintes declarações:

  • Conjunto de declarações de núcleo.
  • Conjunto de declarações básicas.
  • Quaisquer declarações opcionais que o aplicativo tenha escolhido receber.

Observação

As declarações no conjunto de declarações de núcleo estão presentes em todos os tokens, independentemente de como essa propriedade estiver definida.

String Tipo de dados Resumo
IncludeBasicClaimSet booliano (true ou false) Determina se o conjunto de declarações básicas está incluído nos tokens afetados por essa política. Se definido como True, todas as declarações no conjunto de declarações básicas serão emitidas nos tokens afetados pela política. Se definido como Falso, as declarações no conjunto de declarações básico não estarão nos tokens, a menos que sejam adicionadas individualmente na propriedade de esquema de declarações da mesma política.
ClaimsSchema blob JSON com uma ou mais entradas de esquema de declaração Define quais declarações estão presentes nos tokens afetados pela política, além do conjunto de declarações básicas e do conjunto de declarações principais. Para cada entrada de esquema de declaração definida nesta propriedade, certas informações são necessárias. Especifique o local em que os dados são originados (Valor, Par Origem/ID ou Par Origem/ExtensionID) e o Tipo de Declaração em que os dados são emitidos como(JWTClaimType ou SamlClaimType).

Elementos de entrada do esquema de declaração

  • Valor: define um valor estático como os dados a serem emitidos na declaração.
  • SAMLNameForm: define o valor do atributo NameFormat para essa declaração. Se presente, os valores permitidos serão:
    • urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
    • urn:oasis:names:tc:SAML:2.0:attrname-format:uri
    • urn:oasis:names:tc:SAML:2.0:attrname-format:basic
  • Par de Origem/ID: define de onde os dados na declaração são provenientes.
  • Par Origem/ExtensionID: definem o atributo de extensão de diretório em que os dados na declaração são originados. Para saber mais, confira Usar atributos de extensão de diretório em declarações.
  • Tipo de declaração: os elementos JwtClaimType e SamlClaimType definem a quais declarações essa entrada de esquema de declaração se refere.
    • O JwtClaimType deve conter o nome da declaração a ser emitida em JWTs.
    • O SamlClaimType deve conter o URI da declaração a ser emitida em tokens SAML.

Defina o elemento Origem para um dos valores na tabela a seguir.

Valor de origem Dados na declaração
user Propriedade no objeto User.
application Propriedade na entidade de serviço do aplicativo (cliente).
resource Propriedade na entidade de serviço do recurso.
audience os dados na declaração são uma propriedade da entidade de serviço que é o público-alvo do token (o cliente ou a entidade de serviço do recurso).
company Propriedade no objeto Company do locatário do recurso.
transformation Transformação de declarações. Quando você usa essa declaração, o elemento TransformationID deve ser incluído na definição de declaração. O elemento TransformationID deve corresponder ao elemento de ID da entrada de transformação na propriedade ClaimsTransformation que define como os dados dessa declaração são gerados.

O elemento ID identifica qual propriedade na origem fornece o valor da declaração. A tabela a seguir lista os valores de ID válida para cada valor de Origem.

Fonte ID Descrição
user surname O nome da família do usuário.
user givenname O nome fornecido do usuário.
user displayname O nome para exibição do usuário.
user objectid A ID do objeto do usuário.
user mail O endereço de email do usuário.
user userprincipalname O nome UPN do usuário.
user department O departamento do usuário.
user onpremisessamaccountname O nome da conta SAM local do usuário.
user netbiosname O nome NetBios do usuário.
user dnsdomainname O nome de domínio DNS do usuário.
user onpremisesecurityidentifier O identificador de segurança local da conta de usuário.
user companyname O nome da organização do usuário.
user streetaddress O endereço do usuário.
user postalcode O código postal do usuário.
user preferredlanguage O idioma preferencial do usuário.
user onpremisesuserprincipalname O UPN local do usuário. Quando você usa uma ID alternativa, o atributo userPrincipalName local é sincronizado com o atributoonPremisesUserPrincipalName. Esse atributo só ficará disponível quando a ID Alternativa for configurada.
user mailnickname O apelido de email do usuário.
user extensionattribute1 Atributo de extensão 1.
user extensionattribute2 Atributo de extensão 2.
user extensionattribute3 Atributo de extensão 3.
user extensionattribute4 Atributo de extensão 4.
user extensionattribute5 Atributo de extensão 5.
user extensionattribute6 Atributo de extensão 6.
user extensionattribute7 Atributo de extensão 7.
user extensionattribute8 Atributo de extensão 8.
user extensionattribute9 Atributo de extensão 9.
user extensionattribute10 Atributo de extensão 10.
user extensionattribute11 Atributo de extensão 11.
user extensionattribute12 Atributo de extensão 12.
user extensionattribute13 Atributo de extensão 13.
user extensionattribute14 Atributo de extensão 14.
user extensionattribute15 Atributo de extensão 15.
user othermail O outro email do usuário.
user country O país/região do usuário.
user city A cidade do usuário.
user state O estado do usuário.
user jobtitle O cargo do usuário.
user employeeid A ID de funcionário do usuário.
user facsimiletelephonenumber O número de telefone fac-símile do usuário.
user assignedroles A lista de funções de aplicativo atribuídas ao usuário.
user accountEnabled Indica se a conta está habilitada.
user consentprovidedforminor Indica se o consentimento foi fornecido para um menor.
user createddatetime Data e hora em que a conta do usuário foi criada.
user creationtype Tipo de criação: indica como a conta de usuário foi criada.
user lastpasswordchangedatetime A última data e hora em que a senha foi alterada.
user mobilephone O telefone celular do usuário.
user officelocation O local do escritório do usuário.
user onpremisesdomainname O nome de domínio local do usuário.
user onpremisesimmutableid A ID imutável local do usuário.
user onpremisessyncenabled Indica se a sincronização local está habilitada.
user preferreddatalocation Define o local de dados preferencial do usuário.
user proxyaddresses Os endereços de proxy do usuário.
user usertype O tipo de conta do usuário.
user telephonenumber Os telefones comerciais ou de escritório do usuário.
application, resource, audience displayname O nome para exibição do objeto.
application, resource, audience objectid A ID do objeto.
application, resource, audience tags A marca da entidade de serviço do objeto .
company tenantcountry O país/região do locatário.

Atualmente, as únicas fontes de declaração de valores múltiplos disponíveis em um objeto de usuário são os atributos de extensão com vários valores que foram sincronizados do Active Directory Connect. Outras propriedades, comoothermails e tags, têm valores múltiplos, mas apenas um valor é emitido quando selecionado como uma origem.

Nomes e URIs de declarações no conjunto de declaração restritas não podem ser usados para os elementos de tipo de declaração.

Filtro de grupo

  • Cadeia de caracteres: GroupFilter
  • Tipo de dados:: blob JSON
  • Resumo: use esta propriedade para aplicar um filtro nos grupos de usuários a serem incluídos na declaração de grupo. Isso pode ser um meio útil de reduzir o tamanho do token.
  • MatchOn: - identifica o atributo do grupo no qual aplicar o filtro. Defina a propriedade MatchOn com um dos seguintes valores:
    • displayname: o nome de exibição do grupo.
    • samaccountname: nome da conta SAM local.
  • Tipo: define o tipo de filtro aplicado ao atributo selecionado pela propriedade MatchOn. Defina a propriedade Type com um dos seguintes valores:
    • prefix: inclui grupos em que a propriedade MatchOn começa com a propriedade Valor fornecida.
    • suffix: inclui grupos em que a propriedade MatchOn termina com a propriedade Valor fornecida.
    • contains: inclui grupos em que a propriedade MatchOn contém com a propriedade Valor fornecida.

Transformação de declarações

  • Cadeia de caracteres: ClaimsTransformation
  • Tipo de dados: blob JSON com uma ou mais entradas de transformação
  • Resumo: use essa propriedade para aplicar transformações comuns a dados de origem para gerar os dados de saída para declarações especificadas no esquema de declarações.
  • ID: faz referência a essa entrada de transformação na entrada de esquema de declarações TransformationID. Esse valor deve ser exclusivo para cada entrada de transformação nesta política.
  • TransformationMethod: identifica a operação executada para gerar os dados para a declaração.

Com base no método escolhido, um conjunto de entradas e saídas é esperado. Defina as entradas e as saídas usando os elementos InputClaims, InputParameters e OutputClaims.

TransformationMethod Entrada esperada Saída esperada Descrição
Join cadeia1, cadeia2, separador declaração de saída: Une cadeias de entrada usando um separador entre elas. Por exempolo, string1:foo@bar.com , string2:sandbox , separador:. resulta na declaração de saída:foo@bar.com.sandbox.
ExtractMailPrefix Email ou UPN cadeia de caracteres extraída Atributos de extensão 1 a 15 ou quaisquer outras extensões de diretório, que armazenam um valor de endereço de email ou UPN para o usuário. Por exemplo, johndoe@contoso.com. Extrai a parte local do endereço de email. Por exemplo: email: foo@bar.com resulta na declaração de saída:foo. Se não houver nenhum sinal de @ presente, a cadeia de caracteres de entrada original será retornada.
ToLowercase() string cadeia de caracteres de saída Converte os caracteres do atributo selecionado em caracteres minúsculos.
ToUppercase() string cadeia de caracteres de saída Converte os caracteres do atributo selecionado em caracteres maiúsculos.
RegexReplace() A transformação RegexReplace() aceita como parâmetros de entrada:
- Parâmetro 1: um atributo de usuário como entrada regex
- Uma opção para confiar na fonte como múltiplos valores
- Padrão Regex
- Padrão de substituição. O padrão de substituição pode conter formato de texto estático, juntamente com uma referência que aponte para grupos de saída regex e mais parâmetros de entrada.
  • InputClaims: usado para passar os dados de uma entrada de esquema de declaração para uma transformação. Ele tem três atributos: ClaimTypeReferenceId, TransformationClaimType e TreatAsMultiValue.
    • ClaimTypeReferenceId: é unido ao elemento de ID da entrada de esquema de declaração para encontrar a declaração de entrada apropriada.
    • TransformationClaimType é usado para fornecer um nome exclusivo a essa entrada. Esse nome deve corresponder a uma das entradas esperadas para o método de transformação.
    • TreatAsMultiValue é um sinalizador booliano que indica se a transformação deve ser aplicada a todos os valores ou apenas ao primeiro. Por padrão, as transformações são aplicadas apenas ao primeiro elemento em uma declaração de vários valores. Definir esse valor como true garante que ele seja aplicado a todos. ProxyAddresses e grupos são dois exemplos de declarações de entrada que você deveria tratar como diversos valores.
  • InputParameters: passa um valor constante para uma transformação. Ele tem dois atributos: Value e ID.
    • Value é o valor constante real a ser passado.
    • O elemento ID é usado para fornecer um nome exclusivo a essa entrada. O nome deve corresponder a uma das entradas esperadas para o método de transformação.
  • OutputClaims: retém os dados gerados por uma transformação e a associa a uma entrada de esquema de declaração. Ele tem dois atributos: ClaimTypeReferenceId e TransformationClaimType.
    • ClaimTypeReferenceId é unido à ID da entrada de esquema de declaração para encontrar a declaração de saída apropriada.
    • TransformationClaimType é usado para fornecer um nome exclusivo à saída. O nome deve corresponder a uma das saídas esperadas para o método de transformação.

Exceções e restrições

NameID e UPN SAML: os atributos dos quais você obtém os valores de NameID e UPN, bem como as transformações de declarações que são permitidas, são limitados.

Fonte ID Descrição
user mail O endereço de email do usuário.
user userprincipalname O nome UPN do usuário.
user onpremisessamaccountname Nome da conta SAM local
user employeeid A ID de funcionário do usuário.
user telephonenumber Os telefones comerciais ou de escritório do usuário.
user extensionattribute1 Atributo de extensão 1.
user extensionattribute2 Atributo de extensão 2.
user extensionattribute3 Atributo de extensão 3.
user extensionattribute4 Atributo de extensão 4.
user extensionattribute5 Atributo de extensão 5.
user extensionattribute6 Atributo de extensão 6.
user extensionattribute7 Atributo de extensão 7.
user extensionattribute8 Atributo de extensão 8.
user extensionattribute9 Atributo de extensão 9.
user extensionattribute10 Atributo de extensão 10.
user extensionattribute11 Atributo de extensão 11.
user extensionattribute12 Atributo de extensão 12.
user extensionattribute13 Atributo de extensão 13.
user extensionattribute14 Atributo de extensão 14.
User extensionattribute15 Atributo de extensão 15.

Os métodos de transformação listados na tabela a seguir são permitidos para NameID SAML.

TransformationMethod Restrições
ExtractMailPrefix Nenhum
Join O sufixo que está sendo acrescentado deve ser um domínio verificado do locatário do recurso.

Emissor com ID do aplicativo

  • Cadeia de caracteres: issuerWithApplicationId
  • Tipo de dados: booliano (True ou False)
    • Se definida como True, a ID do aplicativo será adicionada à declaração do emissor em tokens afetados pela política.
    • Se definida como False, a ID do aplicativo não será adicionado à declaração do emissor em tokens afetados pela política. (padrão)
  • Resumo: permite que a ID do aplicativo seja incluída na declaração do emissor. Garante que diversas instâncias do mesmo aplicativo tenham um valor de declaração exclusivo para cada instância. Essa configuração será ignorada se não houver uma chave de assinatura personalizada configurada para o aplicativo.

Substituição de público

  • Cadeia de caracteres: audienceOverride
  • Tipo de dados: cadeia de caracteres
  • Resumo: permite que você substitua a declaração de audiência enviada ao aplicativo. O valor fornecido deve ser um URI absoluto válido. Essa configuração será ignorada se nenhuma chave de assinatura personalizada estiver configurada para o aplicativo.

Próximas etapas