GAM のユーザーは、
GeneXus Access Manager データベースの User テーブルに格納されます。
User テーブルに格納される資格情報は、GAM で使用される
認証タイプによって異なります。
認証タイプが
ローカルの場合、ユーザーの資格情報は GAM User テーブルに格納されます。GAM が資格情報にアクセスできるのは、この場合のみです。認証タイプが
外部、
Twitter、
Google、または
Facebook の場合、ユーザーの資格情報は、それらの外部 ID プロバイダーに属します。
アプリケーションのモデル設計に応じて、ユーザーの情報すべてを GAM User テーブルに配置することも、アプリケーションの任意のテーブルに配置することもできます。アプリケーションの任意のテーブルに配置する場合、ユーザー情報が GAM 外部のテーブルに配置されるため、GAM がセキュリティ上の問題を解決できるように、情報をマッピングする必要があります。詳細については、「
アプリケーションユーザーを GAM ユーザーにマッピングする方法」を参照してください。
このドキュメントでは、次の点について説明します。
ユーザーは、User GAM テーブルの GUID によって識別されます。また、"<ユーザー名前空間 (UserNameSpace)> \< 認証タイプ (UserAuthTypeName)> \ <ユーザー名 (UserName)>" は、
候補キーです。
作成されると、ユーザーはユーザーが定義されている
リポジトリの名前空間を取得します。
ユーザー名、ログイン名、ニックネームなどのほかのプロパティを使用してユーザーを参照できます:
GAM API: GAM ユーザーを参照する方法。
データベースでは大文字と小文字は区別されますが、GAM はユーザー名の大文字/小文字の区別をサポートしません。「John」という名のユーザーを挿入しようと試みても、ユーザー名が「john」である別のユーザーが既に存在する場合、次のようなエラーがスローされます: ユーザー名が既に存在します(GAM49)。
delete メソッドを使ってユーザーを論理的に削除できます:
&GAMUser.Load(&GAMGUID)
if &GAMUser.Success()
&GAMUser.delete()
endif
endif
ユーザーの削除を取り消すには、undelete メソッドを使います:
&GAMUser.Load(&GAMGUID)
if &GAMUser.Success()
&isOK = &GAMUser.UnDelete(&GAMErrors)
if &IsOK
commit
else
// GAM のエラーを表示
endif
endif
別の方法として、ユーザーを物理的に削除できます (ユーザーとそのすべてのリレーションがデータベースから削除されます):
&GAMUser.Load(&GAMGUID)
if &GAMUser.Success()
&isOK = &GAMUser.PhysicalDelete(&GAMErrors)
if &isOK
commit
else
// GAM のエラーを処理
endif
endif
「
外部 IDP でトークンを無効にする方法」を参照してください。
GAMUser 外部オブジェクト (GAM がアクティベートまたは更新されるときにインポートされる) は、アプリケーション内の GAM User を管理するために使用されます。
GAM API の一部であり、これを使用して、プロパティの処理やユーザーに関するさまざまなアクションを実行できます。
GAM API を使用してユーザー同士の関連を管理する方法の例の詳細については、次のリンクを参照してください:
配布された
GAM Examples (特に GAMExampleWWUsers オブジェクトおよび GAMExampleEntryUser オブジェクト) には、さらに多くのサンプルが含まれます。
User テーブルの構造では、UserFirstName、UserLastName、UserBirthday、UserGender、UserPhone などを格納できます。User テーブル構造で提供されない情報を格納する必要がある場合、OAV に基づくアプローチを使用して User テーブルのプロパティを拡張できます。このアプローチについては、「
GAM エンティティプロパティの拡張性」、および「
GAM User テーブルの拡張: 項目属性に複数の値を持たせる方法」を参照してください。
GAM が最初にアクティベートされるときに (
[ Enable Integrated Security ] プロパティを True に設定)、プロトタイピングのために admin ユーザーが作成されます。admin を使用して
GAM Backoffice にログインし、GAM の使用を開始できます。その後、アプリケーション用に新しいユーザーを作成できます。詳しくは、「
GAM の使用」を参照してください。
Import Users - GAM Deploy Tool
GAM API を使用してユーザー別にデータをフィルタリングする方法