ADFSでSAMLログインを使用する場合は、認証値に加えて他の値を渡すことができます。この記事では、ユーザーのフルネーム、組織、電話番号、ロール、またはカスタムロールを渡す方法について説明します。
これらの値は、Relying Party TrustのClaim Rulesとして定義されます。Claim Rulesを編集するには、「AD FS Management」から「Relying Party Trusts folder」フォルダーを選択し、「Actions」サイドバーから「Edit Claim Rules」を選択します。新しいルールを追加するには、「Add Rule」をクリックし、ポップアップウィンドウからテンプレートを選択します。以下に例を示します。
フルネーム
ユーザーのフルネームを渡すには、「Send LDAP Attributes」テンプレートを使用してルールを作成します。
- 「LDAP Attribute」から、「Surname」用の列と、「Given-Name」用の列を追加します。
- 「Outgoing Claim Type」について、「Surname」および「Given Name」を選択します。
組織
Zendeskでユーザーが関連付けられる組織を定義するには、「Send LDAP Attributes」テンプレートを使用してルールを作成します。このルールは、Active DirectoryのフィールドをOutgoing Claim Typeの組織にマッピングします。LDAP属性は、ユーザーのマッピング方法によって異なります。たとえば、部門を、異なる組織にマッピングしたい場合があります。
- 「LDAP Attribute」について、組織にマッピングするフィールドを選択します。
- 「Outgoing Claim Type」について、フィールドに小文字で「organization」という単語を入力します。
電話番号
ユーザーの電話番号を渡すには、「Send LDAP Attributes」テンプレートを使用してルールを作成します。
- 「LDAP Attribute」について、「Telephone-Number」を選択します。
- 「Outgoing Claim Type」について、フィールドに小文字で「phone」という単語を入力します。
ロール
グループへのメンバーシップに基づくユーザーロールの設定は、2段階のプロセスに分けて行います。最初に、「Send Group Membership as a Claim」テンプレートを使用して新しいルールを作成します。次に、そのルールによって生成された定義を少し修正し、Zendeskに情報を正しく渡すカスタムルールを作成します。
グループメンバーシップのルールを作成するには
- 新しいルールを追加し、「Select Send Group Membership as a Claim」をテンプレートとして選択します。
- 「Browse」ボタンを使用して、ロールにマッピングするグループを見つけます。
- 「Outgoing Claim Type」で、「Role」を選択します。
- 「Outgoing claim value」には、SAMLドキュメントのユーザー属性のテーブルに指定されている値を使用します。
- 「Finish」をクリックし、上で作成したルールの「Edit Rule」をクリックします。
- 「View Rule Language」ボタンを使用して、ルールの生コードを取得します。コードをどこかにコピーします。コピーしたコードは、次の手順で使用します。
機能するカスタムルールを作成するには
- ルール言語ウィンドウからコードをコピーした後、「OK」をクリックしてダイアログを閉じます。
- ルールを削除し、「Send Claims using a Custom Rule」テンプレートを使用して新しいルールを追加します。
- コピーしたコードをカスタムルールエディタに貼り付け、「Type」フィールドから「http://schemas.microsoft.com/ws/2008/06/identity/claims/」という文字列を削除します。これにより、「role」という単語だけが残ります。
- ルールを保存します。
カスタムロール
カスタムロールを設定するには、Custom Agent Roles APIを使用してIDを取得する必要があります。セクション4の汎用ロールのルールを作成する手順に従い、以下のように修正します。
- 「Outgoing claim value」に「agent」または「admin」を指定するのではなく、ロールのIDを使用します。
- 「Type」フィールドに「role」という単語を残す代わりに、値を「custom_role_id」に変更します。
ルールの最後の文は以下のようになります。
issue(Type = "custom_role_id", Value = "ROLE_ID_HERE", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, ValueType = c.ValueType);
カスタムロールのマッピングは、ユーザーがすでにエージェントのロールを持っている場合にのみ機能します。