4D Netkit: 証明書を使用した OAuth2.0 認証

Microsoft Identity Platform のようないくつかの OAuth 2.0 サーバーは、クライアントシークレットの代わりに証明書を使用する認証オプションを提供しています。このアプローチを使用することで、プロトコル内のセキュリティと認証メカニズムが強化されます。4Dのバージョン 20 R5 以降、Netkit には OAuth 2.0 の証明書ベースの接続管理が組み込まれています。

OAuth 2.0 クライアント認証と認可のグラント用のアサーションフレームワークを使用すると、クライアントシークレットよりもセキュリティが強化されます。これを使用することで暗号化およびデジタル署名されたアサーションが可能になり、デジタル証明書や JWT のような追加の識別情報によって認証メカニズムが強化されます。これによりシークレット管理に関連するリスクが軽減され、より安全な認証および承認の方法が提供されます。

証明書を使用するには、”Service” 権限を持った状態で、OAuth2Provider オブジェクトの.privateKey および.thumbprint プロパティを使用する必要があります。

Microsoft Identity Platform で証明書を使用する場合、以下の手順に従ってください:

  • Azure App 登録インターフェースに移動し、証明書をアップロードして Thumbprint コードを取得する:

  • これで、トークンを取得するための有効なサムプリントが取得できました:
var $params;$token : Object
var $oAuth : cs.NetKit.OAuth2Provider
var $privatekey:=File("/RESOURCES/key.pem").getText("ascii"; Document unchanged)

If (Length($t_privatekey)>0)
	$params:=New object()
	$params.name:="Microsoft"
	// Only usable with permission:="Service"
	$params.permission:="Service"
	$params.clientId:="8008ebf5-xxx"
	
	$params.scope:="https://graph.microsoft.com/.default"
	$params.tenant:="16dc191b-xxx"
	$params.clientEmail:=$myClientEmail
	
	// Certificate private key
        $params.privateKey:=$t_privatekey
        // Thumbprint of certificate / public key can be copied in Azure portal at certificated & secrets
	$params.thumbprint:="A4CC91B864xxx"  
	
	$oAuth:=cs.NetKit.OAuth2Provider.new($params)
	$token:=$cs_oAuth.getToken()
End if 

まとめると、RFC 7521 に詳細のある OAuth 2.0 証明書ベースの認証を使用することで、クライアントシークレットよりセキュリティ対策が強化されます。ドキュメントのガイドラインに従うことで、開発者は証明書を Microsoft Identity Platform などの OAuth 2.0 サーバに安全に統合し、アプリケーション認証メカニズムの堅牢性を確保することができます。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。