Azure功能:如何使用C#代码以编程方式访问主机密钥?

豪克

我正在编写一个Azure Function App,该App需要提供带有表单的HTML页面。该表格应发回到应用程序的端点之一。该应用程序应使用Azure的授权密钥功能进行保护

Azure允许呼叫者以两种方式提供他/她的密钥:

  1. 带有code请求查询参数。
  2. 具有x-functions-clientidHTTP标头。

为了成功调用Azure Function App的另一个端点,因此,我需要在提供请求的同时提供主机密钥。例如这样:

    <form method='post' action='DoSomething?code={{{WHERE TO GET THIS FROM?}}}'>
        <input name='someInput' />
        <input type='submit' />
    </form>

我正在使用C#生成HTML代码。以编程方式获取主机密钥的最防弹方法是什么?

DixitArora-MSFT

您可以使用Microsoft.Azure.Management.ResourceManager.Fluent和Microsoft.Azure.Management.Fluent来做到这一点。

有关更多信息,请参考此SO线程

string clientId = "client id";
 string secret = "secret key";
 string tenant = "tenant id";
 var functionName ="functionName";
 var webFunctionAppName = "functionApp name";
 string resourceGroup = "resource group name";
 var credentials = new AzureCredentials(new ServicePrincipalLoginInformation { ClientId = clientId, ClientSecret = secret}, tenant, AzureEnvironment.AzureGlobalCloud);
 var azure = Azure
          .Configure()
          .Authenticate(credentials)
          .WithDefaultSubscription();

 var webFunctionApp = azure.AppServices.FunctionApps.GetByResourceGroup(resourceGroup, webFunctionAppName);
 var ftpUsername = webFunctionApp.GetPublishingProfile().FtpUsername;
 var username = ftpUsername.Split('\\').ToList()[1];
 var password = webFunctionApp.GetPublishingProfile().FtpPassword;
 var base64Auth = Convert.ToBase64String(Encoding.Default.GetBytes($"{username}:{password}"));
 var apiUrl = new Uri($"https://{webFunctionAppName}.scm.azurewebsites.net/api");
 var siteUrl = new Uri($"https://{webFunctionAppName}.azurewebsites.net");
 string JWT;
 using (var client = new HttpClient())
  {
     client.DefaultRequestHeaders.Add("Authorization", $"Basic {base64Auth}");

     var result = client.GetAsync($"{apiUrl}/functions/admin/token").Result;
     JWT = result.Content.ReadAsStringAsync().Result.Trim('"'); //get  JWT for call funtion key
   }
 using (var client = new HttpClient())
 {
    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + JWT);
    var key = client.GetAsync($"{siteUrl}/admin/functions/{functionName}/keys").Result.Content.ReadAsStringAsync().Result;
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何以编程方式在客户端中添加ssh主机密钥?

来自分类Dev

如果已知指纹,如何以编程方式接受SSH主机密钥?

来自分类Dev

不是使用Terraform创建的Azure函数“主机密钥”

来自分类Dev

如何以编程方式更新Azure B2C OpenId Connect的客户端机密?

来自分类Dev

如何使用Yocto安装SSH主机密钥

来自分类Dev

使用Vagrant进行配置时如何强制主机密钥?

来自分类Dev

如何使用ssh-agent禁止主机密钥检查

来自分类Dev

使用CodeDOM以编程方式生成C#代码文档(摘要)

来自分类Dev

如何转换ssh主机密钥?

来自分类Dev

主机密钥验证失败,使用SSH

来自分类Dev

如何使用ssh-ed25519作为pysftp的密钥设置主机密钥文件

来自分类Dev

如何从 ARM 模板中检索 Azure Function App 的默认主机密钥?

来自分类Dev

如何使用C#以编程方式下载GitHub数据

来自分类Dev

如何以编程方式更新VSTS文件(使用C#)

来自分类Dev

以编程方式访问App功能

来自分类Dev

以编程方式访问App功能

来自分类Dev

如何配置VirtualBox-5.0主机密钥和ctrl-c设置?

来自分类Dev

如何使用Java以编程方式访问网站?

来自分类Dev

使用WinSCP禁止在SFTP或SCP中使用主机密钥

来自分类Dev

禁止使用WinSCP在SFTP或SCP中使用主机密钥

来自分类Dev

以编程方式访问RESTAdapter的主机地址

来自分类Dev

OpenSSH如何确定选择主机密钥算法?

来自分类Dev

OpenSSH如何确定选择主机密钥算法?

来自分类Dev

如何允许再次添加ssh主机密钥?

来自分类Dev

如何修复有关ECDSA主机密钥的警告

来自分类Dev

如何在ssh中禁用严格的主机密钥检查?

来自分类Dev

使用pywinauto确认PuTTY主机密钥提示

来自分类Dev

使用gitlab和jenkins的主机密钥验证失败

来自分类Dev

使用scp时主机密钥验证失败

Related 相关文章

  1. 1

    如何以编程方式在客户端中添加ssh主机密钥?

  2. 2

    如果已知指纹,如何以编程方式接受SSH主机密钥?

  3. 3

    不是使用Terraform创建的Azure函数“主机密钥”

  4. 4

    如何以编程方式更新Azure B2C OpenId Connect的客户端机密?

  5. 5

    如何使用Yocto安装SSH主机密钥

  6. 6

    使用Vagrant进行配置时如何强制主机密钥?

  7. 7

    如何使用ssh-agent禁止主机密钥检查

  8. 8

    使用CodeDOM以编程方式生成C#代码文档(摘要)

  9. 9

    如何转换ssh主机密钥?

  10. 10

    主机密钥验证失败,使用SSH

  11. 11

    如何使用ssh-ed25519作为pysftp的密钥设置主机密钥文件

  12. 12

    如何从 ARM 模板中检索 Azure Function App 的默认主机密钥?

  13. 13

    如何使用C#以编程方式下载GitHub数据

  14. 14

    如何以编程方式更新VSTS文件(使用C#)

  15. 15

    以编程方式访问App功能

  16. 16

    以编程方式访问App功能

  17. 17

    如何配置VirtualBox-5.0主机密钥和ctrl-c设置?

  18. 18

    如何使用Java以编程方式访问网站?

  19. 19

    使用WinSCP禁止在SFTP或SCP中使用主机密钥

  20. 20

    禁止使用WinSCP在SFTP或SCP中使用主机密钥

  21. 21

    以编程方式访问RESTAdapter的主机地址

  22. 22

    OpenSSH如何确定选择主机密钥算法?

  23. 23

    OpenSSH如何确定选择主机密钥算法?

  24. 24

    如何允许再次添加ssh主机密钥?

  25. 25

    如何修复有关ECDSA主机密钥的警告

  26. 26

    如何在ssh中禁用严格的主机密钥检查?

  27. 27

    使用pywinauto确认PuTTY主机密钥提示

  28. 28

    使用gitlab和jenkins的主机密钥验证失败

  29. 29

    使用scp时主机密钥验证失败

热门标签

归档