ユーザーアカウント管理REST APIは、Forguncyのユーザー管理サービスに対して、新しいユーザーを作成する、作成したユーザーをロールに追加するといったすべてのユーザー管理に必要な操作をREST APIで提供します。
フォーム認証のユーザーとWindows認証のユーザーで使用するAPIが異なる場合があります。また、SAML 2.0用認証プロバイダー、およびOffice 365(Microsoft Entra ID)用認証プロバイダーのユーザーはフォーム認証のユーザーとして作成します。
ユーザーアカウント管理REST APIには、Forguncy v8以前から提供されているv1とForguncy v10から追加されたv2があり、URLのパスが異なります。
バージョン |
URLのパス |
---|---|
v1 |
/UserService/Manager/User/ 配下のAPI |
v2 |
/UserService/Manager/User/V2/ 配下のAPI |
v2のAPIにはv1のAPIを再実装したものがいくつか存在し、これらはForguncyの新しいバージョンの機能に則したものになっていますので、後継のあるAPIはv2を使用することを推奨します。v1のAPIも引き続き利用可能です。
v1とv2のAPIの構成はリファレンスヘルプの「User Service API(ユーザーアカウント管理 REST API)一覧」を参照してください。
本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」に変更される点に注意してください。
Forguncy Server環境:http://localhost:22345/UserService/Manager/User/AddUsers
Forguncy Builder環境でのデバッグ:http://localhost:<開発時ユーザーアカウント管理のポート番号>/Forguncy/Manager/User/AddUsers
上記のようなトラブルを防ぐためにも、Origin部分はユーザーアカウント管理のベースURL取得コマンドを使用して取得することをおすすめします。
リクエスト本文にJSONデータを指定するリクエストの場合は、Content-Typeヘッダーに「application/json」を指定する必要があります。
次のコードは、「Bob」と「Andy」の2人のユーザーを作成、「Group1」という組織を作成し、その組織に作成したユーザー2人を追加するC#のサンプルコードです。
C# |
コードのコピー |
---|---|
public static async Task<ResultDataBase> MoveRoleOrFolderV2Async(int sourceRoleOrFolderId, bool sourceIsRole, int targetRoleOrFolderId, bool targetIsRole, int moveType) { HttpClient httpClient = HttpClientFactory.Create(); var jsonContent = JsonContent.Create(new { DragNodeId = sourceRoleOrFolderId, IsDraggedRole = sourceIsRole, DropNodeId = targetRoleOrFolderId, IsDroppedRole = targetIsRole, MoveType = moveType }); var response = await httpClient.PostAsync("http://localhost:32356/Forguncy/Manager/Role/V2/MoveRoleOrFolder", jsonContent); response.EnsureSuccessStatusCode(); var resultString = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<ResultDataBase>(resultString); } public static async Task<ResultDataBase> AddOrganizationV2Async(int organizationLevelId, string departmentName) { HttpClient httpClient = HttpClientFactory.Create(); var jsonContent = JsonContent.Create(new { OrganizationName = departmentName, OrganizationId = organizationLevelId }); var response = await httpClient.PostAsync("http://localhost:32356/Forguncy/Manager/Organization/V2/AddOrganization", jsonContent); response.EnsureSuccessStatusCode(); var resultString = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<ResultDataBase>(resultString); } public static async Task<ResultDataBase> SetUsersForOrganizationsV2Async(int organizationId, string userName) { HttpClient httpClient = HttpClientFactory.Create(); var jsonContent = JsonContent.Create(new { OrganizationIds = new int[] { organizationId }, UserNames = new string[] { userName } }); var response = await httpClient.PostAsync("http://localhost:32356/Forguncy/Manager/Organization/V2/SetUsersForOrganizations", jsonContent); response.EnsureSuccessStatusCode(); var resultString = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<ResultDataBase>(resultString); } public static async Task<ResultDataBase> MoveOrganizationV2Async(int sourceOrganizationId, int targetOrganizationId, int moveType) { HttpClient httpClient = HttpClientFactory.Create(); var jsonContent = JsonContent.Create(new { OrganizationId = sourceOrganizationId, TargetOrganizationId = targetOrganizationId, MoveType = moveType }); var response = await httpClient.PostAsync("http://localhost:32356/Forguncy/Manager/Organization/V2/MoveOrganization", jsonContent); response.EnsureSuccessStatusCode(); var resultString = await response.Content.ReadAsStringAsync(); return JsonConvert.DeserializeObject<ResultDataBase>(resultString); } |
SAML 2.0用認証プロバイダー、およびOffice 365(Microsoft Entra ID)用認証プロバイダーのユーザーを作成したい場合、フォーム認証のユーザーとして作成しますが、ユーザー名をプロバイダーの該当する項目と一致させる必要があります。
プロパティ | オプション | SAML 2.0 | Office 365(Microsoft Entra ID) |
---|---|---|---|
ユーザー名 | 必須 | SAML_SUBJECTにマップされている項目 | オブジェクト ID |
氏名 | 省略可 | ユーザー名 | 表示名 |
パスワード | 必須 | 任意のパスワード ※ 本パスワードはSAML IdP側のパスワードとは無関係であることに注意してください。作成したユーザーがフォーム認証でログインする際にはこのパスワードが要求されます。 |
任意のパスワード ※ 本パスワードはMicrosoft Entra ID側のパスワードとは無関係であることに注意してください。作成したユーザーがフォーム認証でログインする際にはこのパスワードが要求されます。 |
メールアドレス | 必須 | メールアドレス | メール |