Tüm Ürünler
Search
Belge Merkezi

Identity as a Service:OIDC id_token custom field configuration

Son Güncelleme:Oct 06, 2026

Bu konu, bir OIDC id_token öğesine nasıl özel alan ekleneceğini açıklar ve yapılandırma örnekleri sunar.

id_token özel alan kuralları

Bir id_token özel alanının değeri değişken, sabit veya ifade olabilir. Değişken adını tırnak işareti kullanmadan doğrudan girin. Sabit bir değeri çift tırnak içine ("") alın.

Tür

Değer

Açıklama

değişken

Değişken adını tırnak işareti kullanmadan doğrudan girin.

user.username

Kullanıcı adı.

user.displayName

Görünen ad.

user.phone (kullanımdan kaldırıldı)

Ülke kodu olmadan telefon numarası. Bu değişken kullanımdan kaldırılmıştır.

user.phoneNumber

Ülke kodu olmadan telefon numarası.

user.email

Kullanıcının e-posta adresi.

user.status

Kullanıcı durumu. Geçerli değerler:

  • enabled: Kullanıcı etkin.

  • disabled: Kullanıcı devre dışı.

user.primaryOrganizationalUnitId

Kullanıcının birincil organizasyon biriminin ID değeri.

user.organizationalUnits

Kullanıcının ait olduğu organizasyon birimleri.

ArrayMap(user.organizationalUnits, __item.organizationalUnitId)

Kullanıcının ait olduğu organizasyon birimlerinin ID değerleri.

Biçim: JSON dizisi.

user.groups

Kullanıcı hesabının ait olduğu gruplar.

Biçim: JSON dizisi.

ArrayMap(user.groups, __item.groupId)

Kullanıcı için grup ID değerleri.

Biçim: JSON dizisi.

ArrayMap(user.groups, __item.groupExternalId)

Kullanıcı için harici grup ID değerleri.

Biçim: JSON dizisi.

user.customFields

Kullanıcının özel alanları.

Biçim: JSON dizisi.

user.customFieldMap.$fieldname$.fieldValue

Belirli bir özel alanın değeri. $fieldname$ ifadesini özel alanın adıyla değiştirin.

sabit

Sabit bir dize değeri. Sabiti çift tırnak içine ("") alın.

ifade

Değerleri birleştirmek veya dönüştürmek için gelişmiş bir özellik.

Daha fazla bilgi için bkz. Gelişmiş hesap alanı ifadeleri.

Örnek kullanıcı nesnesi:

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

OIDC ifade örnekleri

IDaaS application sayfasında, gelişmiş yapılandırma alanını genişletmek için Hide advanced configuration seçeneğine tıklayın. Extend id_token bölümünde, eşleme tablosuna özel alan adlarını ve bunlara karşılık gelen ifadeleri ekleyin.

  1. user.organizationalUnits ifadesi aşağıdakileri döndürür:

    [
      {
        "organizationalUnitId": "ou_sdfadtaaxxxxxx",
        "organizationalUnitName": "AD",
        "primary": false
      },
      {
        "organizationalUnitId": "ou_werttxxxxxx",
        "organizationalUnitName": "name_002",
        "primary": true
      }
    ]
  2. ArrayMap(user.organizationalUnits, __item.organizationalUnitId) ifadesi aşağıdakileri döndürür:

    [
      "ou_sdfadtaaxxxxxx",
      "ou_werttxxxxxx"
    ]
  3. user.groups ifadesi aşağıdakileri döndürür:

    [
      {
        "groupId": "group_jp6al4sn4n4wjgjxxxxxx",
        "groupName": "group1",
        "groupExternalId": "group_jp6al4sn4n4wjgjxxxxxx"
      },
      {
        "groupId": "group_vavikcxewkf5h3oxxxxxx",
        "groupName": "group2",
        "groupExternalId": "group_vavikcxewkf5h3oxxxxxx"
      }
    ]
  4. ArrayMap(user.groups, __item.groupId) ifadesi aşağıdakileri döndürür:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  5. ArrayMap(user.groups, __item.groupExternalId) ifadesi aşağıdakileri döndürür:

    [
        "group_jp6al4sn4n4wjgjxxxxxx",
        "group_vavikcxewkf5h3oxxxxxx"
    ]
  6. user.customFields ifadesi aşağıdakileri döndürür:

    [
        {
          "fieldName": "place",
          "fieldValue": "beijing"
        },
        {
          "fieldName": "age",
          "fieldValue": "18"
        }
    ]
  7. user.customFieldMap.age.fieldValue ifadesi aşağıdakileri döndürür:

    18

id_token özel alanlarını yeniden yazma kuralları

Varsayılan alan kuralları

  1. Sistem varsayılan alanları yeniden yazılamaz: exp, nbf, iat, iss, jti, at_hash, c_hash, nonce, sid.

  2. sub alanı yeniden yazılabilir.

Kullanıcı bilgisi alanı kuralları

Aşağıdaki kullanıcı bilgisi alanlarının id_token içinde yeniden yazılıp yazılamayacağı, istenen scope değerine bağlıdır.


Alan adı


İlişkili scope


Yeniden yazılamama koşulu


email, email_verified


email


İstenen scope email içerdiğinde ve kullanıcının email niteliği boş olmadığında.


phone_number, phone_number_verified


phone


İstenen scope phone içerdiğinde ve kullanıcının phoneNumber niteliği boş olmadığında.


name, preferred_username, updated_at, locale


profile


İstenen scope profile içerdiğinde.


instance_id, application_id


instance


İstenen scope instance içerdiğinde.

Yapılandırma önerileri

  1. Uygulamanızın yapılandırmasında scope değerlerini dikkatlice seçin. İstediğiniz scope değerleri, hangi kullanıcı alanlarının yeniden yazılabileceğini belirler.

  2. Belirli bir alanı yeniden yazmak için ilişkili scope değerini istemediğinizden veya ilgili kullanıcı niteliğinin boş olduğundan emin olun.