1

私は、さまざまな領域と非常に細かい権限を持つアプリケーションのフェデレーションに取り組んでいます。さまざまな領域のそれぞれに、サーバーと通信するためのフェデレーション WCF エンドポイントがあります。パーミッションがきめ細かく設定されているため、すべてのパーミッションを含む 1 つのトークンは最大 1MB、場合によってはそれ以上になる可能性があります。

要件では、最初のログイン プロセスの後、ユーザーのユーザー名とパスワードの資格情報をコード ベース内に保持してはならないことが規定されています。アクセス許可を組み合わせて小さなセットを作成することはできません。STS の実装に Thinktecture.IdentityServer を使用しています。

私が提案する解決策は、STS で各エンドポイントを独自のレルムに分割することです。STS は、レルムに対して指定されたアクセス許可クレームを含むトークンを返します。これを達成するには、ユーザー名/パスワードによって認証され、ユーザー、テナント、およびサブグループ ID を含むトークンを返す Auth レルムが必要です。これらの ID は、他のレルムへの認証のための資格情報として使用できます。

レルムに固有のトークンを発行するための STS のセットアップは、既に実装されています。残っている唯一の要件は、ユーザー名/パスワードがコード ベース内に保持されていないことです。

特定のレルムから以前に発行されたトークンを提供することにより、認証を許可するように STS を構成することは可能ですか? 私が思いつかなかったより良い解決策はありますか?

4

2 に答える 2