Oracle Databaseは、通常のパスワード認証だけでなく外部認証という機能があります。
以前紹介したActive Directory連携もその一つですが、クラウドのIDaaSとOAauth2によるトークン・ベース認証も19cからサポートされており、現在はOCI IAMとAzure ADが使用可能です。
Azure ADは、19.18以上のOracle Databaseはオンプレミス、クラウドに関わらず認証連携させることが可能です。OCI IAMは、Autonmous DatabaseやBase DatabaseなどのクラウドのOracle Databaseが対象で、接続のDatabase Clientが19.16以上が必要などの制限がありますので詳しくは最新のドキュメントをご確認下さい。
アクセストークンをデータベースに渡すフローは、TLSで暗号化されている必要があるため、データベース側のリスナーをTCPSでリスニングする設定が追加で必要になります。Autonomous Databaseは、WalletをダウンロードしてTLS接続しかできない仕様になっているのでこの設定は必要ないですが、一般的なOracle Databaseのリスナーは通常1521ポートのTCPだけでリスニングしていると思いますので、まずはこのTLSの設定を行います。
TLSは、クライアント側にOracle Walletを配置する方法、もしくはWalletなしでサーバー証明書だけの方法のいずれかが選択可能です。詳しくはこちら。
ドキュメントを参照しながら実際に設定してみると難しく感じるところも多いように思います。Qiita内でも手順が紹介されているものもありますが、私自身の備忘録的にも、それぞれの手順について簡単に極力最小限の労力で構築する手順を紹介します。
Oracle DatabaseのTLS暗号化を設定する
OCI IAMとBaseDBのトークン・ベースの認証連携①
OCI IAMとBaseDBのトークン・ベースの認証連携②
OCI IAMとAutonomous Databaseのトークン・ベースの認証連携
Azure ADの場合は、上記手順のOracle DatabaseをTLS暗号に設定した後、こちらの記事の手順が参考になります。Azure ADの場合もIAMと同様に排他的マッピングと共有マッピングの方式ができるので、併せて確認頂くと良いかと思います。