小编use*_*744的帖子

EF Core连接到具有托管身份的Azure SQL

我正在使用EF Core连接到已部署到Azure App Services的Azure SQL数据库。我正在使用访问令牌(通过托管身份获取)连接到Azure SQL数据库。

这是我的做法:

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    //code ignored for simplicity
    services.AddDbContext<MyCustomDBContext>();

    services.AddTransient<IDBAuthTokenService, AzureSqlAuthTokenService>();
}
Run Code Online (Sandbox Code Playgroud)

MyCustomDBContext.cs

public partial class MyCustomDBContext : DbContext
{
    public IConfiguration Configuration { get; }
    public IDBAuthTokenService authTokenService { get; set; }

    public CortexContext(IConfiguration configuration, IDBAuthTokenService tokenService, DbContextOptions<MyCustomDBContext> options)
        : base(options)
    {
        Configuration = configuration;
        authTokenService = tokenService;
    }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        SqlConnection connection = new SqlConnection();
        connection.ConnectionString = Configuration.GetConnectionString("defaultConnection");
        connection.AccessToken = authTokenService.GetToken().Result;

        optionsBuilder.UseSqlServer(connection);
    }
}
Run Code Online (Sandbox Code Playgroud)

AzureSqlAuthTokenService.cs …

azure-active-directory entity-framework-core azure-sql-database ef-core-2.2

17
推荐指数
2
解决办法
1497
查看次数

使用OWIN进行混合模式身份验证

我正在构建一个MVC 5应用程序.我需要根据AD和SQL数据库或Web服务对人员进行身份验证.

要求是,如果一个人登录到公司网络或通过VPN连接,我必须记录它们而不要求凭据.如果用户通过互联网访问网站或者没有AD帐户,我必须使用表单身份验证.

我正在看这篇文章, 但这将与ASP.Net MVC和OWIN一起使用吗?还有其他选择吗?

提前致谢.

owin

5
推荐指数
2
解决办法
3726
查看次数

IdentityServer4:从 Azure AD 获取访问令牌

我使用 Azure AD 作为 IdentityServer4 的外部 IdP。要调用受 AzureAd 保护的 API,我需要从 Azure Ad 获取访问令牌。是否可以在登录过程中获取访问令牌并将其保存到声明中?

我正在使用 IdentityServer4 快速入门 UI。我试图在外部令牌的回调方法中捕获访问令牌,但在 HttpContext 或声明或 ProcessLoginCallbackForOidc 方法中没有找到。

IdentityServer4 Azure 广告配置:

services.AddIdentityServer()
    .AddDeveloperSigningCredential()
    .AddInMemoryIdentityResources(Config.GetIdentityResources())
    .AddInMemoryApiResources(Config.GetApiResources())
    .AddInMemoryClients(Config.GetClients())
    .AddTestUsers(Config.GetUsers());

services.AddAuthentication()
    .AddOpenIdConnect("oidc", "Azure AD", options =>
    {
        options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
        options.SignOutScheme = IdentityServerConstants.SignoutScheme;

        options.Authority = "https://login.microsoftonline.com/fredhutch.onmicrosoft.com/";
        options.ClientId = "<client id>";
        options.Resource = "app_id from azure ad";
        options.ClientSecret = "secret from azure ad";
        options.ResponseType = "code id_token";
        options.TokenValidationParameters = new TokenValidationParameters
        {
            NameClaimType = "sub",
            RoleClaimType = "role"
        };

    });
Run Code Online (Sandbox Code Playgroud)

IdentityServer4 …

azure-active-directory asp.net-core identityserver4

5
推荐指数
1
解决办法
2617
查看次数

使用 Athena 的多个 S3 存储桶的库存列表

我正在尝试使用 Athena 查询 AWS S3库存列表。如果我只有一个源存储桶,我就可以执行此操作。我不确定如何配置它以与多个源存储桶一起使用。

\n\n

我们使用所有默认配置选项,数据格式为 CSV。Hive 的 S3 Inventory 目标存储桶名称模式如下:

\n\n
 destination-prefix/source-bucket/config-ID/hive/dt=YYYY-MM-DD-HH-MM/symlink.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,当我创建 Athena 表时,我必须使用静态配置单元路径。

\n\n
CREATE EXTERNAL TABLE your_table_name(\n  //column names\n)\nPARTITIONED BY (dt string)\n//options ignored\nLOCATION \'s3://destination-prefix/source-bucket/config-ID/hive/\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,如果我想查询多个源存储桶的库存数据,似乎我必须为每个“源存储桶”创建一个表。

\n\n

或者,在不使用 Athena 的情况下,我尝试使用 AWS CLI 来执行此操作

\n\n
aws s3 ls s3://our-bucket-name/prefix/abc --recursive | awk \xe2\x80\x98$1 > \xe2\x80\x9c2019-04-01\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这首先获取每个文件,因为没有选项可以使用“S3 ls”设置 --include 或 --exclude

\n\n

最后,问题是:

\n\n
    \n
  1. 我可以配置 AWS Inventory 为多个 S3 存储桶生成清单,以便将所有内容放入同一个“hive”目录中(即在生成 Invetory 时忽略“source-bucket”前缀)吗?

  2. \n
  3. 是否可以配置 Athena 从多个配置单元位置读取?但由于有可能创建和删除新的存储桶,我想这会变得很难看。

  4. \n
  5. 是否有其他方法可以代替 Athena 或 AWS CLI …

hive amazon-s3 amazon-web-services amazon-athena

3
推荐指数
1
解决办法
3409
查看次数

电子邮件声明未使用 Azure B2C 中的自定义策略填充

我的 Azure B2C 具有自定义策略,并启用了本地登录和 Microsoft 帐户登录。我已经开始使用入门包并进行了一些修改,以添加用于验证的自定义逻辑并添加其他声明,如此处所述

使用 Microsoft 帐户一切正常。但我遇到本地帐户登录问题。

  1. 电子邮件声明仅在用户注册时填充,但在登录时不填充。如果登录,电子邮件是“signInNames.emailAddress”声明的一部分。我尝试按照此处此处的说明进行更改。我希望将电子邮件填充到电子邮件声明中,因为我的 API 使用此声明。

  2. 从我的 REST API 返回的其他 calim 不会添加到仅用于本地登录的令牌中。它们是为 Microsoft 帐户添加的。

谢谢。

更新:对于第 2 点,它是我的策略文件的问题,现已修复。

azure azure-active-directory azure-ad-b2c

3
推荐指数
1
解决办法
2021
查看次数

将自定义角色添加到 AWS Cognito 用户池访问令牌

我正在使用 AWS Cognito 用户池来保护我的 Web 应用程序、移动应用程序和 API。我有一个定义了角色和权限的数据库。我想在登录过程中将“角色”添加到访问令牌,这样我就不需要进行数据库调用来检查用户角色。

我将无法使用 Cognito 自定义属性,因为人们可以从前端创建自定义角色,并且所有这些信息都保存在数据库中。

openid-connect amazon-cognito aws-userpools

2
推荐指数
1
解决办法
1325
查看次数