SAMLログインをADFSで使用するときは、認証値に加えて他の値を渡すことができます。この記事では、ユーザーの氏名、組織、電話番号、ロール、またはカスタムロールを渡す方法について説明します。
これらの値は、Relying Party Trustにおけるクレームルールとして定義されています。クレームルールを編集するには、AD FS ManagementからRelying Party Trustsフォルダーを選択し、「Actions」サイドバーから「Edit Claim Rules 」を選択します。「Add Rule」をクリックしてポップアップウィンドウからテンプレートを選択すると、新しいルールが追加されます。例:
お名前(フルネーム)
ユーザーのフルネームを渡すには、「Send LDAP Attributes」テンプレートを使用してルールを作成します。
- 「LDAP Attribute」に、「Surname」の行と「Given-Name」の行を追加します。
- 「Outgoing Claim Type」で、「Surname」と「Given Name」を選択します。
Organization
Zendeskでユーザーが関連付けられる組織を定義するには、「Send LDAP Attributes」テンプレートを使用してルールを作成します。このルールは、Active Directoryの項目を「Outgoin 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 documentation」のユーザー属性テーブルに指定されている値を使用します。
- 「Finish」をクリックしてから、作成したばかりのルールに「Edit Rule」をクリックします。
- ルールの生のコードを取得するには、「View Rule Language」ボタンを使用します。コードをどこか別の場所にコピーします。コピーしたコードは、次の手順で使用します。
機能するカスタムルールを作成するには
- Rule Languageウィンドウからコードをコピーしたら、「OK」をクリックしてダイアログを閉じます。
- ルールを削除し、「Send Claims using a Custom Rule 」テンプレートを使用して新しいルールを追加します。
- コピーしたコードをカスタムルールエディタに貼り付け、Typeフィールドから "http://schemas.microsoft.com/ws/2008/06/identity/claims/"という文字列を削除します。これでTypeフィールドにはroleという言葉だけが残ります。
- ルールを保存します。
カスタムロール
カスタムロールを設定するには、セクション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);
カスタムロールマッピングは、ユーザーがすでにagentのロールを持っている場合にのみ機能します。
0 コメント
サインインしてコメントを残してください。