Power Pagesの管理 ~入門編~

最近アツいPower Pagesについて、作ったサイトの管理に使う機能・ツールのご紹介をします。
管理者側でどのような設定をすることができるのか、セキュリティ、ファイアウォールなど、気になるところを書いていきます。

Power Pagesの管理に主に使うのは以下の3つです。
1. [ポータル管理センター](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/admin/power-platform-admin-center)
    **サイトを運営される方**がサイトを管理するときに使うツールです。

2. [ポータル管理アプリ](https://learn.microsoft.com/ja-jp/power-apps/maker/portals/configure/configure-portal)
**サイトを開発する方**がサイトを管理するときに使うツールです。

3. [CoE スターターキット](https://learn.microsoft.com/ja-jp/power-platform/guidance/coe/starter-kit)
ポータル管理センターやポータル管理アプリではできないようなデータ分析や管理自動化の機能が備わっています。こちらは、上の2つとは異なり、ユーザー自身で環境に入れて設定する必要があるツールです。

今回は規定で環境にある「ポータル管理センター」「ポータル管理アプリ」のご説明をします。

# ポータル管理センター
## 概要
ポータル管理センターの実際の画面がこちらです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/53a820ee-5ebc-d4a4-0c18-194c9bc8cb16.png)

実は、このポータル管理センターは移行中なので、昔の画面も開くことができます。画面上側にある「クラシックに切り替える」を押すと昔の画面を開くことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1f0c3121-af96-69e1-bf7e-33097af60f91.png)

こちらは管理者ロールがないと開くことができません。

では、管理センターでできることを紹介します。
## できること
### 詳細設定
「サイトの詳細」の「編集」を押すとサイトの名前やサイトのタイプ、URLなどの設定をすることができます。
「ポータルの初期アップグレードを有効にする」の項目は、チェックを付けると、ユーザーにグローバル公開される1週間以上前からテストポータルでテストすることができるようになります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/c317c0b6-6ad9-fa43-b0f6-9c5c1639fad7.png" width=80%>

### カスタムドメインの設定
サイトを作成した段階でデフォルトではドメインが"powerappsportals.com"になっていますが管理センターで変更することができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e38937d0-842f-ecbf-e4f0-21a007ba352b.png" width=90%>

ただし、カスタムドメインを適用するにはSSL証明書が必要です。SSL 証明書は、信頼された証明機関によって署名されたPFX 形式である必要があります。（詳しくは[後述](https://qiita.com/skuramoto/private/bd35d5362cf669fca78a#%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E7%AE%A1%E7%90%86)）

「サイトの詳細」の「カスタムドメインを接続する」から設定できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/42477f2d-9d1b-ee3c-584a-171467aeff91.png" width=80%>


### IPアドレス制御の設定
IPアドレス制御の機能を使うと、ネットワークアドレスごとにポータルへのアクセスを制御できます。
例えば、社内ネットワークからのみアクセス許可することが出来ます。
アクセス許可するIPアドレスを追加すると、そのIPアドレスからのみアクセスが許可されます。
以下の特徴があります。
- 複数のIPアドレスを追加することができる
- 1つも追加されてない状態だと、すべてのIPアドレスからアクセスできる
- 一覧にない、他のIPアドレスからポータルにアクセスしようとすると、HTTP 403ステータスコードを含むWebページが表示される
- パブリックIPアドレスを指定する必要がある（プライベートIPアドレスからはアクセスできない）


「セキュリティ」の「IP制御」から設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b34435f0-11ed-39be-ab38-4faeadba4ff0.png)

### カスタム証明書の管理
こちらはカスタムドメインの設定に必要なSSL証明書を管理する機能です。

