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