एक बाह्य कॉन्फ़िगरेशन सेवा के साथ AddOpenIdConnect

वोट
0

मैं तो जैसे मेरे ऐप पर OpenIdConnect द्वारा जोड़ा जा रहा:

.AddOpenIdConnect(oidc, options =>
{
     var clientSecret = Configuration.GetValue<string>(clientSecret);
     options.ClientSecret = clientSecret;
});

मैं इस तरह गुप्त पाने के लिए एक और सेवा का उपयोग करने में सक्षम होना चाहते हैं:

.AddOpenIdConnect(oidc, (services, options) =>
{
    var secretService = services.GetService<ISecretService>();
    var clientSecret = secretService.Get(clientSecret);
    options.ClientSecret = clientSecret;
});

मैंने देखा कि वहाँ का प्रयोग होता है app.UseOpenIdConnectAuthentication, लेकिन मैं nuget पैकेज में यह दिखाई नहीं देता।

मैं निम्नलिखित स्थापित:

<PackageReference Include=Microsoft.AspNetCore.Authentication.OpenIdConnect Version=3.1.0 />

मैं यह कैसे कर सकता हूँ?

13/02/2020 को 23:55
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
1

यह एक पोस्ट विन्यास वर्ग है कि सेवाओं इंजेक्षन कर सकते हैं निष्पादित करने के लिए संभव है। इस तरह:

public class OpenIdConnectPostConfigureOptions : IPostConfigureOptions<OpenIdConnectOptions>
{
    private readonly ISecretsService _secretsService;

    public OpenIdConnectPostConfigureOptions(ISecretsService secretsService)
    {
        _secretsService = secretsService;
    }

    public async void PostConfigure(string name, OpenIdConnectOptions options)
    {
        options.ClientSecret = await _secretsService.Get("clientSecret");
    }
}
14/02/2020 को 00:25
का स्रोत उपयोगकर्ता

वोट
0

वर्णित मामले में मैं नहीं बल्कि कार्रवाई में डि का उपयोग करने से विन्यास का विस्तार सलाह देते हैं।

पहुँच रहस्य करने के लिए आप विन्यास प्रदाताओं जोड़ सकते हैं और ConfigureServices विधि में Configuration.GetValue उपयोग करने के लिए जारी रख सकते हैं।

Azure की-वॉल्ट के लिए यह किया जा रहा है Microsoft.Extensions.Configuration.AzureKeyVault nuget पैकेज।

public static void Main(string[] args)
{
    CreateWebHostBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            if (env.IsLocal())
            {
                ...
            }
            else
            {
                config.AddAzureKeyVault(keyVaultUri);
            }
        })
        .Build()
        .Run();
}

एडब्ल्यूएस के लिए - Amazon.Extensions.Configuration.SystemsManager

14/02/2020 को 00:46
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more