SSL 証明書要件は以下です。
- 信頼できる証明機関による署名
- パスワード保護された PFX ファイル
- 少なくとも 2,048 ビット長の秘密鍵が含まれていること
- 証明書チェーンにすべて中間証明書が含まれていること
- SHA-2で暗号化されていること（SHA-1 サポートは一般的なブラウザーから削除されている）
- トリプル DES 暗号で暗号化されていること（Power Apps ポータルは AES-256 暗号をサポートしていない）
- サーバー認証のための拡張キーの使用法を含む (OID = 1.3.6.1.5.5.7.3.1)

「セキュリティ」の「カスタム証明書」から設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/788462de-e320-6cb3-9dac-0eade5fbc99a.png)

### Webサイト認証キーの更新
Power Pagesでサイトが作成されると、公開鍵が Azure Active Directory アプリケーションにアップロードされた状態で新しい認証鍵が生成されます。 サイトはこの認証キーを使用して、Dataverse 環境に接続します。
2 年ごとにこのキーを更新する必要があるので、この管理センターで更新しましょう。
「セキュリティ」の「Webサイト認証キー」から更新できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b57d1463-600c-183b-52dc-a5a95d836f71.png)

### サイトの表示方法を変更する権限の設定
サイトの公開・非公開の設定ができるユーザーを設定することができます。
Power PagesのDesign Studioでサイトの表示方法を変えることができるのですが、これが誰でも自由にできてしまうとセキュリティ的に心配という場合の設定です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/3b37bed4-0d3a-b27a-92b7-76c21fd99a75.png)
以下の Azure Active Directory ロールのいずれかのメンバーであるサービス管理者はもともとサイトの表示方法を変更できますが、
ここに**別のセキュリティロールやセキュリティグループを追加したり、編集することができます**。

デフォルトで権限のあるロール
- グローバル管理者
- Power Platform 管理者
- Dynamics 365 管理者
- システム管理者(テナントレベルの設定のみ可能)

※セキュリティグループを追加すると、そのグループに属しているユーザーに権限を与えることができます。

「セキュリティ」の「サイトの表示方法へのアクセス許可を管理する」から設定できます。(管理者ロールでないと設定できません。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/92dc3b2b-1180-794d-7aa4-470d1150fc96.png)

### CDNとWAFの設定
CDN（Content Delivery Network）：
ウェブコンテンツを配信するのに、もともとのオリジンサーバーだけではなく複数の「キャッシュサーバー」が、オリジンサーバーの代理でウェブコンテンツを配信します。
これを設定で有効化することでウェブサイト待機時間を最小限にすることができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5e57b13c-02aa-3454-fc02-081ab1804ced.png" width=80%>
WAF(Web Application Firewall): Web アプリケーションの通信をフィルター、監視、ブロックするためのセキュリティ対策のことです。
Web アプリケーションの通信をフィルター、監視、ブロックするためのものなので、一般的なファイアウォールや IDS/IPS と異なります。これもPower Pagesのサイトに設定できます。

WAFの注意事項
- CDNを設定したあとにできるようになる
- WAFを設定するには管理者ロールである必要がある
- WAFは2023年2月1日現在プレビュー

「パフォーマンスと保護」の中でそれぞれ設定することができます。（「パフォーマンス」がCDNで「保護」がWAFですね。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e538bc68-76e8-63a2-3cdf-b76184bb3678.png)

### サイトの正常性のチェック（ポータルチェッカー）
ポータルの管理者がポータル内でよくある問題を特定するために使用できる、セルフ サービス診断ツールを使うことができます。
ポータルチェッカーは、さまざまな構成パラメーターを参照してポータルの問題を識別し、問題があれば、それらを修正するための提案を行います。
この機能はいくつかチェック項目があるのですが、例えば、匿名アクセスになっているテーブルのチェックができるため、「意図しない人がデータを見てしまう可能性をテスト時に確認して、リスクを下げることが出来る」というところが便利です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/78f6fcd0-b68d-d37b-f7cf-fb56e00e849a.png" width=80%>
画面の左下に表示されています。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f581d965-e513-3799-a666-aae1e74583de.png" width=60%>

