Forguncy 8 オンラインヘルプ
Forguncyの使い方 / コーディングによるカスタマイズ / ユーザーアカウント管理 REST API
このトピックで
    ユーザーアカウント管理 REST API
    このトピックで

    ユーザーアカウント管理REST APIは、Forguncyのユーザー管理サービスに対して、新しいユーザーを作成する、作成したユーザーをロールに追加するといったすべてのユーザー管理に必要な操作をREST APIで提供します。フォーム認証のユーザーとWindows認証のユーザーそれぞれのAPIが用意されています。SAML 2.0用認証プロバイダー、およびOffice 365(Microsoft Entra ID 旧称Azure AD)用認証プロバイダーのユーザーを作成したい場合、フォーム認証のユーザーとして作成します。

    本REST APIはForguncy Serverがインストールされているコンピューターからの呼び出しにおいてのみ動作します。外部アプリケーションからユーザー管理を行いたい場合には、OAuth2.0アクセストークンをAuthorization Headerに追加します。詳細については、セキュリティの「外部連携」部分を参照してください。

    注意:

    • Forguncy Server環境の場合、APIリファレンスにおける「Origin」は、通常「http://localhost:22345」、または「https://localhost:22345」となります(「localhost」部分は「127.0.0.1」でも同様です)。サーバーのコンピューター名を使用する場合、「localhost」部分をコンピューター名(ホスト名)で置き換えてください。

    • Forguncy Builder環境でのデバッグの場合、Origin部分が「http://localhost:<開発時ユーザーアカウント管理のポート番号>」となるだけでなく、「/UserService」部分を省略する必要があることに注意してください。

      • Forguncy Server環境:http://localhost:22345/UserService/Manager/User/AddUsers

      • Forguncy Builder環境でのデバッグ:http://localhost:12319/Manager/User/AddUsers

      上記のようなトラブルを防ぐためにも、Origin部分はユーザーアカウント管理のベースURL取得コマンドを使用して取得することをおすすめします。

    • リクエスト本文にJSONデータを指定するリクエストの場合は、Content-Typeヘッダーに「application/json」を指定する必要があります。

    次のコードは、「Bob」と「Andy」の2人のユーザーを作成、「Group1」という組織を作成し、その組織に作成したユーザー2人を追加するC#のサンプルコードです。

    C#
    コードのコピー
    public ResultData AddUsers()
    {
        var user1 = new { UserName = "Bob", FullName = "Bob Smith", Password = "123456", Email = "Bob@mail.com" };
        var user2 = new { UserName = "Andy", FullName = "Andy Brown", Password = "123456", Email = "Andy@mail.com" };
        var userInfos = new { UserInfos = new List<object> { user1, user2 } };
        var url = "http://localhost:22345/UserService/Manager/User/AddUsers";
        return Reqest(url, userInfos);
    }
     
    public ResultData AddOrgnization()
    {
        var organization = new { OrganizationName = "Group1", ParentOrganizationPath = "MESCIUS/Development1", OrganizationLevel = "SubDepartment" };
        var url = "http://localhost:22345/UserService/Manager/Organization/AddOrganization";
        return Reqest(url, organization);
    }
     
    public ResultData AddUsersToOrganization()
    {
        var user1 = new { UserName = "Bob", IsLeader = false, OrganizationRole = "Intern" };
        var user2 = new { UserName = "Andy" };
        var userInfos = new { Users = new List<object> { user1, user2 }, OrganizationPath = "MESCIUS/Development1/Group1" };
        var url = "http://localhost:22345/UserService/Manager/Organization/AddUsersToOrganization";
        return Reqest(url, userInfos);
    }
     
    private ResultData Reqest(string url, object param)
    {
        ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault;
        HttpWebRequest rq = HttpWebRequest.Create(url) as HttpWebRequest;
        rq.Method = WebRequestMethods.Http.Post;
        rq.ContentType = "application/json; charset=utf-8";
        var postValueString = JsonConvert.SerializeObject(param);
        var data = Encoding.UTF8.GetBytes(postValueString);
        using (Stream stream = rq.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
        var response = (HttpWebResponse)rq.GetResponse();
        if (response.StatusCode == HttpStatusCode.OK)
        {
            using (var streamReader = new StreamReader(response.GetResponseStream()))
            {
                var resultStr = streamReader.ReadToEnd();
                return JsonConvert.DeserializeObject<ResultData>(resultStr);
            }
        }
        return null;
    }

    SAML 2.0用認証プロバイダー、およびOffice 365(Microsoft Entra ID)用認証プロバイダーのユーザー作成

    SAML 2.0用認証プロバイダー、およびOffice 365(Microsoft Entra ID)用認証プロバイダーのユーザーを作成したい場合、フォーム認証のユーザーとして作成しますが、ユーザー名をプロバイダーの該当する項目と一致させる必要があります。

    プロパティ オプション SAML 2.0 Office 365(Microsoft Entra ID)
    ユーザー名 必須 SAML_SUBJECTにマップされている項目 オブジェクト ID
    氏名 省略可 ユーザー名 表示名
    パスワード 必須 任意のパスワード
    ※ 本パスワードはSAML IdP側のパスワードとは無関係であることに注意してください。作成したユーザーがフォーム認証でログインする際にはこのパスワードが要求されます。
    任意のパスワード
    ※ 本パスワードはMicrosoft Entra ID側のパスワードとは無関係であることに注意してください。作成したユーザーがフォーム認証でログインする際にはこのパスワードが要求されます。
    メールアドレス 必須 メールアドレス メール

    APIリファレンス

    ユーザー

    AddUsers

    ユーザーアカウントを追加します。

    AddWindowsUsers

    Windowsドメインにユーザーアカウントを追加します。

    DeleteUsers

    指定したユーザーのユーザーアカウントを削除します。

    DeleteWindowsUsers

    指定したWindowsドメインユーザーアカウントを削除します。

    UpdateUserInfo

    指定したユーザーのユーザーアカウント情報を更新します。

    UpdateWindowsUserInfo

    指定したWindowsドメインのユーザーアカウント情報を更新します。

    ResetUserPassword

    指定したユーザーのパスワードを新しくします。

    GetUserInfo

    指定したユーザーのユーザーアカウント情報を取得します。

    GetWindowsUserInfo

    指定したWindowsドメインのユーザーアカウント情報を取得します。

    GetUserInfos

    Forguncyのユーザーアカウント情報をすべて取得します。
    ロール名を指定することで、そのロールのユーザーアカウント情報を取得できます。

    GetWindowsUserInfos

    Windowsドメインのユーザーアカウント情報をすべて取得します。
    ロール名を指定することで、そのロールのユーザーアカウント情報を取得できます。

    ロール

    AddRole

    ロールを追加します。

    DeleteRole

    ロールを削除します。

    UpdateRoleName

    ロール名を変更します。

    GetRoles

    登録しているロールをすべて取得します。

    AddUsersToRole

    ユーザーをロールに追加します。

    AddWindowsUsersToRole

    Windowsドメインのユーザーをロールに追加します。

    RemoveUsersFromRole

    指定したユーザーをロールから削除します。

    RemoveWindowsUsersFromRole

    指定したWindowsドメインのユーザーをロールから削除します。

    組織

    AddOrganizationLevel

    組織レベルを追加します。

    DeleteOrganizationLevel

    組織レベルを削除します。

    UpdateOrganizationLevel

    組織レベルを変更します。

    GetOrganizationLevels

    組織レベルを取得します。


    AddOrganization

    組織を追加します。
    オプションのOrganizationLevelを指定すれば、組織レベルを割り当てた組織を追加できます。

    DeleteOrganization

    組織を削除します。

    UpdateOrganizationInfo

    組織を更新します。

    GetOrganizationInfos

    組織情報を取得します。

    AddUsersToOrganization

    ユーザーを組織に追加します。

    AddWindowsUsersToOrganization

    Windowsドメインのユーザーを組織に追加します。

    RemoveUsersFromOrganization

    指定したユーザーを組織から削除します。

    RemoveWindowsUsersFromOrganization

    Windowsドメインのユーザーを組織から削除します。

    MoveEntireOrganization

    組織全体を移動します。

    拡張属性

    AddExtendedProperty

    拡張属性を追加します。

    DeleteExtendedProperty

    拡張属性を削除します。

    UpdateExtendedPropertyName

    属性名を変更します。

    GetExtendedProperties

    拡張属性を取得します。