ポータル連載企画。
今回は複雑だけどとっても重要なセキュリティ周りについて。
ボリューミーなので、複数回に分けて実施したいと思います。
前回までのおさらい
前回はWebリンクを使用してホーム画面のWebリンクセット(メニュー)からWebページへ画面遷移するところまで行きました。
ただ、現状の設定ではログインする前とログインした後でメニューの内容が変わらないので、そこをコントロールするようにポータル設定していきたいと思います。
権限設定はWebロールで行う
まず、ポータルで重要なのが、ポータルユーザの権限設定はWebロールから行います。
Dynamicsのユーザではセキュリティロールでしたが、ポータルユーザは取引先担当者エンティティのため、セキュリティロールがつけられません。
そのため、セキュリティロールと考え方が違うため、ポータルの権限設定は別に押さえておく必要があります。
Webロールで設定するのは主に3つ。
- Webページに対する権限設定
- エンティティに対する権限設定
- ポータルサイトに対する権限設定
3点目のポータルサイトに対する権限設定については深く取り上げませんが、ポータルの管理者レベルの人用の設定になるため、一般ユーザとは毛色が異なります。
以前、さらっと流しましたが、ポータルから直接Webページを編集できるかどうかの設定がこれになります。
今回はWebページに対する権限設定について説明したいと思います。
エンティティに対する権限設定は次回に詳しく解説します。
Webページ権限設定の前にWebロールを作成する
まずは、Webロールを作成しましょう。
ポータル管理のWebロールに入りましょう。
すでに、デフォルトでロールが作られていることだと思います。
この3つについて説明すると、「管理者」はポータルの管理者に当たるWebロールですでにコンテンツの変更などができる権限が割り当てられています。
「認証されたユーザ」はポータルにログイン時に適用されるロールです。
「匿名ユーザ」はログイン前に適用されるロールになります。
ここで、重要なのが「認証されたユーザー」と「匿名ユーザー」のロールは複数作成できない(存在しない)こと。
Webロールに「認証されたユーザー ロール」と「匿名ユーザー ロール」の項目がありますが、これが「はい」「いいえ」になっているWebロールと「いいえ」「はい」になっているWebロールはこれ以上作成しても意味がありません。
この2つのロールはログイン状態によって自動的に割り当てられるため、明示的に人に対して割り当てる必要はありません。
なので、新しくWebロールを作る場合は「管理者」のような設定を複数作ることになります。
Webロールは1ポータルユーザに複数つけることが可能で、この認証されたユーザーのロールをポータルユーザに付与して使用することになります。
権限が強い方が優先されます(ここはセキュリティロールと同じ考え方)。
では、Webロールを作成してみましょう。
今回は「選手」と「監督」のWebロールを作ります。
選手と監督のWebロールは、実は名前以外は同じ内容です。
新規Webロールからこのように入力しましょう。
[認証されたユーザー ロール]と[匿名ユーザー ロール]は絶対両方「いいえ」にして下さい。
そうしないと動きません。
項目 | 値 |
---|---|
名前 | 選手or監督 |
Webサイト | カスタムポータル(唯一作成されているレコードを指定) |
認証されたユーザー ロール | いいえ |
匿名ユーザー ロール | いいえ |
作成したWebロールをポータルユーザに付与します。
ポータル管理の[Contacts]からユーザを選択し、[Portal Contact]フォームから[関連]タブの[Webロール]を選択。
[既存のWebロールの追加]から割り当てるロールを選択。
これでWebロールの付与が完了です。
Webロールに権限をつける
ポータルユーザにWebロールの付与が完了したと言っても、肝心のWebロールに権限をつけていないので、このままではログイン前後で何も変わりません。
では、次にWebページ「ハローワールド」に監督で入ったユーザは表示し、選手で入ったユーザは非表示とするように設定したいと思います。
Webページに対する権限設定はからWebページアクセス制御ルールから行います。
ポータル管理の[Webページアクセス制御ルール]から、[新規]を選択。
以下のように入力します。
項目 | 値 |
---|---|
名前 | 任意名でOK |
Webサイト | カスタムポータル(唯一作成されているレコードを指定) |
Webページ | ハローワールド(Informationを指定) |
権限 | 読み取りの制限 |
スコープ | すべてのコンテンツ |
そして、保存後、[関連]タブから[Webロール]の[既存のWebロールの追加]で「監督」Webロールを割り当てます。
この設定でWebページ「ハローワールド」は「監督」Webロールが割り当てられているユーザだけが参照できることになります。
なお、Webページの適用範囲は指定したWebページだけでなく、その子供以降のWebページにも適用されるので、制限をかけるWebページの最上位だけ設置すればOKです。
設定した状態でポータルユーザで確認してみましょう。
まず、ログイン前の状態。
Webリンクが消えています。
Webページに権限がないと、自動的にリンクが消えるようになっているんですね。
監督Webロールを割り当てた「原辰徳」ユーザでログインすると、
このようにHello Worldが出現します。
一度ログアウトして、今後は選手Webロールを割り当てた「坂本勇人」でログイン。
こちらは表示が制限されています。
これでWebページに対しての権限設定ができたことになります。
仕組みとしてよくできていますね。
コメント