### Power BI/Sharepoint統合の設定
Power Pagesで作ったサイトに Power BIやSharepointを埋め込むことを許可するかを管理センターで設定することができます。
Power BIやSharepointを埋め込めるようにするといろんなサイト作ることができますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5be6264e-f496-0b15-45a4-77ec9ff7b4bf.png)

右下の「サービス」からそれぞれ設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e58d5df7-d1ff-697a-8acc-72012ad42802.png)

### サイトアクション
他にも「サイトアクション」からサイトの再起動・シャットダウン・削除やカスタムエラーメッセージの無効化、診断ログの有効化、メンテナンスモードを有効化することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e0032fe6-176d-1a27-ab03-5c4075783640.png)


- カスタムエラーメッセージ
一般的なエラーではなく、プロフェッショナルなデザインのカスタム エラーを表示することができます。
- 診断ログ
Azure Blob Storage サービスの接続文字列: ポータル エラー ログを格納する Azure Blob Storage サービスの URL。 この URL の長さの上限は 2048 文字です。 URL の長さが 2048 文字を超えると、エラー メッセージが表示されます。
保持期間の選択: Blob Storage でポータル エラー ログを保持する期間。
(1 日,7 日,30 日,60 日,90 日,180 日,常時)
既定では、保持期間は 30 日です。

また、サイトアクションの横の三点リーダーを開くと、Dynamics(CRM,ERP)系の設定ができるようになっています。（Dynamicsが入っている環境でのみ使える機能です。）
- Dynamics365インスタンスを管理する
- Dynamics365のURLを更新する
- メタデータ更新
- Field Service拡張機能をインストールする
- Project Service拡張機能をインストールする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/10a43190-7d76-3b9f-a8cf-3f245a01f1c7.png)


## 開き方
いろんな開き方がありますが、よく使いそうな方法をご紹介します。

::: note warn
管理者ロールが付与されているユーザーでないと開けないのでご注意ください。
:::
### ①Power Pagesの作成画面から
Power Pagesで実際に作成してる段階で管理センターを開きたい場合は、Power Pagesの作成画面（Design Studio）の設定ワークスペースを開き、[サイトの詳細]>[管理センターを開く]をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ddf630a9-9775-57ea-523d-1a594d5944a6.png)

すると、編集していたサイトの管理画面（ポータル管理センター）を直接開くことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/c75fc866-6a7a-e6a7-aeb2-c04565600baa.png)

### ②Power Platform管理センターから

ブラウザのアドレスバーに「aka.ms/ppac」と入力するか、Power Appsの画面を開いている場合は歯車マークを開いて「管理センター」をクリックするとPower Platform管理センターを開くことができます。ポータル管理センターはこのPower Platform管理センターの中にあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/5814fe39-3973-d028-97cd-ffa75daa9290.png)

すでにテナント内で作成されたサイトの一覧が表示されます。ここから管理したいサイトを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b2b76809-0c3b-79f7-e5ed-9c094808cd56.png)


# ポータル管理アプリ
## 概要
ポータル管理アプリを使用すると、アクセス権を設定したり、HTMLやCSSを使ってデザインを細かく設定することができます。
実際の画面が以下のようになっています。「モデル駆動型アプリ」と呼ばれるタイプのPower Appsのアプリで作られています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/179cdcec-bff9-8a4e-207b-da89391c723f.png)

このアプリはデフォルトでは`システム管理者`ロール、`システムカスタマイザー`ロールの人が開くことができますが、セキュリティロールを追加することもできます。
その為、例えば、サイトを**構築するベンダーさん用にこのアプリの権限を設定する**こともできます。

## できること
いろんなことができるのですが、ここでは代表的な機能をご紹介します。
### サイトの言語設定
ウェブサイトのデフォルトの言語設定をすることができます。
「Webサイト」の「WebSite」フォームの「規定の言語」がこのサイトの言語になっています。
ここを変更するには、下の「サポートされている言語」セクションの「Webサイト言語の新規追加」を押して該当の言語を追加する必要があります。

