[Spring '24] 指定ログイン情報の外部ログイン情報で「基本認証」が選択できるよううになったので試してみた
こんにちは、遠藤です。
Spring '24のリリースノートから気になるリリースをピックアップするシリーズ記事となります。
この記事では、以下の「指定ログイン情報に基本認証プロトコルを使用」について実際にプレビュー組織で試してみたのでその使い方をまとめてみました。
基本認証自体は、もともとカスタムヘッダーでBASE64ENCODE関数を使えば実装できていましたが、よく使うので簡単に利用できるようにした機能のようです。
しかし、基本認証のAPIはいまどきそんなにるのかなと思ってしまいますが、きっとまだまだ利用されているのでしょう。
基本認証を使用した指定ログイン情報の設定手順
Spring '24で追加される基本認証を使用する指定ログイン情報の設定手順については、すでにヘルプにページがありました。詳しい手順についてはヘルプを参照ください。
ここでは、要点を絞って手順を解説していきます。
外部ログイン情報の作成
指定ログイン情報の外部ログイン情報を作成で、認証プロトコルに「基本認証」が追加されています。
基本認証を選択して「作成」します。
基本認証のユーザIDとパスワードは「プリンシパル」に設定します。
パラメータ名: 任意の値を入力
ID 種別: 「指定ユーザー」を選択
ユーザー名: ユーザ名を指定
パスワード: パスワードを指定
作成したプリンシパルを利用するユーザに権限を付与します。
以下、権限セットを使用する例ですが、「外部ログイン情報プリンシパルアクセス」に作成した外部ログイン情報を追加しています。
追加してから、外部ログイン情報のプリンシパルを開くと付与されている権限を確認できます。
あとは、権限セットをユーザーに割り当てておきます。
ちなみに権限を割り当てないとエラーとなります。このエラーが出たら権限をチェックして下さい。
System.CalloutException: We couldn't access the credential(s). You might not have the required permissions, or the external credential "MyAPIBasicAuth" might not exist.
指定ログイン情報にセットする
指定ログイン情報を作成する際に、「認証 > 外部ログイン情報」で作成した基本認証の外部ログイン情報をセットします。
指定ログイン情報を使用する
使用の仕方は、他のプロトコルと同じです。
Apexの場合は、以下のようにcalloutに続けて指定ログイン情報のAPI参照名を指定します。
HttpRequest req = new HttpRequest();
req.setEndpoint('callout:TestEndpoint/');
req.setMethod('GET');
Http http = new Http();
HTTPResponse res = http.send(req);
System.debug(res.getBody());
実際に、テキスト「Hello World!」を返すだけの適当なAPIを用意して試してみまたところ、ちゃんと動作することが確認できました。