Gelişmiş bir hesap alanı ifadesi, yerleşik IDaaS ifade motorunun değerlendirdiği bir model referansı ile bir işlevi eşleştirir. Uygulama tek oturum açma (SSO) öznitelikleri ve kimlik sağlayıcı alan eşlemeleri için hesap alanı değerlerini dönüştürmek, birleştirmek veya koşullu olarak seçmek amacıyla bu ifadeleri kullanın.
İfadelerin çalışma şekli
SAML ve OIDC uygulamalarında gelişmiş ifadeler, IDaaS'ın döndürdüğü kullanıcı bilgilerine yeni parametreler ekler. Hedef uygulamanın dönüştürülmesi, birleştirilmesi veya koşula göre seçilmesi gereken ek bir parametre gerektirdiği durumlarda ifade kullanın.
Bir ifade iki bölümden oluşur:
Model: IDaaS hesabı için User ve uygulama hesabı için AppUser.
İşlev: Çalıştırılan mantık.
İfadeleri kullanabileceğiniz yerler
İfadeler aşağıdaki yapılandırma alanlarında desteklenir; her birinin farklı kısıtlamaları vardır.
OIDC uygulama SSO'su:
id_tokeniçinde döndürülen bilgileri genişletin. OIDC uygulamasının SSO yapılandırma sayfasındaid_tokenuzantı alanı bölümünü bulun ve Extended Value alanınafull_phonegibi ihtiyacınız olan ifadeyi girin.SAML uygulama SSO'su: SSO sırasında IDaaS'ın döndürdüğü kullanıcı bilgilerine parametreler ekleyin.
SamlArrayişlevi yalnızca SAML SSO için kullanılabilir.Kimlik sağlayıcı alan eşlemesi: Bir kimlik sağlayıcı (IdP) ile senkronize edilen alan eşlemesinde özel alan değerleri atamak için aynı ifadeleri kullanın.
-
OIDC kimlik sağlayıcıları için alan önekleri: Otomatik bağlama için
id_tokeniçindeki yalnızcasub,phoneNumberveemailalanlarıidpUser.önekini kullanır; örneğinidpUser.sub. Diğer tüm alanlaridpUser.rawUserInfo.önekini kullanmalıdır; örneğinidpUser.rawUserInfo.aud. Daha fazla bilgi için bkz. OIDC kimlik sağlayıcısını bağlama.Ayrıntılar için bkz. SAML Öznitelik Beyanları değer belirtimleri, OIDC id_token genişletilmiş değer belirtimleri ve alan yönetimi.
Modeller
Bir ifade, bir model aracılığıyla değerleri okur.
User modeli
Bir ifade içinde User modelinin alanlarına başvurun; örneğin user.username ve user.lockExpireTime.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bir hesap için örnek User modeli verileri:
{
"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": "name_001",
"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"
}
],
"userId": "user_x3zyd6cxxxxxxxxxxxxx",
"username": "name_001",
"displayName": "displayname_001",
"passwordSet": true,
"phoneRegion": "86",
"phoneNumber": "333xxxx3333",
"phoneNumberVerified": true,
"email": "xxxxx@example.com",
"emailVerified": true,
"userExternalId": "b2ed5fc0xxxxxxxxxx",
"userSourceType": "ding_talk",
"userSourceId": "corp_1234xxxxxxx",
"status": "enabled",
"accountExpireTime": "-1",
"passwordExpireTime": "-1",
"registerTime": "1730454581598",
"lockExpireTime": "-1",
"createTime": "1730454582379",
"updateTime": "1733479455307"
}
AppUser modeli
Bir ifade içinde IDaaS AppUser modelinin alanlarına başvurun; örneğin appUser.username.
|
|
|
|
|
|
IdP User modeli
IdP User modeli, bir kimlik sağlayıcı ile veri senkronize ettiğinizde geçerlidir. Örneğin, DingTalk'in çalışma konumu alanı idpUser.work_place şeklindedir.
Kullanılabilir alanlar kimlik sağlayıcıya bağlıdır. İlgili sağlayıcının belgelerine bakın. DingTalk için bkz. DingTalk belgeleri - Kullanıcı ayrıntılarını sorgulama.
İşlevler
İfade motorunun işlevleri yeteneklere göre gruplandırılmıştır:
Dize işlevleri
Dize değerlerini birleştirir, kırpar, değiştirir, böler ve parçalarını çıkarır.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Koşullu ve null işleme işlevleri
Bir alan eksik olduğunda başka bir değere geri dönün, varsayılan bir değer uygulayın veya bir koşula göre dallanın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Karşılaştırma ve mantıksal işlevler
Bu işlevler true veya false döndürür. Bunları tek başına veya IIF öğesinin condition bağımsız değişkeni olarak kullanın.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dizi işlevleri
Bir dizi oluşturur, öğelerinden birini okur ve bir hesabın grupları gibi nesne dizilerini yeniden şekillendirir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nesne işlevleri
Anahtar-değer çiftlerinden bir nesne oluşturur, tek bir özelliği okur ve bir nesneyi JSON dizesine serileştirir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tarih ve saat işlevleri
Geçerli saati biçimlendirilmiş bir UTC dizesi veya UNIX zaman damgası olarak döndürür.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Telefon numarası işlevleri
ExtractPhoneRegion ve ExtractPhoneNumber bir cep telefonu numarasını bölge kodu ve numaranın kendisi olarak ayırır. İkisi de aynı parametreleri kabul eder; hangilerini ileteceğiniz numaranın biçimine bağlıdır.
|
|
|
|
|
|
|
|
|
|
|
|
ExtractPhoneRegion
ExtractPhoneRegion(source, defaultRegion,autoAppendPlusSignal) bir cep telefonu numarasından bölge kodunu çıkarır.
source: Cep telefonu numarası.defaultRegion: Telefon bölge kodunun varsayılan ülkesi veya bölgesi. Ülke veya bölge kodu için ISO 3166 Ülke Kodları standardının alfa-2 kodunu kullanın; örneğin CN, US veya TW.-
autoAppendPlusSignal: Artı işaretinin (+) otomatik olarak eklenip eklenmeyeceğini belirtir.truedeğeri işareti ekler,falsedeğeri eklemez.Örnekler:
Cep telefonu numarası
+86131xxxxx000,+86 131xxxxx000veya+86-131xxxxx000ise: Input:ExtractPhoneRegion(idpUser.mobile)→ Return:86Cep telefonu numarası
86131xxxxx000,86 131xxxxx000veya86-131xxxxx000ise: Input:ExtractPhoneRegion(idpUser.mobile, "CN", true)→ Return:86Cep telefonu numarası
131xxxxx000ise: Input:ExtractPhoneRegion(idpUser.mobile, "CN", false)→ Return:86
ExtractPhoneNumber
ExtractPhoneNumber(source, defaultRegion,autoAppendPlusSignal) bir cep telefonu numarasından bölge kodu olmadan gerçek cep telefonu numarasını çıkarır.
source: Cep telefonu numarası.defaultRegion: Telefon bölge kodunun varsayılan ülkesi veya bölgesi. Ülke veya bölge kodu için ISO 3166 Ülke Kodları standardının alfa-2 kodunu kullanın; örneğin CN, US veya TW.-
autoAppendPlusSignal: Artı işaretinin (+) otomatik olarak eklenip eklenmeyeceğini belirtir.truedeğeri işareti ekler,falsedeğeri eklemez.Örnekler:
Cep telefonu numarası
+86131xxxxx000,+86 131xxxxx000veya+86-131xxxxx000ise: Input:ExtractPhoneNumber(idpUser.mobile)→ Return:131xxxxx000Cep telefonu numarası
86131xxxxx000,86 131xxxxx000veya86-131xxxxx000ise: Input:ExtractPhoneNumber(idpUser.mobile, "CN", true)→ Return:131xxxxx000Cep telefonu numarası
131xxxxx000ise: Input:ExtractPhoneNumber(idpUser.mobile, "CN", false)→ Return:131xxxxx000
SAML işlevi
|
|
|
|
|
|
|
|
Örnek:
Input:
SamlArray(Array("group1","group2"))SAML Yanıtı çıktısı.
<saml2:Attribute Name="grouIdArray"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"> xsi:type="xsd:string"> group2</saml2:AttributeValue></saml2:Attribute>
Yaygın ifade örnekleri
Yaygın senaryolar ve gerekli değeri üreten ifadeler:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|