#### 簡単な設定方法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b267d92a-2b0f-20e0-0e5b-c5dd77fabed0.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ffa4ded6-4457-83de-5b85-d119f860cb75.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/a1bdc205-c8c1-09c9-1240-73ec0bd9fdcc.png)

### ヘッダー・フッター・テンプレートの作成、管理
ここでサイト共通のヘッダー・フッターやWebテンプレート、ページテンプレートをHTML Source（その中にCSSやJavaScriptなどを埋め込むことは可能）で設定することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1acae752-9df3-46bd-d797-3a2b6f840979.png)


### ログインユーザーの管理
社外の人はＷｅｂサイトから登録した時、社内の人はAzure ADで初回ログインした時などに、ユーザー情報として、取引担当者のテーブルに情報が保存されます。登録されたらポータル管理アプリで管理することができます。
「取引先担当者」の「Portal Contact」フォーム、「Web認証」タブに認証の情報が入っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/949271c4-59b8-750b-4035-4c660e2579bd.png)



### ロールの管理
認証されたユーザーにテーブルのアクセス許可や制限されたページへのアクセス権を付与する前に、あらかじめ Web ロールを作成しておく必要がありますが、それをこのポータル管理アプリを使ってできます。

デフォルトであるのが以下なので、もっと役職ごとや会社ごとなどで分けたい場合は新規で作ります。
- 匿名ユーザー
- 認証ユーザー
- 管理者

#### 簡単な設定方法
例えば、社外用のロールを作って、それを社外のユーザーに割り当てます。
[Webロール]を選択して、[新規]で新しいロールを作成します。
名前を付けて、このロールを使いたいロールを選択して、認証ユーザーにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/f51a2593-2cdd-d114-f442-41b4e4182003.png)
[関連]タブ>[取引先担当者]を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/7ab8579c-5463-d4d0-b662-246c83cea101.png)
[既存の取引先担当者の追加]を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/0966db78-4701-3449-177e-15c6fa11d775.png)

検索して該当のユーザーを追加します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/6d6c3952-5bfb-307c-d78a-0ce3b44d992a.png" width=40%>

追加されました。この一覧に表示される人がこのWebロールに割り当てられているユーザーです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/83419fea-0309-b6c2-5160-561c958aa0dd.png)

これを設定しておくことでこのロールに割り当てられたユーザーだけがアクセスできるデータ、ページを設定することができます。

### コンテンツセキュリティポリシー(CSP)の設定
コンテンツセキュリティポリシー(CSP)は、特定のタイプのWeb攻撃（※）を検出し、軽減するのに役立つセキュリティの追加レイヤーです。
Power Pages では、CSP はデフォルトでオフになっていますが、多くの Web サイトでは、セキュリティ強化のために CSP が必要な場合があります。 

（※：データ盗難、XSS、サイトの改ざん、マルウェアなど）
#### 簡単な設定方法

左側ペインのサイトで、[サイト設定]を選択します。
以下のサイトを参考に、必要な値をセミコロンで区切って設定します。

https://content-security-policy.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/0bbb71d5-b64a-7584-da60-d19be308d55c.png)

## 開き方
一度Power Pagesをプロビジョニングすると、自動で作成され、Power Appsのアプリ一覧に表示されます。
ここからポータル管理（Portal Management）アプリを選択すると開くことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ceb3d377-6357-4b6f-dfbc-9878f8ba4288.png)

::: note warn
このアプリは既定では`システム管理者`ロール、`システムカスタマイザー`ロールの人が開くことができます。
:::
# まとめ

今回は「ポータル管理センター」「ポータル管理アプリ」でできることや簡単な操作方法をまとめました。
できることはもっと細かく、たくさんあるので、この記事に書かれてないところもありますが、まず入門編として、簡単なイメージをつけていただければ幸いです。