はい、少なくともこの機能セットの v1 においては、明示的に設定する方がよいと感じます。まだ、自動作成が本当に必要とされるユースケースに出会ったことはありません。つまり、クレームの処理が行われる前に、サイト管理者がグループを設定・構成できるからです。
明示的なバージョンを実装した後、オプションとして自動作成に移行することは可能でしょうか?
グループ設定の観点では、以下のような形になります。
設定セクション: メンバーシップ(既存のセクション)
設定グループタイトル: 認証管理
設定:
- サービス: 認証サービスのリスト。「すべて」もオプションとして含めます。この設定は、この機能セットの有効化/無効化の状態としても機能します。つまり、デフォルトは「なし」になります。
- クレーム: ID トークンのクレームを特定するためのテキスト入力。この機能の「説明」(おそらく Meta のこのスレッド内にあるもの)では、サポートされている形式(ブール値、カンマ区切りの文字列など)を説明します。
- モード: 後述
はい、「厳密」または「許容」の設定がある場合、それを簡潔に説明する必要があります。そのアプローチとしては、「追加」と「削除」に焦点を当てるのがよいと思います。以下のように説明できるかもしれません。
設定: 「モード」
オプション 1(許容):
- ラベル: 「メンバーの追加」
- 説明: 「認証時にメンバーをこのグループに追加することを許可する」
オプション 2(厳密):
- ラベル: 「メンバーの追加と削除」
- 説明: 「認証時にメンバーの追加と削除の両方を許可する。これにより、手動でのメンバーシップ制御は無効になります。」
「許容」オプションを維持したいと強く考えている理由は、以前この種の作業をクライアントと行った際、最も一般的なユースケースだったからです。つまり、
-
主なニーズは、外部サービスの状態に応じてグループへのアクセスを許可することです。
-
外部サービスの状態に応じてアクセスを削除するニーズはより限定的です。つまり、アクセスを失い削除されるべき人はいますが、これは比較的あまり重要ではありません。
-
往々にして、Discourse 上でメンバーシップを手動で制御できる機能を維持したいという要望があります。「厳密」なアプローチを実装した際、これは(説明を行ったにもかかわらず)「驚き」を招くことがありました(「なぜ X さんがメンバーシップを失ったのか?」など)。しかし、機能としては(技術的に)正常に動作していました。
はい、これは重要です。特に「厳密」モードでは、誰かが追加または削除された理由を人々が疑問に思うことがよくあるからです。また、私たち(つまり「Discourse」)は、外部認証サービスが提示するクレームの真偽を制御することはできません。
そのアクションを担当した認証サービスを含む「ユーザーの削除」と「ユーザーの追加」の新しいアクションタイプを作成するのはどうでしょうか。つまり、「ユーザーの削除([サービス名])」のように。