日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

高級:賬戶字段表達式

基礎說明

IDaaS內置了表達式引擎,在SAMLOIDC應用中,支持使用高級表達式,向返回信息中添加新的參數。當目標應用需接受額外參數,且參數需要進行某種轉化、拼接、判斷時,可使用表達式實現。

與此類似,可以使用同樣方法,在配置與身份提供方間同步的字段映射時,也可使用表達式實現字段值自定義賦值。

本篇文檔下方列有常見示例,幫助快速理解使用場景和方法。?

OIDC為例,在SSO配置中,支持擴展返回的id_token信息。在擴展值中,可填寫高級表達式,以達成特定處理目標。

image.png

更多使用方式請參考:SAML Attribute Statements值填寫規范OIDC id_token擴展值填寫規范擴展字段

表達式分為兩部分:

  1. 模型,包含User(對應IDaaS賬戶)和AppUser(對應應用賬戶)兩種。

  2. 函數,代表執行邏輯關系。

模型說明

1. User

下列字段在IDaaSUser模型中,可使用類似user.usernameuser.lockExpireTime 的引用方式。

屬性

說明

username

用戶名

displayName

用戶顯示名

passwordSet

密碼是否已設置

phoneRegion

手機地區編號,示例:中國區號為 "86",不帶 "00" 或 "+"

phoneNumber

手機號碼

email

郵箱

userSourceType

來源類型,取值為:build_inding_talk、ad、ldap、idp_auto_build

userSourceId

來源ID

status

用戶狀態,取值為:enabled、disabled

accountExpireTime

賬戶過期時間,UNIX紀元時間,單位毫秒

registerTime

用戶注冊時間,UNIX紀元時間,單位毫秒

lockExpireTime

鎖定過期時間,UNIX紀元時間,單位毫秒

updateTime

最近一次更新時間,UNIX紀元時間,單位毫秒

description

描述

2. App User

下列字段在IDaaSAppUser模型中,可使用類似appUser.username引用方式。

屬性

說明

username

應用賬號用戶名

3. IdP User

IdP User模型應用于與身份提供方進行同步時,舉例:釘釘的辦公地點字段:idpuser.work_place

具體字段請查看對應身份提供方文檔,例如釘釘的釘釘幫助文檔-用戶詳情

重要

對于OIDC身份提供方(參考綁定OIDC身份提供方),在自動綁定能力中使用表達式時,僅id_token中的sub、phoneNumber、email字段的前綴使用idpuser.,例如idpuser.sub;其余字段的前綴需使用idpUser.rawUserInfo.,例如idpUser.rawUserInfo.aud

函數說明

以下為我們開放的常用函數及說明:

函數名

函數定義

說明

Append

Append(str1, str2, ..., strn)

拼接輸入參數為新的字符串,等于str1+str2+...

Join

Join(source1, source2, ..., sourceN, separator)

將多個源值拼接為一個字符串,源值間用分隔符分隔。

Coalesce

Coalesce(source1, source2, ..., sourceN, defaultValue)

返回輸入參數中第一個非空參數,若參數都為空,則返回null,其中非空指非null且參數長度大于0。

IIF

IIF(condition, whenTrue, whenFalse)

三目運算。根據condition的結果返回不同的值,為true時返回whenTrue,為false時返回whenFalse。

IsNull

IsNull(value)

valuenull即缺失時,輸出為true。

IsNullOrEmpty

IsNullOrEmpty(value)

valuenull或空字符串時,輸出為true。

Now

Now()

返回表示當前UTC DateTime的字符串,格式為 yyyy-MM-dd'T'HH:mm:ssXXX

StringReplace

StringReplace("hello $VariableName", "$VariableName", ReplaceString)

普通字符串替換。

Trim

Trim(source)

去除源值字符串前后的空白字符。

ToLower

ToUpper

ToLower(source)

ToUpper(source)

字符串變為全大寫或全小寫。

Substring

Substring(source, fromIndex, endIndex)

返回字符串的子字符串,即子字符串下標地址為 [fromIndex, endIndex]。

SubstringBefore

SubstringBefore(source, subString)

返回subString之前的字符串。

Array

Array(source1, source2,...)

將多個值組合成為數組。值可為Object類型。

Object

Object(key1, value1, key2, value2, ...)

通過制定鍵值對組合成為Object對象。

參考示例

效果

表達式示例

取用戶名,拼接固定 "@example.com"。

Append(user.username, "@example.com")

當郵箱不為空,返回郵箱。

當郵箱為空時,取手機號。

Coalesce(user.email, user.phoneNumber)

當手機號為空時,默認填寫固定手機號。

IIF(IsNullOrEmpty(user.phoneNumber), "1888888****", user.phoneNumber)

將手機號地區和手機號以 - 拼接。

Join(user.phoneRegion, user.phoneNumber, "-")

返回包含顯示名的自定義歡迎信息。

StringReplace("hello $DisplayName", "$DisplayName", user.displayName)

將手機號中間四位用 * 脫敏返回。

Append(

SubString(user.phoneNumber, 0, 4),

"****",

SubString(user.phoneNumber, 8, 10)

)

提取郵箱中的用戶名。

SubstringBefore(user.email, "@")

組裝SCIM規范中數組格式的email字段。

Array(Object("email", user.email, "type", "work", "primary", true))