役割設定管理者
PortalRoleAdmin はポータルロールの管理ページで、ポータルがどのロールを持っているか、そして新たに登録されたユーザーにどのロールが割り当てられているかを示します。両方のスタックにフレームワークが付属しているため、ポータルはパッケージを更新することで改善を受け取ります。あなたが書いたページがロールゲートと見出しです。
ページの内容
2つのグリッドで、それぞれ「New」「Open」「Delete」があります。すべての変更は保存または削除した瞬間に書き込まれます — ページレベルの保存はありません。
- ポータルの役割 — 名前と説明をサイドパネルで編集しています。ロールが 付与する 内容はここでは設定されていません。起動時のコードでロール名にバインドされているため、ロールを追加すると強力ではなく割り当て可能になり、名前を変更すると付与内容から切り離されます。
- 役割構成 — 新たに登録されたユーザーにどの役割が与えられ、いつ与えられるか――誰にも与えられない、全員に、あるいはあなたが書いたルールに合致する誰かに。
資格を決めるルール
ルールとは contact上のFetchXMLクエリです。誰かが登録すると、ポータルはその連絡先にクエリを絞り込み、Dataverseが返せば役割を割り当てます。関連するテーブルへのジョインは尊重され、列、ソート、 top は回答に影響しないため、ビューからコピーしたクエリはそのまま動作します。
Reactでは、 FetchXMLクエリビルダーをContactにピン留めし、集約をオフにして独立したページに書き、ビルダーにスペースを確保します。 Runは ルールが今日マッチする連絡先を表示します。これが、あなたが意図した人物を選んでいるかどうかを知る唯一の方法です。
Blazorでは同じ列がFetchXMLテキストとして編集されています。まだBlazorクエリビルダーはありません。
破られたルールは静かに失敗する
空のルール、有効なFetchXMLでない、集約クエリ、またはContactが誰 にもマッチしないテーブルに根ざしているルール。エラーとして報告されるものは何もありません — 単に役割が割り当てられていないだけです。Reactエディタはルール作成中にビルダーの上でこれらの各点について警告します。
ポータルに追加する
両方のプロジェクトテンプレートにはすでにこのページが含まれています。/RoleConfigurationAdmin、管理者メニューの下にあります。自分で追加するには、ReactやuseIsSystemAdmin()でゲート[AuthorizeSystemAdmin]と<SystemAdminView>を設定し、コンポーネントを以下に置いてください。
// リストページ:役割とその構成。
<PortalRoleAdmin
configurationUrl={(id) => `/RoleConfigurationAdmin/Configuration/${id ?? 'new'}`}
onNavigate={(url) => navigate(url)}
/>@attribute [Route("admin/role-configuration")]
@attribute [AuthorizeSystemAdmin]
@using PowerPortalsPro.Web.Blazor.FluentUI.Components
<SystemAdminView>
<Authorized>
<PortalRoleAdmin />
</Authorized>
</SystemAdminView>設定ページ(React)
configurationUrl サイドパネルではなく、独自のページで構成を開きます。オフにするとパネルが使われますが、クエリビルダーのスペースがほとんど残りません。指向するページはレコードコンテキストと保存ボタンを提供します。フォーム自体がフレームワークの PortalRoleConfigurationFormです:
// /RoleConfigurationAdmin/Configuration/:id にマウント — 「new」が作成します。
const { id } = useParams();
const isCreateMode = id === 'new';
<RecordContext table="ppp_portalroleconfiguration" {...(isCreateMode ? {} : { id })}>
<SaveContextButton appearance="primary" />
<PortalRoleConfigurationForm />
</RecordContext>
強化認可下のウェブロール
強化認可を実行するポータルでは、ユーザーにはポータルロールではなくPower Pagesの ウェブロール が与えられます。Power Pagesは各ユーザーにそれぞれのWebロールとペアリングするDataverseセキュリティロールを付与し、その役割が許可する権限はサイトのテーブル権限から得られます。 WebRoleAdmin はそのモデルの PortalRoleAdmin に対応しており、サイトのウェブロール、 テーブル権限 (どのテーブル、どの行、どの操作、どのウェブロールに適用されるか)、そしてウェブロールを新規ユーザーに渡すルール(上記とまったく同様)から成り立っています。ルールは Power Portals Pro Enhanced Authorization ソリューションに存在し、環境にPower Pagesをインストールする必要があります。
両方のプロジェクトテンプレートは、どのページが適用されるかを示します。管理者メニューは強化認可がオンのときにWebロール、オフのときはロール設定が表示されます。自分のナビゲーションも、Blazorの ISecurityModelInfo.IsEnhancedAuthorizationEnabledAsync() やReactの useAuthOptions() で同じ選択をすることができ、どちらも GET /api/auth/optionsから回答されています。
<WebRoleAdmin
configurationUrl={(id) => `/WebRoleConfigurationAdmin/Configuration/${id ?? 'new'}`}
onNavigate={(url) => navigate(url)}
/><WebRoleAdmin />テーブル権限のテーブルや関係は、綴り間違った名前が受け入れられて何も与えられないため、環境のメタデータから選ばれます。関係フィールドはアクセスタイプに従っています:連絡先とアカウントは、行がユーザーの連絡先やアカウントにどのように到達するかを尋ね、親は親権限と行がテーブルに到達する方法を求め、カスタムはReactの FetchXMLクエリビルダー で書かれたFetchXMLフィルター、Blazorのテキスト形式で作成します。権限のウェブロールはそれとともに保存され、新しい権限も含まれています。グリッドはその理由で一度に一つの権限を編集します。
変更はPower Pagesを通じてDataverseに届きます
Webロールとテーブル権限はPower Pages独自のレコードであるため、このページとPower Pages管理アプリは同じデータを編集し、
SecurityOptions.DataverseSecurity.PowerPagesSiteIdのサイトのみが表示されたり変更したりします。Power Pagesは、Webロールのテーブル権限を、独自のスケジュールでウェブロールとペアリングするセキュリティロールに変換します。新しいWebロールはそのペアリングが存在するまで何も付与せず、役割や権限の変更がサインインしたユーザーに届くまでに1〜2分かかることがあります。別のサイトのウェブロールを命名するルールはスキップされ、ポータルがログを記録します。
API参照
PortalRoleAdmin クラス
パラメータ
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
ConfigurationUrl | string? | 構成が編集される場合、その構成のIDが |
ConfigurationUrlPortalRoleConfigurationForm
PortalRoleConfigurationForm クラス
性質
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
Record | TableRecord? | ルールが修正されている。 |
RecordWebRoleAdmin
WebRoleAdmin クラス
パラメータ
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
ConfigurationUrl | string? | 構成が編集される場合、その構成のIDが | |
PermissionUrl | string? | テーブル権限が編集される場合、その権限の |
ConfigurationUrlPermissionUrlWebRoleConfigurationForm
WebRoleConfigurationForm クラス
性質
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
Record | TableRecord? | ルールが修正されている。 |
RecordWebRoleForm(ウェブロールフォーム)
WebRoleForm クラス
TablePermissionForm
TablePermissionForm クラス
性質
名称 | 種類 | デフォルト | 概要 |
|---|---|---|---|
Record | TableRecord? | テーブルの許可が編集中です。 |
Record