1. SPEAK 3

SPEAK 3アプリケーションでロールベース認証を有効にする

Version: 9.0
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

デフォルトでは、すべてのユーザーはSPEAK 3アプリケーションのすべての機能にアクセスできます。

場合によっては、Sitecore管理者にアプリケーションの特定の機能へのアクセスを特定のユーザーに制限させたい場合もあります。このトピックでは、Sitecoreの役割ベース認証を使ってアプリケーションのセキュリティを有効にする方法を示しています。管理者はその後、セキュリティエディターを使ってユーザーにアプリケーション内の機能へのアクセスを許可または拒否できます。

調理

始める前に、アプリケーションのどの部分へのアクセスを制限すべきかを決めるべきです。アクセス制限には、特定のユーザーに対してコンポーネントを無効化したり、インターフェースからコンポーネントを削除したりすることが含まれます。

例えば、あるアプリケーションはフォーム内のコンポーネントの特徴を編集する機能を提供します。一部のユーザーはすべてのフィールドに完全にアクセスできる必要がありますが、一部のユーザーはアクセスを制限し、一部のフィールドを読み取り専用または完全に隠すようにしたいです。

セキュリティを有効にしたい機能領域のリストを作成したら、それぞれの領域ごとにSitecoreアイテムを作成します。これらの項目は、このトピックの残りの部分では「アクセスアイテム」と呼ばれます。

セキュリティエディターを使って、coreデータベース内の特定のアカウント(ユーザーやロールなど)に対する読み書きの許可・拒否を行うことで、アクセスを提供または制限します。整理を保つために、すべてのアクセス項目をアプリケーション用のルートアクセスフォルダの下に作成してください。

アプリケーションは現在のユーザーのアクセス設定を要求し、それに応じて関連機能を有効化・無効化・表示・非表示します。

Sitecoreでアクセス項目を設定する

アクセス項目の設定には以下の手順に従ってください:

  1. coreデータベース内に/sitecore/templates/System/Speak3/ComponentAccessFolderテンプレートを使ってアクセスフォルダを作成します。これがアクセス項目を追加するルートアクセスフォルダになります。

  2. /sitecore/templates/System/Speak3/ComponentAccessSettingテンプレートを使ってアクセスフォルダに必要なアクセスアイテムを追加します。

  3. セキュリティエディターを使って、各アクセス項目の読み書き権限を指定します:

    3F1C38C8E5C44265BAF22EE317C0C39C.png

Angularアプリケーションの設定

Angularアプリケーションをアクセス項目を使用するように設定するには、以下の手順に従ってください:

  • SciAuthModuleモジュールをインポートし、rootアクセスフォルダのアイテムID引数として提供します。

  • 例えば、app.module.tsでは:

    import { SciAuthModule } from '@speak/ng-sc/auth';

    @NgModule({ imports: SciAuthModule.withItemId('{DA4466EE-92C8-4D69-B4AB-2E0CA36ADD22}'), , })

    export class AppModule { }

    export class AppModule { }

高度なシナリオでは、アプリケーションの異なる部分で異なるアクセスフォルダをターゲットにしたい場合があります。そのためには、必要なすべての部分にそのSciAuthModuleをインポートし、対応するアクセスフォルダのアイテムIDを付けます。

例えば、section-a.module.tsでは:

import { SciAuthModule } from '@speak/ng-sc/auth'; @NgModule({ imports: SciAuthModule.withItemId('{DA4466EE-92C8-4D69-B4AB-2E0CA36ADD22}'), , }) export class SectionA { }

そしてsection-b.module.tsでは:

import { SciAuthModule } from '@speak/ng-sc/auth'; @NgModule({ imports: // A different item-id. SciAuthModule.withItemId('{1727B934-FAA1-4317-B34B-AFC99A50B60F}'), , }) export class SectionB { }

SciAuthServiceをご利用ください

SPEAK 3が提供するSciAuthServiceモジュールを使って、アクセスアイテムのアクセス権限を取得します。

SciAuthServiceサービスには2つのメソッドがあります

.どちらもitemNameを引数として要求し、その後Observableを返します。itemNameはアクセス項目の名前でなければなりません。

テンプレートから直接サービスを利用でき、asyncパイプと組み合わせて利用できます。例えば:

import { SciAuthService } from '@speak/ng-sc/auth'; @Component({ selector: 'auth-service-example', template: `

Optional content
\` }) export class ExampleComponent { constructor(public authService: SciAuthService) { } }

あるいは、observablesを購読してから通常の変数を使うこともできます。これには追加のコードが必要ですが、その場合はコードが理解しやすくなるかもしれません。例えば:

@Component({ selector: 'auth-service-example', template: `

Optional content
\` }) export class ExampleComponent { hasRead: boolean; hasWrite: boolean; constructor(private authService: SciAuthService) { } ngOnInit() { this.authService.hasRead('OptionalContent').subscribe(value => this.hasRead = value); this.authService.hasWrite('Button1').subscribe(value => this.hasWrite = value); } }
この記事を改善するための提案がある場合は、 お知らせください!