Partilhar via


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

Um objeto de política representa um conjunto de regras impostas em aplicativos individuais ou em todos os aplicativos em 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 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 corporativos.

Conjuntos de afirmações

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

Conjunto de reclamações Description
Conjunto de declarações principal Presente em todos os tokens, independentemente da política. Essas reivindicações também são consideradas restritas e não podem ser modificadas.
Conjunto básico de declarações Inclui as declarações que são incluídas por padrão para tokens, além do conjunto de declarações principal. Você pode omitir ou modificar declarações básicas usando as políticas de mapeamento de declarações.
Conjunto de declarações restrito Não pode ser modificado usando uma política. A origem de dados não pode ser alterada e não é aplicada nenhuma transformação ao gerar estas afirmações.

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

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

Nota

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

Conjunto de declarações restritas SAML

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

Tipo de declaração restrita (URI):

  • 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 a configuração 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 sã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 as declarações incluídas e de onde vêm os dados, 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:

  • O conjunto de reivindicações principais.
  • O conjunto de reivindicações básicas.
  • Quaisquer reivindicações opcionais que o pedido tenha optado por receber.

Nota

As declarações no conjunto de declarações principal estão presentes em todos os tokens, independentemente de qual propriedade está definida.

String Tipo de dados Resumo
IncludeBasicClaimSet Booleano (Verdadeiro ou Falso) Determina se o conjunto de declarações básicas está incluído nos tokens afetados por esta política. Se definido como True, todas as declarações no conjunto de declarações básicas são emitidas em tokens afetados pela política. Se definido como False, as declarações no conjunto de declarações básico não estão nos tokens, a menos que sejam adicionadas individualmente na propriedade do 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, determinadas informações são necessárias. Especifique de onde os dados estão vindo (Value, Source/ID pair ou Source/ExtensionID pair) e Claim Type, que é emitido 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 para o atributo NameFormat para esta declaração. Se presentes, os valores permitidos sã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 origem/ID - Define de onde os dados na declaração são originados.
  • Par Source/ExtensionID - Define o atributo de extensão de diretório de onde os dados na declaração são originados. Para obter mais informações, consulte Usando atributos de extensão de diretório em declarações.
  • Tipo de declaração - Os elementos JwtClaimType e SamlClaimType definem a qual declaração 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 Source como um dos valores na tabela a seguir.

Valor de origem Dados na reivindicação
user Propriedade no objeto User.
application Propriedade na entidade de serviço do aplicativo (cliente).
resource Propriedade na entidade de serviço de recurso.
audience Propriedade na entidade de serviço que é a audiência do token (o cliente ou a entidade de serviço de recurso).
company Propriedade no objeto Company do locatário do recurso.
transformation Transformação de sinistros. 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 ID da entrada de transformação na propriedade ClaimsTransformation que define como os dados da declaração são gerados.

O elemento ID identifica a propriedade na origem que fornece o valor para a declaração. A tabela a seguir lista os valores do elemento ID para cada valor de Source.

Source ID Description
user surname O nome de família do usuário.
user givenname O nome dado do utilizador.
user displayname O nome para exibição do usuário.
user objectid O ID do objeto do usuário.
user mail O endereço de e-mail do utilizador.
user userprincipalname O nome principal do usuário do usuário.
user department O departamento do utilizador.
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 do 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 utilizador.
user preferredlanguage O idioma preferido do usuário.
user onpremisesuserprincipalname O UPN local do usuário. Quando você usa uma ID alternativa, o atributo userPrincipalName local é sincronizado com o onPremisesUserPrincipalName atributo. Este atributo só está disponível quando a ID alternativa está configurada.
user mailnickname O apelido de e-mail 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 e-mail do usuário.
user country O país/região do utilizador.
user city A cidade do usuário.
user state O estado do utilizador.
user jobtitle O cargo do usuário.
user employeeid O ID do funcionário do usuário.
user facsimiletelephonenumber O número de telefone fac-símile do utilizador.
user assignedroles A lista de funções do aplicativo atribuídas ao usuário.
user accountEnabled Indica se a conta de usuário está habilitada.
user consentprovidedforminor Indica se o consentimento foi dado a um menor.
user createddatetime A data e a hora em que a conta de usuário foi criada.
user creationtype 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 telemóvel do utilizador.
user officelocation A localização 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 preferido do usuário.
user proxyaddresses Os endereços proxy do usuário.
user usertype O tipo de conta de 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 tag principal de serviço do objeto.
company tenantcountry O país/região do inquilino.

As únicas fontes de declaração de vários valores disponíveis em um objeto de usuário são atributos de extensão de vários valores que foram sincronizados do Ative Directory Connect. Outras propriedades, como e tags, são multivaloradas, mas apenas um valor é emitido quando selecionado como othermails fonte.

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

