অনুরোধ শিরোনাম আইডেন্টিটি সার্ভার 4-এ ফরোয়ার্ড করছে না


9

প্রমাণীকরণের জন্য আমি আইডেন্টিটি সার্ভার 4 সহ আমার মাইক্রোসার্ফেসিসের জন্য এপিআই গেটওয়ে হিসাবে ওসেলোট ব্যবহার করছি। ওসেলোট কনফিগার ফাইলে আমি "প্রমাণীকরণের বিভাগগুলি" যুক্ত করেছি এবং এপিআই কী সেট করেছি। ইন প্রারম্ভ আমি পরিচয় সার্ভার যোগ করুন। পরিচয় সার্ভারে আমি সংযোগের স্ট্রিংটি গতিশীলভাবে তৈরি করতে শিরোলেখ থেকে মানটি ব্যবহার করি। আমি যখন টোকেন পেতে অনুরোধটি প্রেরণ করি, শিরোনামগুলি পরিচয় পরিষেবায় অ্যাক্সেসযোগ্য। কিন্তু আমি যখন টোকেন মূল শিরোলেখগুলির সাথে পরবর্তী অনুরোধটি প্রেরণ করি তখন উপলব্ধ হয় না। পরিচয় পরিষেবায় কেবলমাত্র "হোস্ট" শিরোনাম দৃশ্যমান হতে পারে।

পরিচয় সার্ভারে অনুরোধটি রুট করার সময় আসল শিরোনাম রাখার কোনও উপায় আছে কি?

স্টার্টআপ.সি (পরিচয় সার্ভার যুক্ত করুন)

services
    .AddAuthentication()
    .AddIdentityServerAuthentication("APIParts", options =>
    {
        options.Authority = "http://localhost:60168";
        options.RequireHttpsMetadata = false;
        options.ApiName = "Parts";
        options.SupportedTokens = SupportedTokens.Both;
    });

ocelot.json

ReRoutes": [
{
  "DownstreamPathTemplate": "/connect/token",
  "DownstreamScheme": "http",
  "DownstreamHostAndPorts": [
    {
      "Host": "localhost",
      "Port": 60168
    }
  ],
  "UpstreamPathTemplate": "/token",
  "UpstreamHttpMethod": [ "Post" ]
},
{
  "DownstreamPathTemplate": "/api/Parts/Inventory",
  "DownstreamScheme": "http",
  "DownstreamHostAndPorts": [
    {
      "Host": "localhost",
      "Port": 65241
    }
  ],
  "UpstreamPathTemplate": "/api/Parts/Inventory",
  "AuthenticationOptions": {
    "AuthenticationProviderKey": "APIParts",
    "AllowedScopes": []
  }
}]

1
এর গভীরে যাওয়ার আগে আপনি ব্যাখ্যা করতে পারবেন আপনি পরিচয় সার্ভার প্রমাণীকরণ এবং এপিআই এর জন্য কেন বিভিন্ন পোর্ট ব্যবহার করছেন? আমি মনে করি যে এপিআই অনুরোধ উত্পন্ন হওয়ার সাথে সাথে সমস্যাটি সেখানে উপস্থিত থাকতে পারে অনুমোদনের অনুমোদনটি সেই একই বন্দরে টোকেন যাচাই করার চেষ্টা করে যেখানে এপিআই রয়েছে, সুতরাং আপনি উভয় একই পোর্ট দিতে এবং চেষ্টা করতে পারেন।
নওমান খান

আপনি কি এমন কিছু কোড পোস্ট করতে পারেন যা দেখায় যে আপনি কীভাবে আপনার সংযোগের স্ট্রিং তৈরি করতে শিরোনামগুলি অ্যাক্সেস করার চেষ্টা করছেন? অতিরিক্তভাবে আপনি কোন শিরোনামটি পড়ার চেষ্টা করছেন? এটি যদি হোস্ট শিরোনাম থাকে তবে আপনার সমস্যা আছে।
নিক্স

উত্তর:


0

আমি ওসেলোটের সাথে পরিচিত নই, তবে আমার আর্কিটেকচারে আমি আইডেন্টিটি সার্ভারটি একটি ভার ভারসাম্যের পিছনে ছুটতে পেরেছি এবং একটি এনজিনেক্স ইনগ্রিসের মাধ্যমে কুবেরনেটস ক্লাস্টারে প্রবেশ করেছি এবং এটির জন্য আমার আইডেন্টিটি সার্ভারের Startup.Configureপদ্ধতিতে শিরোনাম ফরোয়ার্ডিংটি কনফিগার করা দরকার :

var forwardOptions = new ForwardedHeadersOptions
{
    ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
    RequireHeaderSymmetry = false
};

forwardOptions.KnownNetworks.Clear();
forwardOptions.KnownProxies.Clear();
app.UseForwardedHeaders(forwardOptions);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.