最近のアクセス:
GXflow と GAM の統合

GXflow が GeneXus Access Manager (GAM) と統合されている場合、すべてのユーザーおよびロールの (セキュリティの問題に関する) 管理は GAM に委任されます。ロールおよびユーザーに関する情報が GAM に格納されている場合も、GXflow テーブルにも同じ情報が格納されます。
したがって、アプリケーションの適正なフローを保証するため、ユーザーおよびロールを GAM から GXflow へ、またはその逆へ同期する必要があります。GeneXus IDE でロールをタスクに割り当てる必要があります。GAM でアプリケーションのセキュリティに対処するため、GXflow テーブルでスケジュールされているさまざまなタスクを割り当てるために、ユーザーおよびロールを同期する必要があります。
同期はグローバルでも (任意の方向 (GXflow から GAM へ、または GAM から GXflow へ) でユーザーとロールおよびその関係を同期します)、対話形式でも行うことができます。
警告: GXflow を GAM と統合する際には、リポジトリ設定で既定として設定されている 1 種類の認証しか使用されません。カスタム認証を使用する GAM は (LDAP などを介して) 外部の資格情報を確認します。ユーザー管理のために Workflow API を使用する場合は、それが credentials provider から提供されていることを確認する必要があります。
 

ユーザーおよびロールのグローバルな同期

1. ユーザーの同期

GAM から GXflow へ GXflow から GAM へ
1. GXflow public ロールを GAM バックオフィスからまたは GAM API によってユーザーに割り当てると、このユーザーが GXflow データベースにも作成されます。 1. apwfmigrateuserstogam プロシージャーを実行することで、ユーザー、ロール、およびその関係が GAM に同期されます (手動同期)。
2. apwfsynchronizegamusers プロシージャーを実行することで、GXflow にユーザーがグローバルに同期されます (手動同期)。 2. ビルドプロセスで自動的に同期が実行されます。
=== ワークフローユーザーを GAM に移行 開始 ==========
.....
ワークフローユーザーを GAM に移行 成功

  • 制限事項: GAM ユーザー名を変更すると、GXflow は、同期時に新しいユーザーとして扱います。その場合、両方のユーザー名 (変更後のユーザー名と変更前のユーザー名) が GXflow で共存することになりますが、変更後のユーザー名が GAM ユーザーに対応します。
  • ユーザーがログインできるようにするには、GXflow public ロールをそのユーザーに直接割り当てる必要があります。GXflow public を子ロールとして持つロールを割り当ててもユーザーはログインできません。
 

2. ロールの同期

GAM から GeneXus IDE へ GeneXus IDE から GAM へ
1. ナレッジベースを開いているとき、GAM で作成、更新、削除されたロールが GeneXus IDE で作成、更新、削除されます。
ロールは、 [ 設定 ] の [ ワークフロー ] にある [ ビジネス プロセス ダイアグラムのロール ] オプションで確認できます。
この場合、GAM から GeneXus への同期は、ナレッジベースを開いたときに自動的に行われます。
1. GeneXus から GAM へロールの自動同期が行われるのは、次の場合です:
  • 最初にナレッジベースを開いたとき
  • [ すべてビルド ] の実行時
  • [ すべてリビルド ] の実行時 
  • デプロイ時
[ ビルド ] 出力ウィンドウに次のメッセージが表示されます:
===ロールを GAM にエクスポート 開始 ===
.....
Role RoleName1 successfully exported
Role RoleName2 successfully exported
.....
ロールを GAM にエクスポート 成功
2. ロールを手動で同期化するには、apwfmigraterolestogam プロシージャーを実行するしかありません。
これは GeneXus X Evolution 3 Upgrade 5 以降で利用できます。
2. [ ツール ] -> [ ワークフローツール ] -> [ GAM ロールを同期 ] オプションを使用しても、強制的に同期化を行うことができます。 3. [ ツール ] -> [ ワークフローツール ] -> [ GAM ロールを同期 ] オプションを使用しても、強制的に同期化を行うことができます。

  • 自動同期を無効にするには、 [ DisableGamRolesSync ] プロパティを True にした config.gx (このファイルが存在しない場合は、Models ディレクトリー内に作成する必要があります) を使用します。

 

手動同期を実行する方法

