はじめに
この記事は SAP Advent Calendar 2024 の12月7日分の記事として執筆しています。
BTP ABAP Environmentとは、BTP上でABAP開発ができる環境です。トライアルアカウントでも使うことができます。BTP ABAP Environmentのトライアル環境で開発したODataサービスをBASから利用してアプリケーションを作る際、意外なつまづきがあったので共有します。
事象
BTP ABAP Environmentを使う場合、BASの認証はDefault Identity Providerを使う必要があります。IAS認証では、ODataサービスにアクセスできません。
Default Idenity Providerで認証の場合、サービスが表示される
背景
BASで接続先システムにBTP ABAP Environmentを選択したとき、自動でabap-cloud-default_abap-trial*
というDestinationが登録されます。このDestinationの認証タイプはOAuth2UserTokenExchangeとなっています。
これはBASにログインする際に使用したトークンが、XSUAAサービスによってBTP ABAP Environmentのトークンと交換されるということを意味しています(参考:OAuth User Token Exchange Authentication)。IASで認証した場合、トークンの交換がうまくいっていないのではないかと推測します。
解決策
認証タイプOAuth2Password
のDestinationを使うと、IAS認証でも問題なく接続ができました。User、PasswordにはCloud Foundryログイン用の認証情報を設定します。
でもこれって個人で使うにはいいけれど、業務ユーザが使うアプリケーションの場合はどうするのだろう…🤔