株式会社クニエ 百瀬です。
弊社の事例で、お客様がHCPのWebアプリケーションをパブリックに公開したいと言う要望が有りました。
通常、HCPは認証が必須であり、 Anonymousアクセスには特殊な設定が必要となります。
(トライアル版のHCPではAnonymousアクセスは出来ない)
本書では、HCPのAnonymousアクセスを実現する方法について説明したいと思います。
1.概要
■HCPのAnonymousアクセスには以下の設定が必要となる。
①.xsaccessファイルの“anonymous_connection”の定義。
②.xssqlccファイルの作成
③HANA XS Admin Toolによる、②へのアカウント情報の割り当て。
2.Anonymousアクセス(.xsaccess)
■Anonymousアクセスを実現するには、パッケージ内の.xsaccessファイルに以下の赤字の定義が必要となる。
■.xsaccessファイル
{
"exposed": true,
"anonymous_connection": “hoge::anonuser",
"authentication" : null,
"mime_mapping": [{
"extension": "jpg",
"mimetype": "image/jpeg"
}],
"force_ssl": false,
"enable_etags": true,
"cors": [{
"enabled": false
}],
"cache_control": "no-cache, no-store",
"default_file": "index.html"
}
3.Anonymousアクセス(.xssqlcc)
■Anonymousアクセスを実現するには、パッケージ内の.xssqlccファイルの定義が必要となる。定義の他にアカウント情報の割り当てが必要となる。
■anonuser.xssqlccファイル
{
"description" : "Anon SQL connection"
}
4.Anonymousアクセス(HANA XS Admin Tool)
■Anonymousアクセスを実現するには、パッケージ内の.xssqlccファイルにアカウント情報の割り当てが必要となる。
–HCP Cockpitから「HANA XS Applications」を選択し、Application「sap.hana.xs.admin」にアクセスする。
※XS Admin Toolにアクセスする権限が無い場合は末尾の「APPENDIX:HANA XS Admin Toolの利用権限付与」を参照。
■HANA XS Admin Toolで、パッケージ(下の例では「tcotool」)の「→」を選択し、
次画面に表示される「anonuser.xssqlcc」を選択する。
■画面右下の「Edit」ボタンを押下して、Username/Passwordを設定し、「Save」ボタンを押下して保存する。
■以上で、HCPのURLを入力すると認証を行わなくてもAnonymousでアクセス出来るようになる。
APPENDIX:HANA XS Admin Toolの利用権限付与
■HANA XS Admin Toolの利用権限が無い場合、HANA Web-based Development WorkbenchのcatalogからSQL文でロールを付与する必要が有る。
–SAP HANA XS ADMIN TOOL(Web)参照権限
call _SYS_REPO.GRANT_ACTIVATED_ROLE
('sap.hana.xs.admin.roles::HTTPDestViewer',‘<user id>');
–SAP HANA XS ADMIN TOOL(Web)Admin権限
call _SYS_REPO.GRANT_ACTIVATED_ROLE
('sap.hana.xs.admin.roles::HTTPDestAdministrator',‘<user id>');
■.xssqlccファイルへのアクセス権が無い場合は、以下のロールを付与する。
–SQLCC(SQL Connection Configuration)の参照権限
call _SYS_REPO.GRANT_ACTIVATED_ROLE
('sap.hana.xs.admin.roles::SQLCCViewer','<user id>');
–SQLCC(SQL Connection Configuration)のAdmin権限
call _SYS_REPO.GRANT_ACTIVATED_ROLE
('sap.hana.xs.admin.roles::SQLCCAdministrator','<user id>');