SAMLアプリのName IDとしてのカスタム式の使用

SAMLアプリのName IDとしてのカスタム式の使用

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Zoho DirectoryでアプリのSAML SSOを有効にして設定すると、Zoho Directoryがそのアプリへのユーザー認証を行います。認証時に、Zoho DirectoryはName IDという値をアプリに渡します。Name IDは、Zoho Directory内のユーザーIDとアプリ内のユーザーIDを照合するために使用されます。

例。
メールアドレスがamelia@zylker.app、銀行口座番号が123******47のAmeliaというユーザーを例に説明します。銀行アプリBankAppでは、サインイン時にユーザー名として口座番号を入力する必要があるとします。つまり、BankAppではamelia@zylker.appではなく、123******47を使用してAmeliaを識別します。

通常、Zoho Directoryとアプリ間でSAML SSOを設定すると、Zoho DirectoryはユーザーのメールアドレスをName IDとして渡します。ただし、BankAppが必要とするのはメールアドレスではなく口座番号です。amelia@zylker.appがName IDとしてBankAppに渡されると、口座番号がamelia@zylker.appのユーザーが見つからないというエラーがBankAppに表示されます。そのため、SSOを設定する管理者は、口座番号をName IDとしてBankAppに渡すようZoho Directoryを設定する必要があります。

Name IDは一意である必要があるため、多くのアプリではユーザーのメインのメールアドレスがName IDとして使用されます。ただし、姓名や、ユーザー用に作成したカスタム項目など、その他のユーザー情報をName IDとして指定することもできます。これは、アプリがユーザー名としてメールアドレスをサポートしていない場合や、一般的ではない認証方法を使用するように開発、実装したアプリで役立ちます。

アプリのName IDを変更するには。
  1. Zoho Directory にサインインし、左側のメニューで[管理パネル]をクリックします。
  2. [アプリ管理]に移動します。[アプリ]モジュールが初期設定で開きます。
  3. Name IDを変更するアプリをクリックします。
  4. [シングルサインオン]に移動し、[サービスプロバイダーの詳細]をクリックします。

  5. 認証情報の詳細で、次の項目を設定できます。
    1. [アプリケーションのユーザー名]:ユーザー名としてアプリに渡す項目です。
    2. [Name IDの形式]:ユーザー名を渡す際の形式です。
  6. [保存]をクリックします。
より高度な要件に対応するため、複数の項目を組み合わせたカスタム式をアプリケーションのユーザー名として設定できます。Zoho Directoryの各種項目に文字列操作メソッドを適用して、これらの式を作成できます。

カスタム式は次の形式で記述する必要があります。
method(<string>,<additional_values>)

たとえば、ユーザーのメールアドレスのユーザー名部分と従業員IDを組み合わせた値をユーザー名として使用する独自開発のアプリがあるとします。メールアドレスがamelia@zylker.app 、従業員IDが7469のZoho Directoryユーザーは、独自開発のアプリのユーザー名としてamelia-7469を使用します。この場合、管理者は[Name IDの形式][未指定][アプリケーションのユーザー名][カスタム]に設定し、[式の値]を次のように設定します。
concat(replace(user.email,'@zylker.app','-'),user.Employee ID)

この式は次のように処理されます。
  1. 最初にreplaceが実行されます。ユーザーのメールドメイン(@zylker.app)がハイフンに置き換えられ、amelia@zylker.app amelia-に変換されます。
  2. 次にconcatが実行され、前の手順で得られた出力(amelia-)の末尾に従業員ID(7469)が追加されます。そのため、アプリに渡される最終的な[アプリケーションのユーザー名]amelia-7469になります。
次の表は、これらの式の作成に使用できる項目と、対応する形式を示しています。

項目名
形式

user.firstName

user.lastName
メインのメールアドレス
user.email
氏名
user.displayName
任意のカスタム項目の情報
user.<custom field>
例:項目名が Vehicle Number の場合、形式はuser.Vehicle Numberです。

式の作成に使用できる文字列メソッドは次のとおりです。

文字列メソッド
式の形式
説明

連結
concat(<string>,<string_to_be_appended>)
<string>の末尾に<string_to_be_appended>を追加します。
concat(user.firstName,user.Employee ID)

ユーザーの[従業員ID]項目の値が、ユーザーの名の末尾に追加されます。ユーザーの名が「Amelia」、従業員IDが「7469」の場合、値は「Amelia7469」になります。
位置の取得
indexOf(<string>,<character>)
<string>内で指定した文字が最初に出現する位置を返します。
indexOf(user.firstName,'o')

ユーザーの名で文字「o」が最初に出現する位置を返します。ユーザーの名が「Johnson」の場合、文字「o」が最初に出現する位置である「1」が返されます。
置換
replaceAll(<string>,<string_to_be_removed>,<string_to_be_placed>)
<string>内のすべての<string_to_be_removed>を<string_to_be_placed>に置換します。
replaceAll(user.firstName,'e','a')

すべての「e」が「a」に置換されます。ユーザーの名が「Ellen」の場合、名前に含まれるすべての文字「e」が「a」に置換され、結果は「 Allan」になります。
最初の一致を置換
replaceFirst(<string>,<string_to_be_removed>,<string_to_be_placed>)
<string>内で最初に出現する<string_to_be_removed>を<string_to_be_placed>に置換します。
replaceFirst(user.firstName,'e','a')

最初に出現する「e」が「a」に置換されます。ユーザーの名が「Ellen」の場合、名前で最初に出現する文字「e」が「a」に置換され、結果は「Allen」になります。
部分文字列
substring(<string>,<beginIndex>,<endIndex>)
指定したインデックスに基づいて、<string>の一部を取得します。
substring(user.firstName,0,1)

ユーザーの名から1文字目と2文字目を取得します。ユーザーの名が「John」の場合、文字列「Jo」が返されます。
小文字に変換
toLowerCase(<string>)
指定した文字列のすべての文字を小文字に変換します。
toLowerCase(user.firstName)

ユーザーの名に含まれる文字が小文字に変換されます。ユーザーの名が「John」の場合、「john」が返されます。
大文字に変換
toUpperCase(<string>)
指定した文字列のすべての文字を大文字に変換します。
toUpperCase(user.firstName)

ユーザーの名に含まれる文字が大文字に変換されます。ユーザーの名が「John」の場合、「JOHN」が返されます。
空白の削除
trim(<string>)
指定した文字列の先頭と末尾にある空白を削除します。入力ミスが含まれる可能性のある項目や、substringなどの別のメソッドで生成した文字列の整形に使用できます。
trim(user.displayName)

空白がある場合は削除されます。たとえば、ユーザーの氏名が「 Johnson Doe」の場合、「Johnson」の前にある空白が削除され、「Johnson Doe」が返されます。

Zoho Oneでは、他にもテキスト関数がサポートされています。詳細はこちらをご参照ください