Filtro de Grupo

  • String - GroupFilter
  • Tipo de dados: - JSON blob
  • Resumo - Use essa propriedade para aplicar um filtro nos grupos de usuários a serem incluídos na declaração de grupo. Essa propriedade pode ser um meio útil de reduzir o tamanho do token.
  • MatchOn: - Identifica o atributo de grupo no qual aplicar o filtro. Defina a propriedade MatchOn como um dos seguintes valores:
    • displayname - O nome de exibição do grupo.
    • samaccountname - O nome da conta SAM local.
  • Type - Define o tipo de filtro aplicado ao atributo selecionado pela propriedade MatchOn . Defina a propriedade Type como um dos seguintes valores:
    • prefix- Inclua grupos em que a propriedade MatchOn começa com a propriedade Value fornecida.
    • suffixInclua grupos em que a propriedade MatchOn termina com a propriedade Value fornecida.
    • contains- Inclua grupos onde a propriedade MatchOn contém com a propriedade Value fornecida.

Transformação de afirmações

  • String - ClaimsTransformation
  • Tipo de dados - blob JSON, com uma ou mais entradas de transformação
  • Resumo - Use essa propriedade para aplicar transformações comuns aos dados de origem para gerar os dados de saída para declarações especificadas no Esquema de Declarações.
  • ID - Faz referência à entrada de transformação na entrada TransformationID Claims Schema. Esse valor deve ser exclusivo para cada entrada de transformação dentro desta política.
  • TransformationMethod - Identifica a operação executada para gerar os dados para a declaração.

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

Método de transformação Entrada esperada Resultado esperado Description
Join string1, string2, separador declaração de saída Junta cadeias de caracteres de entrada usando um separador no meio. Por exemplo, string1: , string2: , separador: resulta em declaração de saída:foo@bar.com.sandboxfoo@bar.com.sandbox.
ExtractMailPrefix E-mail ou UPN string extraída Atributos de extensão de 1 a 15 ou quaisquer outras extensões de diretório, que armazenam um valor de UPN ou endereço de e-mail para o usuário. Por exemplo, johndoe@contoso.com. Extrai a parte local de um endereço de e-mail. Por exemplo, mail: resulta em declaração de saída:foo@bar.comfoo. Se nenhum sinal @ estiver presente, a cadeia de caracteres de entrada original será retornada.
ToMinúsculas() string string de saída Converte os caracteres do atributo selecionado em caracteres minúsculos.
ToMaiúsculas() string string 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 do usuário como entrada regex
- Uma opção para confiar na fonte como multivalorado
- 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 aponta 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 - Juntou-se ao elemento ID da entrada do esquema de declaração para localizar a declaração de entrada apropriada.
    • TransformationClaimType Dá 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 booleano 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ê provavelmente gostaria de tratar como uma declaração de vários valores.
  • InputParameters - Passa um valor constante para uma transformação. Tem dois atributos: Value e ID.
    • Valor é o valor constante real a ser passado.
    • ID é usado para dar um nome exclusivo à entrada. O nome deve corresponder a uma das entradas esperadas para o método de transformação.
  • OutputClaims - Contém os dados gerados por uma transformação e os vincula a uma entrada de esquema de declaração. Ele tem dois atributos: ClaimTypeReferenceId e TransformationClaimType.
    • ClaimTypeReferenceId é unido com a ID da entrada do esquema de declaração para localizar a declaração de saída apropriada.
    • TransformationClaimType é usado para dar 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

SAML NameID e UPN - Os atributos dos quais você origina os valores NameID e UPN , e as transformações de declarações permitidas, são limitados.

Source ID Description
user mail O endereço de e-mail do utilizador.
user userprincipalname O nome principal do usuário do usuário.
user onpremisessamaccountname Nome da conta Sam local
user employeeid O ID do 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.

Método de transformação Restrições
ExtractMailPrefix Nenhuma
Participar O sufixo que está sendo associado deve ser um domínio verificado do locatário do recurso.

Emissor com ID de aplicativo

  • String - issuerWithApplicationId
  • Tipo de dados - Booleano (Verdadeiro ou Falso)
    • Se definido como True, o ID do aplicativo é adicionado à declaração do emissor em tokens afetados pela política.
    • Se definido como False, o ID do aplicativo não será adicionado à declaração do emissor em tokens afetados pela política. (predefinição)
  • Resumo - Permite que o ID do aplicativo seja incluído na declaração do emissor. Garante que várias instâncias do mesmo aplicativo tenham um valor de declaração exclusivo para cada instância. Essa configuração será ignorada se uma chave de assinatura personalizada não estiver configurada para o aplicativo.

Substituição de público

  • String - audienceOverride
  • Tipo de dados - String
  • Resumo - Permite substituir a declaração de audiência enviada para o 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óximos passos