gpt4 book ai didi

node.js - 将证书凭据与 msal-node 结合使用

转载 作者:行者123 更新时间:2023-12-02 23:58:43 24 4
gpt4 key购买 nike

我有一个本地 Nodejs SPA,我想使用 MSAL 来保护它的安全。 Node sample project使用带有此配置的 msal-node 并且可以正确进行身份验证。

const config = {
auth: {
clientId: "025BlahBlahBlahb3ac",
authority: "https://login.microsoftonline.com/04ccTenantIDdbdaf",
clientSecret: "-6csBlahBlahBlahsqO"
}

但是,教程指出“在 secret 客户端应用程序中使用 certificate credentials 而不是客户端 secret ”

我认为这意味着配置应该如下所示

const config = {
auth: {
clientId: "025BlahBlahBlahb3ac",
authority: "https://login.microsoftonline.com/04ccTenantIDdbdaf",
clientCertificate: {
thumbprint: string;
privateKey: string;
}
};

我已在 Azure KeyVault 中创建了一个证书(尚未包含任何 secret )并导出了 pem,这为我提供了私钥和证书。我是使用 jwt 插件还是只填写指纹和私钥?

pem 中私钥的开头如下所示

-----BEGIN PRIVATE KEY-----
BIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCfGkz5bHZe1g5K
zQXDNHd7RecP+/TgN/4rQdyBeSnNhijyT1cG93cglo9Bg9eAeFMvO8AONNyucdpV

这是一个 fs.readFileSync 还是需要对 key 进行一些编码?

最佳答案

令人惊奇的是,经过一夜的休息后,一切变得如此轻松。

  1. 在 Azure KeyVault 中创建 PEM 证书
  2. 导出 CER 和 PEM 格式。
  3. 将 CER 导入应用注册(我删除了我的客户端 key )
  4. 将 PEM 放入应用目录中。
const express = require("express");
const msal = require('@azure/msal-node');
const fs = require('fs');

const PRIV_KEY = fs.readFileSync(__dirname + '/lf-kv-ae-int-LF-CERT-INT-KV-20210610.pem', 'utf8');

const SERVER_PORT = process.env.PORT || 3000;
const REDIRECT_URI = "http://localhost:3000/redirect";

const config = {
auth: {
clientId: "025dfgq28-AppRegistrationClientID-8d50ert5b3ac",
authority: "https://login.microsoftonline.com/04ccwra3-YourTenantID-5ewe6u8uaf",
clientCertificate: {
thumbprint: "7CA7CopyTheThumbprintFromTheCertificateE8E",
privateKey: PRIV_KEY
}
},
    system: {
        loggerOptions: {
            loggerCallback(loglevel, message, containsPii) {
                console.log(message);
            },
         piiLoggingEnabled: false,
         logLevel: msal.LogLevel.Verbose,
        }
    }
};

// Create msal application object
const pca = new msal.ConfidentialClientApplication(config);
// The rest of the code is in the example...

关于node.js - 将证书凭据与 msal-node 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67915649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com