［ServiceNow］User(sys_user)テーブルを使用する

※この記事はServiceNow初心者が学習用のために記載した記事です。内容について誤っている場合がございます。不足点などございましたらコメントいただけますと幸いです。

# Userテーブル
- インスタンス内でユーザーアカウントに関連する情報を管理するテーブル
- ServiceNowプラットフォーム上のユーザーの認証、役割、プロファイル情報、アクセス権限、グループの所属、ロールなどを管理
    - ロール
        - ユーザーやプロセスが持つ役割や権限を指す
# Userテーブルの特徴
- ユーザーアカウント管理
    - 各ユーザーに一意のsys_idが付与される
    - アクティブなユーザーと非アクティブなユーザーを管理する
    - LDAPやSAML認証と連携して、外部ディレクトリサービスと統合することも可能
        - DAP（Directory Access Protocol） 
            - ディレクトリサービス（ネットワーク上でデータを管理するシステム）へのアクセスを提供するプロトコルの一つ
            - 現在はほとんど使われておらず、より軽量な LDAP（Lightweight Directory Access Protocol） が一般的に使用されている
        - LDAP（Lightweight Directory Access Protocol）
            - DAPを簡略化したものです。LDAPは、ディレクトリデータへの効率的なアクセスと管理を可能にするために設計
            - ServiceNowや他のシステムで、LDAPサーバー（例: Microsoft Active Directory）と連携して、ユーザー認証や権限管理を行う
        - SAML認証（Security Assertion Markup Language）
            - シングルサインオン（SSO）を実現するための認証プロトコル
            - Webアプリケーション間で安全に認証情報をやり取りするために使用
                - SAMLは、XMLベースのプロトコルで、ユーザーの認証情報を「アサーション」として伝える
                    - アサーション（Assertion） 
                        - 「主張や証明」を意味し、ITや認証の分野では、特定の事実や情報を証明するデータやメッセージを指す
- アクセス制御に関連
    - ユーザーのロール（sys_user_role テーブルを通じて）を割り当て、アクセス制御を管理する
    - ユーザーに応じたアプリケーションやモジュールのアクセス権限を設定可能
- 組織情報の管理
    - 部署（cmn_department テーブル）やロケーション（cmn_location テーブル）と連携して、組織階層を表現できる
    - ユーザー間の関係（例: マネージャー、直属の部下）を設定可能
- インシデントやタスクの割り当て先
    - ユーザーは、インシデントやタスクの「担当者」として設定されることがある
- 通知機能との連携
    - メールアドレスを使用して、ユーザーに通知を送ることができる
    - ワークフローやスクリプトを活用して、カスタマイズした通知を設定可能


# Userテーブルのフィールド
| 表示名              | 説明                                                                 | 物理名（フィールド名）      |
|---------------------|----------------------------------------------------------------------|---------------------------|
| User ID            | ユーザーの一意のID（ログイン時に使用）                                          | `user_name`              |
| Name               | ユーザーのフルネーム                                                         | `name`                   |
| Email              | メールアドレス（通知や連絡に使用）                                              | `email`                  |
| Phone              | 電話番号                                                                  | `phone`                  |
| Department         | ユーザーが所属する部署                                                       | `department`             |
| Title              | ユーザーの役職                                                            | `title`                  |
| Manager            | ユーザーのマネージャー（sys_userテーブルへの参照フィールド）                         | `manager`                |
| Roles              | ユーザーに割り当てられたロール（アクセス権限に影響）                                   | `roles`                  |
| Active             | ユーザーが有効かどうか（無効にするとログイン不可）                                    | `active`                 |
| Locked out         | ログイン失敗によってロックされているか（セキュリティ設定による）                           | `locked_out`             |
| Group Memberships  | ユーザーが属するグループ                                                     | `user_group`（関連レコード） |

# 使用方法
- 「Filter navigatorで「sys_user.list」と検索
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/b560a135-81ca-3434-fec8-176cba9f3a50.png)
- Userテーブルが表示されるので、「New」をクリック
- フォーム画面でユーザー情報を入力
    - User IDは記載しておくと、検索しやすくなる
    - Emailは「○○＠○○」の形式で記載する
- Submitを押下
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/1e5883e2-941f-924d-8bcb-f53c1ad72957.png)
- List画面に戻るので、検索してレコードが作成されたことを確認
    - Nameフィールドで「*test」と検索
        - 「*」はcontainの意味
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3624279/8da93d13-2c0a-0e96-a07b-27be47fe8b49.png)