プロシージャー apwfmigraterolestogam はロール情報を GXflow データベースから GAM データベースに移行させます。 
プロシージャー apwfmigrateuserstogam はユーザー情報とそのユーザーに割り当てられたロールを GXflow データベースから GAM データベースに移行させます。また、GXflow Public ロールを GAM データベースのユーザーに自動的に追加します。
プロシージャー apwfsynchronizegamusers は、GAM データベースに定義され、GXflow Public ロールを持つすべてのユーザーについて、ユーザー情報とロール割り当てを GAM データベースから GXflow データベースに更新します。 
手動同期を実行するには、次のコマンドラインを使用します:

.NET

同期プロシージャーは \bin フォルダ内にあります。次のように実行します:
C:\Models\...\CSharpModel\web>bin\apwfmigraterolestogam.exe

C:\Models\...\CSharpModel\web>bin\apwfmigrateuserstogam.exe

C:\Models\...\CSharpModel\web>bin\apwfsynchronizegamusers.exe

.NET Core

同期プロシージャーは \bin フォルダ内にあります。次のように実行します:
C:\Models\...\NetCoreModel\web>bin\dotnet apwfmigraterolestogam.dll

C:\Models\...\NetCoreModel\web>bin\dotnet apwfmigrateuserstogam.dll

C:\Models\...\NetCoreModel\web>bin\dotnet apwfsynchronizegamusers.dll

Java

同期プロシージャーは <アプリケーション>\WEB-INF\classes\com\gxflow フォルダ内にあります。このプロシージャーを実行するには、現在の作業ディレクトリーを "\classes" レベルのフォルダに設定し、次のように実行します:
C:\..\<アプリケーション>\WEB-INF\classes>java -cp ".;..\lib\*" com.gxflow.apwfmigraterolestogam

C:\..\<アプリケーション>\WEB-INF\classes>java -cp ".;..\lib\*" com.gxflow.apwfmigrateuserstogam

C:\..\<アプリケーション>\WEB-INF\classes>java -cp ".;..\lib\*" com.gxflow.apwfsynchronizegamusers
Java を使用する場合は、connection.gam ファイルが C:\..\<アプリケーション>\WEB-INF\classes にあることを確認してください。さもないと、次のようなエラーメッセージが表示されます:
"無効な GAM リポジトリ。GXflow ロールが必要です" エラーまたは "エラー 2: リポジトリが見つかりません。アプリケーションの管理者にお問い合わせください」
​​​​​​java -cp ".;..\lib\*" com.gxflow.apwfsynchronizegamusers
Invalid GAM repository, GXflow roles required
java -cp ".;..\lib\*" com.gxflow.apwfmigraterolestogam
ロール: GXflow Public
Error 30: The connection to GAM was not found.Please contact the application administrator.
ロール: All
Troubleshooting the GXflow-GAM manual synchronization」を参照してください。  
 

ユーザーおよびロールの対話形式による同期化

GeneXus X Evolution 3 Upgrade 6 よりも古いバージョンでは、ユーザーおよびロールの処理には、GXflow APIGAM API の両方を使用する必要があります。
GeneXus X Evolution 3 Upgrade 6 以降は、GXflow API でのユーザーおよびロールの処理が、GAM のユーザーおよびロールに直接影響を及ぼします。「GAM に統合された GXflow API」を参照してください。このため、GXflow マネージメントコンソールの GXflow API を使用するだけです。

ユーザーの指名

GAM Backoffice からユーザーおよびロールを追加できます。なお、"GXflow Public" ロールをユーザーに追加する場合、GXflow はそのユーザーに対してログイン操作時にユーザーの指名を試行します (ユーザーがまだ指名されていない場合)。

注:

GeneXus 15 Upgrade 4 以降:
  • [ GXflow Public ] ロールをユーザーに追加する場合、ロールが作成され、利用可能な指名ユーザーライセンスがある場合はユーザーの指名が試行されます。ユーザーが作成されておらず、GAM に統合された GXflow API を使用する場合、ログイン操作時に (ユーザーが存在しない場合は) 作成され、指名が試行されます。
  • GAM Backend のユーザーとロールに対するすべての CRUD 操作は、GXflow クライアントに自動的に反映されます。その逆も同様です。以前のバージョンの GeneXus を使っている場合は、GAM に統合された GXflow API を使って、ユーザーとロールを手動で処理することに制限されています。

参考情報

GXflow と GAM の初期化
GAM で GXflow クライアントをカスタマイズする方法
Business Process Deployer



サブページ
Created: 14/09/18 03:12 by Admin Last update: 24/11/05 17:44 by Admin
カテゴリ
Powered by GXwiki 3.0