【SAP】会社アクセスにおけるユーザーレベルのセキュリティ

# はじめに #

この投稿では、SAPの会社アクセスにおけるユーザーレベルのセキュリティについて説明します。

ユーザーAが会社001のデータベースのみへのアクセスを必要とし、ユーザーBが会社002と003のみへのアクセスを必要とするシナリオに遭遇することがあります。その場合、以下の設定が役立ちます。

# 実践 #

## 設定 ##

これは、Sharperlightの**サイトセットアップ**で行うことができます。

今回のシナリオでは、2人のSharperlightユーザー、「**guest**」と「**jpuser**」を使用します。

「**guest**」ユーザーは会社「OEC Computers UK」のみアクセスでき、「**jpuser**」ユーザーは「OECジャパン株式会社」と「OEC Computers Australia」のみアクセスできます。

Sharperlightアプリケーションメニューから**サイトセットアップ**を開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c545c3fb-3c07-4ca1-93a2-109c6d3b456f.png)

ユーザーを参照し、‘guest’ユーザーを選択してノードを展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/783e7409-ff70-4efd-b6f6-f1fb126e9e18.png)

SAP Business Oneのプロダクトの設定を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/a32945fc-8f1a-4170-9532-6f30b3a84ebb.png)

セキュリティの項目の下に'**Company Security**'というプロパティがあります。

これにSAPの会社データベース名を指定することで、会社アクセスのユーザーレベルのセキュリティを適用できます。

Sharperlight クエリビルダーを使用して、SAPの会社データベース名を確認しましょう。これはSharperlightアプリケーションメニューからアクセスできます。

以下の4つの会社がありますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/053e7de9-6f26-4959-a165-3d9ca48441e9.png)

サイトセットアップに戻り、「**guest**」ユーザーのSAPプロダクト設定を表示します。

'**Company Security**'フィールドに**SBODemoGB**と入力します。これにより、「**guest**」ユーザーは**OEC Computers UK**だけへのアクセスが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c37e42fb-3352-44fb-ac4c-0a9932bdf0d5.png)


次に、「**jpuser**」ユーザーのセキュリティを設定します。

'**Company Security**'フィールドに**SBODemoJP,SBODemoAU**と入力します。これにより、「**jpuser**」ユーザーは**OECジャパン株式会社**と**OEC Computers Australia**のみへのアクセスが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/4ab7e030-7a99-4c67-b62b-d567de02216e.png)


設定が完了したので、「閉じる」ボタンをクリックして保存します。

## 検証 ##
Sharperlightアプリケーションメニューに移動し、Ctrlキーを押しながらクエリビルダーをクリックして、ログインダイアログが表示されるまで待ちます。

「**guest**」をユーザー名として入力し、「ログイン」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/916ee748-38c5-427e-a500-6518deec6fbd.png)

クエリビルダーが起動したら、会社フィルターの検索ダイアログを開きます。

「**guest**」ユーザーは「OEC Computers UK」会社しか見えませんね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/9a484c21-b797-4303-8482-120a5a508fca.png)


Ctrlキーを押しながらクエリビルダーを開き、ログインダイアログが表示されるまで待ちます。

「**jpuser**」をユーザー名として入力し、「ログイン」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c1b4a80b-b497-4319-a5c1-08c5b09ccdf5.png)

クエリビルダーが起動したら、会社フィルターの検索ダイアログを開きます。

「**jpuser**」ユーザーは**OECジャパン株式会社**と**OEC Computers Australia**会社しか見えませんね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/9378af79-0e5f-4220-860c-4372aafa2110.png)

## 注意 ##

SAPの会社アクセスに対するユーザーレベルのセキュリティを実現するためには、製品レベルのセキュリティを設定する必要があります。

サイトセットアップを開き、**プロダクトの設定**に進んで、SAP Business Oneを見つけます。

**Default Company - Show**プロパティがあり、これを**FALSE**に設定します。デフォルトでは**TRUE**に設定されています。

**FALSE**をそのプロパティに設定することで、<DEFAULT>会社が会社検索に表示されなくなります。
通常、もし**Default Company**プロパティで何も指定されていない場合、<DEFAULT>会社として、SAPに登録されている会社の一番最初の会社が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/f575f55c-de56-4081-9502-3525be84284e.png)

ただし、**Default Company - Show**プロパティが**TRUE**の場合、検索ダイアログは「**guest**」ユーザーに対してこのようになります。

「**guest**」ユーザーに対して**OEC Computers UK**データベースのみへのアクセスを設定したにもかかわらず、「**guest**」ユーザーは**OEC Computers Australia**にもアクセスできるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/8dd4afd3-dfb5-4830-9b57-5684e1c2518e.png)

# あとがき #
これにより、ビジネスニーズに応じたより柔軟なセキュリティ設定が提供できることを願っています。