SAMLアプリのName IDにカスタム式を使用する方法

SAMLアプリのName IDにカスタム式を使用する方法

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

Zoho Directory でアプリ用の SAML SSO を有効化・設定すると、Zoho Directory がそれらのアプリへのユーザー認証を行います。認証時に、Zoho Directory はアプリにName IDと呼ばれる値を渡します。Name ID は、Zoho Directory 上のユーザー ID とアプリ側のユーザー ID を対応付けるために使用されます。

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

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

Name ID は一意である必要があるため、ほとんどのアプリはユーザーのプライマリメールアドレスを Name ID として使用します。ただし、名・姓などの他のユーザー情報や、ユーザー向けに作成した任意のカスタム項目を Name ID として定義することもできます。これは、アプリがユーザー名としてメールアドレスをサポートしていない場合や、独自開発したアプリで非標準的な認証方式を使用している場合に便利です。

アプリの Name ID を変更するには:
  1. Zoho Directory  にサインインし、左側メニューで Admin Panel をクリックします。
  2. アプリケーション に移動し、Name ID を変更したいアプリをクリックします。
  3. Single Sign-On に移動し、Service Provider 詳細 をクリックします。
  4. Credential 詳細 で、次を設定できます。
    1. Application ユーザー名: アプリにユーザー名として渡す項目。
    2. Name ID 形式: ユーザー名を渡す際の形式。
  5. 保存 をクリックします。
さらに詳細な要件がある場合は、複数の項目を組み合わせて構成したカスタム式を Application ユーザー名として設定できます。これらの式は、Zoho Directory 内のさまざまな項目に対する文字列操作メソッドを使って構成できます。

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



例えば、ある組織が、ユーザーのメールユーザー名と従業員 ID の組み合わせをユーザー名として使用するカスタムアプリケーションを持っているとします。この場合、Zoho Directory のユーザーがメールアドレス amelia@zylker.app 、従業員 ID が 7469 であれば、そのカスタムアプリケーションでのユーザー名は amelia-7469 となります。このケースでは、管理者は Name ID 形式UnspecifiedApplication ユーザー名カスタムExpression 値 を次のように設定します:
concat(置き換える(ユーザー。メール,'@zylker。app','-'),ユーザー。従業員 ID)

この式の動作は次のとおりです。
  1. 置き換える が最初に実行されます。ユーザーのメールドメイン (@zylker。app) をハイフンに置き換え、amelia@zylker.app amelia- に変換します。
  2. 次に concat が実行され、前の手順の出力 (amelia-) の末尾に従業員 ID (7469) を連結します。これにより、アプリに渡される最終的な Application ユーザー名amelia-7469 になります。
次の表は、これらの式を構成する際に使用できる項目と、その指定形式を示しています。

項目名
形式

ユーザー。firstName

ユーザー。lastName
プライマリメールアドレス
ユーザー。メール
フルネーム
ユーザー。displayName
任意のカスタム項目の情報
ユーザー.<カスタム項目>
例: 項目名が 交通手段番号 の場合、形式は ユーザー。交通手段番号 となります。

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

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

Concat
concat(<string>,<string_to_be_appended>)
<string> の末尾に <string_to_be_appended> を追加します。
concat(ユーザー.firstName, ユーザー.従業員ID)

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

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

すべての「e」が「a」に置き換えられます。ユーザーの名が「Ellen」の場合、名前内の文字「e」のすべての出現箇所が「a」に置き換えられ、出力は「 Allan」となります。
Replace First
replaceFirst(<string>,<string_to_be_removed>,<string_to_be_placed>)
<string> 内にある <string_to_be_removed> の最初の出現箇所を、<string_to_be_placed> に置き換えます。
replaceFirst(ユーザー.firstName, 'e', 'a')

最初の「e」が「a」に置き換えられます。ユーザーの名が「Ellen」の場合、名前内で最初に出現する文字「e」が「a」に置き換えられ、出力は「Allen」となります。
Substring
substring(<string>,<beginIndex>,<endIndex>)
指定したインデックス範囲に対応する <string> の一部を取得します。
substring(ユーザー.firstName, 0, 1)

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

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

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

空白がある場合は削除されます。たとえば、ユーザーのフルネームが「 Johnson Doe」の場合、「Johnson」の前にあるスペースが削除され、「Johnson Doe」が返されます。

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