android - 使用 Azure KeyVault 进行 React Native

标签 android ios azure react-native azure-keyvault

我没有在 React Native 应用程序中使用 Azure Active Directory 身份验证。

我想在云端保留一些 key ,以便用户可以轻松配置,而无需重新部署整个应用程序。

我正在考虑 Azure KeyVault,所以问题是,是否可以使用 Key Vault,我是否可以在不显示身份验证页面的情况下进行操作。

如果有任何其他解决方案,请告诉我。

最佳答案

您可以使用脚本代码来获取键的值。不需要显示认证页面。

下面是一个简单的控制台代码:

//const { DefaultAzureCredential } = require("@azure/identity");
const { ClientSecretCredential } = require("@azure/identity");
const { SecretClient } = require("@azure/keyvault-secrets");

const readline = require('readline');

function askQuestion(query) {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });

    return new Promise(resolve => rl.question(query, ans => {
        rl.close();
        resolve(ans);
    }))
}

async function main() {

  const keyVaultName = "bowmantest";
  const KVUri = "https://" + keyVaultName + ".vault.azure.net";

  //const credential = new DefaultAzureCredential();
  tenantId = "e4c9ab4e-bdxxxxxx-230ba2a757fb";
  clientId = "d340361e-5dxxxxxxbaf4-6e81aed46ed9";
  clientSecret = "2X~43qA-~J2xxxxxxnT1a7_O2-dKyTK";
  const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
  const client = new SecretClient(KVUri, credential);

  const secretName = "testbowmansecret";

  console.log("Retrieving your secret from " + keyVaultName + ".");

  const retrievedSecret = await client.getSecret(secretName);

  console.log("Your secret is '" + retrievedSecret.value + "'.");

}

main()

我可以得到:(不需要去认证页面,但仍然需要认证。)

enter image description here

顺便说一句,您需要授予AD应用访问权限:

enter image description here

这是 API 文档:

https://learn.microsoft.com/en-us/javascript/api/@azure/identity/clientsecretcredential?view=azure-node-latest

https://learn.microsoft.com/en-us/javascript/api/%40azure/keyvault-secrets/secretclient?view=azure-node-latest

(您可以在上述文档中找到有关 Azure JavaScript 的所有内容)。

关于android - 使用 Azure KeyVault 进行 React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63816273/

相关文章:

android - android studio中的vlc和linux中的ffmpeg

android - 如何使两个不同的布局具有相同的高度?

iphone - 更改 MGTwitterEngine 的委托(delegate)

ios - 为什么 SKEmitterNode 会破坏累积的帧?

node.js - 主页未解析裸域 URL

android - 适用于 Android 的 PIN 输入小部件

android - 从 Android 代码中提取字符串到 Intellij 中的 strings.xml 文件的捷径是什么?

ios - CALayer 的 backgroundFilters 在 UIView 上没有任何作用

azure - 恢复意外删除的注册代理

VS2015 中的 Azure 调试环境启动时崩溃