この記事は #chillSAP の #夏の自由研究2020 29日目の記事として執筆しています。
#はじめに
SAP CP上でアプリケーションを作成する際にセキュリティに関する設定は避けて通れません。細かいことはさておき、CF環境におけるXSUAAサービスプランの差異の一部を確認します。
#XSUAAのサービスプランについて
現在(2020/08/29)、SAPはトライアル環境であるか否かに関係なく5つのサービスプランを提供しています。eu10環境でもjp10環境でも変わりません。
Jeffreyの記事によれば、90%のケースでこのサービスプランはapplicationで十分だろうとされています。
この90%という値が妥当か否か、私個人の関心の観点から簡単に確認しました。
#確認方法
XSUAAの各サービスプランのインスタンスを用意し、Authorization code flow用のOAuth登録でJWTを取得します。JWTはclient credentialで取得し、そのscopeを覗いてみます。この確認方法をとる都合で、確認対象となるサービスプランはapplication、brokerおよびapiaccessの3つに今回は絞られています。
#確認結果
それぞれのサービスプランでは以下のscopeが含まれていました。
application | broker | apiaccess |
---|---|---|
uaa.resource | uaa.resource | xs_user.write, uaa.resource, xs_authorization.read, xs_idp.write, xs_user.read, xs_idp.read, xs_authorization.write |
#90%の妥当性
以上の確認結果から、“90%の場合でapplicationプラン”はおおよそ直感的に妥当に思えます。
uaa.resourceがあれば、リソースサーバとしての機能は実行することができます。したがってapplicationプランを選択すれば、確かに多くのビジネスアプリケーションにおいてサービスプロバイダ(のエントリーポイントに結び付けられるアプリケーション)として役目を果たすことができます。これはbrokerプランも同様です。
一方で、apiaccessプランには文字通りapiにアクセスするための権限が含まれています。これによりアプリケーションそのものがSAP CPの外にあったとしても、サービスキーを保持していればAuthorization and Trust ManagementのAPIを触れます。(サービスキーをSAP CPの外に露出させるようにアプリケーションを用意することはセキュリティ上あまりないと思いますが...)また、これらの権限があることによってUAAテナントの設定をアップデートすることも可能になるため、X-Frame-Optionsなどの値を変更することもできるようになります。残り10%のアプリケーションにはこのようなサービスプランを利用する必要もありそうです。
#その他
質問やコメントなどがあればお待ちしております。