はじめに
この記事では、ABAP Cloud Developer Trial環境でPrincipal Propagationの設定を行うための手順について説明します。SAP BTPでDestinationの認証方式としてPrincipal Propagationを選択すると、BTPにログインしたユーザーのID情報を引き継いで、ABAPシステムなどのバックエンドにシングルサインオンでアクセスすることができます。
環境
- ABAP Cloud Developer Trial 2023
- Cloud Conecctor(上記に含まれる):バージョン2.18.0
参考情報
Configuring Principal Propagation | Help Portal
前提
- ABAP Cloud Developer Trialの初期設定が完了し、環境にアクセスできる状態
ステップ
- ABAPサーバのシステム証明書をCloud Connectorに信頼させる
- BTPとABAPサーバの接続設定
- Cloud Connectorのシステム証明書をABAPサーバに信頼させる
- 証明書のルールベースマッピングのための設定
- サーバの再起動
- Destinationの設定
- ユーザにメールアドレス設定
- 疎通確認
主な目的はCloud Connector、BTP (IdP)、ABAPサーバを互いに信頼させることです。下図のカッコの中に対応するステップの番号を記載しています。
1. ABAPサーバのシステム証明書をCloud Connectorに信頼させる
1.1. ABAPサーバのシステム証明書を更新
ABAP Cloud Developer Trial 2023の場合、ABAPサーバのシステム証明書のCNはデフォルトではA4Hとなっています。この状態だとコンテナのhotstsに設定されたホストと一致せず、Cloud Connectorから接続ができないのでhostsに合わせるようにシステム証明書を更新します。更新後、証明書をエクスポートします。
手順は以下の記事を参照してください。
1.2. ABAPサーバのシステム証明書をCloud Connectorに追加
Configuration > On-Premises > Backend Trust StoreでエクスポートしたABAPサーバのシステム証明書をアップロードします。
2. BTPとABAPサーバの接続設定
2.1. BTPとABAPサーバの接続設定
Cloud ConnectorにBTPサブアカウントとABAPサーバへの接続を追加します。
手順は以下のDiscovery Centerミッションを参照してください。
2.2. トラストの設定
ABAPサーバへの接続を追加後、Principal PropagationタブでTrust Configurationを更新します。Cloud Connectorがサブアカウントと接続されているIdPを信頼するための設定です。これにより、Cloud ConnectorがIdPで発行されたJWTトークンを受け入れ可能になります。
3. Cloud Connectorのシステム証明書をABAPサーバに信頼させる
3.1. Cloud Connectorのシステム証明書を作成
Configuration > On-Premises > CA Certificateで自己署名証明書を作成します。

3.2. Cloud Connectorのシステム証明書をABAPサーバに追加
Tr-cd: STRUSTで、SSL server Standardより前のステップでダウンロードした証明書をインポートします。

インポート後、"Add to Certificate List"をクリックして追加します。

3.3. ICMにCloud Connectorの証明書を信頼させるためのパラメータ設定
Tr-cd: RZ10でプロファイルパラメータを更新します。
インスタンスプロファイル、またはデフォルトプロファイルを選択し、"Extended maintenance"を選択してChangeをクリックします。
以下のパラメータを追加します。
Parameter Name: icm/trusted_reverse_proxy_<index>
Parameter Value SUBJECT="<subject>", ISSUER="<issuer>"
subjectおよびissuerは前のステップでインポートしたCloud Connectorのシステム証明書で確認できます。
第一画面に戻り保存ボタンを押下後、Profile > Activate からプロファイルを有効化します。
4. 証明書のルールベースマッピングのための設定
Principal Propagationで認証する際、Cloud Connectorはログインユーザの証明書を発行してABAPサーバに渡します。この証明書の内容とABAPサーバに登録されたユーザをマッピングするための設定を行います。
4.1. CA証明書の作成
Configuration > On-Premises > Principal Propagationで、ログインユーザの証明書を発行するローカルCAの証明書を作成します。
4.2 Subject Pattern Ruleの設定
Configuration > On-Premises > Principal Propagationで、Subject Pattern Rulesを編集します。

Common Nameに${email}を選択します。これがBTPから渡されるユーザの属性になります。

4.3. サンプル証明書のダウンロード
Subject Pattern Ruleにもとづくサンプル証明書をダウンロードします。

emailに自分のメールアドレスを設定し、"Generate"をクリックします。

4.4. 証明書のマッピング
Tr-cd: CERTRULEでサンプル証明書をインポートします。

4.5. ルールベースの証明書マッピングを使用するためのパラメータ設定
Tr-cd: RZ10でプロファイルパラメータを更新します。
今回設定するパラメータはデフォルトプロファイルで更新する必要があります。
以下のパラメータを追加します。
Parameter Name: login/certificate_mapping_rulebased
Parameter Value: 1

第一画面に戻り保存ボタンを押下後、Profile > Activate からプロファイルを有効化します。
5. サーバの再起動
プロファイルパラメータの更新を反映させるため、ABAPサーバを再起動します。
docker stop -t 7200 a4h //停止
docker start a4h //再起動
6. Destinationの設定
BTPコックピットでDestinationを登録します。以下のように設定します。
Proxy Type: Onpremise
Authentication: PrincipalPropagation
最近DestinationのUIが変わりましたが、新しいUIだと一画面で設定情報を表示できないので旧UIで表示しています
7. ユーザにメールアドレス設定
Tr-cd: SU01でユーザにメールアドレスを設定します。BTPにログインする際のメールアドレスと一致させます。
8. 疎通確認
SAP Business Application StudioからFioriアプリケーションを作成してみます。Destinationを選択後、ODataサービスの一覧が表示されれば疎通は成功です。
おわりに
この記事では、ABAP Cloud Developer TrialでPrincipal Propagationの設定をする手順について紹介しました。次はCAPからPrincipal PropagationでOData APIにアクセスしてみたいと思います。
















