🙆‍♀️

OktaのProfile Editorでアプリケーションに動的に属性をアサインする

2023/12/11に公開

これはcorp-engr 情シスSlack Advent Calendar 2023の10日目の記事です。
https://adventar.org/calendars/8868

ごきげんよう🌸
株式会社SUPER STUDIOのコーポレートエンジニアリングユニットマネージャーをしている@bboobbaaです!

この記事では、OktaのProfile EditorでOkta Expression Languageを使ってアプリケーションに動的アサインする方法を紹介します。

Eメールアドレスの@の前を取り出す

ユーザーのEメールアドレスからローカルパート(@記号の前の部分)を取り出すには、String.substringBefore()関数を使用します。

String.substringBefore(user.email, "@")

特定の文字の置換

一つの場合

特定の姓が存在する場合、別の姓に置き換えるには、条件式を用います。

user.lastName == '髙橋' ? '高橋' : user.lastName

複数の場合

複数の姓に対して異なる置換を行うには、ネストされた条件式を使用します。

user.lastName == '髙橋' ? '高橋' : (user.lastName == '山﨑' ? '山崎' : user.lastName)

その他のTips

文字列の結合

ユーザーの名字と名前を結合するには、+演算子を使用します。

user.firstName + " " + user.lastName

大文字・小文字の変換

Eメールアドレスなどの英文字列を大文字に変換するには、String.toUpperCase()関数を用います。

String.toUpperCase(user.email)

Eメールアドレスなどの英文字列を小文字に変換するには、String.toLowerCase()関数を用います。

String.toLowerCase(user.email)

日付関数

現在の日付や時刻を取得するには、Date.now()関数を使用します。

Date.now()

他にも

OktaのグループルールのUse Okta Expression Languageオプションを使うことで、グループルールを直接設定することも可能です。TerraformからOktaのグループルールでグループの親子関係を管理するの記事でも少し触れているので参照してください。

Okta Expression Languageを使用することで、プロファイル属性のカスタマイズやアプリケーションの動的アサインが容易になるのでぜひ活用していきましょう!

Discussion